summaryrefslogtreecommitdiffstats
path: root/documentation/ref-manual/migration.xml
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/ref-manual/migration.xml')
-rw-r--r--documentation/ref-manual/migration.xml2019
1 files changed, 2019 insertions, 0 deletions
diff --git a/documentation/ref-manual/migration.xml b/documentation/ref-manual/migration.xml
new file mode 100644
index 0000000000..d072ecfa0e
--- /dev/null
+++ b/documentation/ref-manual/migration.xml
@@ -0,0 +1,2019 @@
1<!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>&dash;&dash;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
1355 <link linkend='var-PRINC'><filename>PRINC</filename></link>
1356 variable has been deprecated and triggers a warning if
1357 detected during a build.
1358 For
1359 <link linkend='var-PR'><filename>PR</filename></link>
1360 increments on changes, use the PR service instead.
1361 You can find out more about this service in the
1362 "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>Working With a PR Service</ulink>"
1363 section in the Yocto Project Development Manual.
1364 </para>
1365 </section>
1366
1367 <section id='migration-1.6-variable-changes-IMAGE_TYPES'>
1368 <title><filename>IMAGE_TYPES</filename></title>
1369
1370 <para>
1371 The "sum.jffs2" option for
1372 <link linkend='var-IMAGE_TYPES'><filename>IMAGE_TYPES</filename></link>
1373 has been replaced by the "jffs2.sum" option, which fits the
1374 processing order.
1375 </para>
1376 </section>
1377
1378 <section id='migration-1.6-variable-changes-COPY_LIC_MANIFEST'>
1379 <title><filename>COPY_LIC_MANIFEST</filename></title>
1380
1381 <para>
1382 The
1383 <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
1384 variable must
1385 now be set to "1" rather than any value in order to enable
1386 it.
1387 </para>
1388 </section>
1389
1390 <section id='migration-1.6-variable-changes-COPY_LIC_DIRS'>
1391 <title><filename>COPY_LIC_DIRS</filename></title>
1392
1393 <para>
1394 The
1395 <link linkend='var-COPY_LIC_DIRS'><filename>COPY_LIC_DIRS</filename></link>
1396 variable must
1397 now be set to "1" rather than any value in order to enable
1398 it.
1399 </para>
1400 </section>
1401
1402 <section id='migration-1.6-variable-changes-PACKAGE_GROUP'>
1403 <title><filename>PACKAGE_GROUP</filename></title>
1404
1405 <para>
1406 The
1407 <link linkend='var-PACKAGE_GROUP'><filename>PACKAGE_GROUP</filename></link>
1408 variable has been renamed to
1409 <link linkend='var-FEATURE_PACKAGES'><filename>FEATURE_PACKAGES</filename></link>
1410 to more accurately reflect its purpose.
1411 You can still use <filename>PACKAGE_GROUP</filename> but
1412 the OpenEmbedded build system produces a warning message when
1413 it encounters the variable.
1414 </para>
1415 </section>
1416 </section>
1417
1418 <section id='migration-1.6-directory-layout-changes'>
1419 <title>Directory Layout Changes</title>
1420
1421 <para>
1422 The <filename>meta-hob</filename> layer has been removed from
1423 the top-level of the
1424 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
1425 The contents of this layer are no longer needed by the Hob
1426 user interface for building images and toolchains.
1427 </para>
1428 </section>
1429
1430 <section id='migration-1.6-package-test-ptest'>
1431 <title>Package Test (ptest)</title>
1432
1433 <para>
1434 Package Tests (ptest) are built but not installed by default.
1435 For information on using Package Tests, see the
1436 "<ulink url='&YOCTO_DOCS_DEV_URL;#testing-packages-with-ptest'>Setting up and running package test (ptest)</ulink>"
1437 section in the Yocto Project Development Manual.
1438 For information on the <filename>ptest</filename> class, see the
1439 "<link linkend='ref-classes-ptest'><filename>ptest.bbclass</filename></link>"
1440 section.
1441 </para>
1442 </section>
1443
1444 <section id='migration-1.6-build-changes'>
1445 <title>Build Changes</title>
1446
1447 <para>
1448 Separate build and source directories have been enabled
1449 by default for selected recipes where it is known to work
1450 (a whitelist) and for all recipes that inherit the
1451 <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
1452 class.
1453 In future releases the
1454 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
1455 class will enable a separate build directory by default as
1456 well.
1457 Recipes building Autotools-based
1458 software that fails to build with a separate build directory
1459 should be changed to inherit from the
1460 <link linkend='ref-classes-autotools-brokensep'><filename>autotools-brokensep</filename></link>
1461 class instead of the <filename>autotools</filename> class.
1462 </para>
1463 </section>
1464
1465 <section id='migration-1.6-building-qemu-native'>
1466 <title><filename>qemu-native</filename></title>
1467
1468 <para>
1469 <filename>qemu-native</filename> now builds without
1470 SDL-based graphical output support by default.
1471 The following additional lines are needed in your
1472 <filename>local.conf</filename> to enable it:
1473 <literallayout class='monospaced'>
1474 PACKAGECONFIG_pn-qemu-native = "sdl"
1475 ASSUME_PROVIDED += "libsdl-native"
1476 </literallayout>
1477 <note>
1478 The default <filename>local.conf</filename>
1479 contains these statements.
1480 Consequently, if you are building a headless system and using
1481 a default <filename>local.conf</filename> file, you will need
1482 comment these two lines out.
1483 </note>
1484 </para>
1485 </section>
1486
1487 <section id='migration-1.6-core-image-basic'>
1488 <title><filename>core-image-basic</filename></title>
1489
1490 <para>
1491 <filename>core-image-basic</filename> has been renamed to
1492 <filename>core-image-full-cmdline</filename>.
1493 </para>
1494
1495 <para>
1496 In addition to <filename>core-image-basic</filename> being renamed,
1497 <filename>packagegroup-core-basic</filename> has been renamed to
1498 <filename>packagegroup-core-full-cmdline</filename> to match.
1499 </para>
1500 </section>
1501
1502 <section id='migration-1.6-licensing'>
1503 <title>Licensing</title>
1504
1505 <para>
1506 The top-level <filename>LICENSE</filename> file has been changed
1507 to better describe the license of the various components of
1508 OE-Core.
1509 However, the licensing itself remains unchanged.
1510 </para>
1511
1512 <para>
1513 Normally, this change would not cause any side-effects.
1514 However, some recipes point to this file within
1515 <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link>
1516 (as <filename>${COREBASE}/LICENSE</filename>) and thus the
1517 accompanying checksum must be changed from
1518 3f40d7994397109285ec7b81fdeb3b58 to
1519 4d92cd373abda3937c2bc47fbc49d690.
1520 A better alternative is to have
1521 <filename>LIC_FILES_CHKSUM</filename> point to a file
1522 describing the license that is distributed with the source
1523 that the recipe is building, if possible, rather than pointing
1524 to <filename>${COREBASE}/LICENSE</filename>.
1525 </para>
1526 </section>
1527
1528 <section id='migration-1.6-cflags-options'>
1529 <title><filename>CFLAGS</filename> Options</title>
1530
1531 <para>
1532 The "-fpermissive" option has been removed from the default
1533 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
1534 value.
1535 You need to take action on individual recipes that fail when
1536 building with this option.
1537 You need to either patch the recipes to fix the issues reported by
1538 the compiler, or you need to add "-fpermissive" to
1539 <filename>CFLAGS</filename> in the recipes.
1540 </para>
1541 </section>
1542
1543 <section id='migration-1.6-custom-images'>
1544 <title>Custom Image Output Types</title>
1545
1546 <para>
1547 Custom image output types, as selected using
1548 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>,
1549 must declare their dependencies on other image types (if any) using
1550 a new
1551 <link linkend='var-IMAGE_TYPEDEP'><filename>IMAGE_TYPEDEP</filename></link>
1552 variable.
1553 </para>
1554 </section>
1555
1556 <section id='migration-1.6-do-package-write-task'>
1557 <title>Tasks</title>
1558
1559 <para>
1560 The <filename>do_package_write</filename> task has been removed.
1561 The task is no longer needed.
1562 </para>
1563 </section>
1564
1565 <section id='migration-1.6-update-alternatives-provider'>
1566 <title><filename>update-alternative</filename> Provider</title>
1567
1568 <para>
1569 The default <filename>update-alternatives</filename> provider has
1570 been changed from <filename>opkg</filename> to
1571 <filename>opkg-utils</filename>.
1572 This change resolves some troublesome circular dependencies.
1573 The runtime package has also been renamed from
1574 <filename>update-alternatives-cworth</filename>
1575 to <filename>update-alternatives-opkg</filename>.
1576 </para>
1577 </section>
1578
1579 <section id='migration-1.6-virtclass-overrides'>
1580 <title><filename>virtclass</filename> Overrides</title>
1581
1582 <para>
1583 The <filename>virtclass</filename> overrides are now deprecated.
1584 Use the equivalent class overrides instead (e.g.
1585 <filename>virtclass-native</filename> becomes
1586 <filename>class-native</filename>.)
1587 </para>
1588 </section>
1589
1590 <section id='migration-1.6-removed-renamed-recipes'>
1591 <title>Removed and Renamed Recipes</title>
1592
1593 <para>
1594 The following recipes have been removed:
1595 <itemizedlist>
1596 <listitem><para><filename>packagegroup-toolset-native</filename> -
1597 This recipe is largely unused.
1598 </para></listitem>
1599 <listitem><para><filename>linux-yocto-3.8</filename> -
1600 Support for the Linux yocto 3.8 kernel has been dropped.
1601 Support for the 3.10 and 3.14 kernels have been added
1602 with the <filename>linux-yocto-3.10</filename> and
1603 <filename>linux-yocto-3.14</filename> recipes.
1604 </para></listitem>
1605 <listitem><para><filename>ocf-linux</filename> -
1606 This recipe has been functionally replaced using
1607 <filename>cryptodev-linux</filename>.
1608 </para></listitem>
1609 <listitem><para><filename>genext2fs</filename> -
1610 <filename>genext2fs</filename> is no longer used by the
1611 build system and is unmaintained upstream.
1612 </para></listitem>
1613 <listitem><para><filename>js</filename> -
1614 This provided an ancient version of Mozilla's javascript
1615 engine that is no longer needed.
1616 </para></listitem>
1617 <listitem><para><filename>zaurusd</filename> -
1618 The recipe has been moved to the
1619 <filename>meta-handheld</filename> layer.
1620 </para></listitem>
1621 <listitem><para><filename>eglibc 2.17</filename> -
1622 Replaced by the <filename>eglibc 2.19</filename>
1623 recipe.
1624 </para></listitem>
1625 <listitem><para><filename>gcc 4.7.2</filename> -
1626 Replaced by the now stable
1627 <filename>gcc 4.8.2</filename>.
1628 </para></listitem>
1629 <listitem><para><filename>external-sourcery-toolchain</filename> -
1630 this recipe is now maintained in the
1631 <filename>meta-sourcery</filename> layer.
1632 </para></listitem>
1633 <listitem><para><filename>linux-libc-headers-yocto 3.4+git</filename> -
1634 Now using version 3.10 of the
1635 <filename>linux-libc-headers</filename> by default.
1636 </para></listitem>
1637 <listitem><para><filename>meta-toolchain-gmae</filename> -
1638 This recipe is obsolete.
1639 </para></listitem>
1640 <listitem><para><filename>packagegroup-core-sdk-gmae</filename> -
1641 This recipe is obsolete.
1642 </para></listitem>
1643 <listitem><para><filename>packagegroup-core-standalone-gmae-sdk-target</filename> -
1644 This recipe is obsolete.
1645 </para></listitem>
1646 </itemizedlist>
1647 </para>
1648 </section>
1649
1650 <section id='migration-1.6-removed-classes'>
1651 <title>Removed Classes</title>
1652
1653 <para>
1654 The following classes have become obsolete and have been removed:
1655 <itemizedlist>
1656 <listitem><para><filename>module_strip</filename>
1657 </para></listitem>
1658 <listitem><para><filename>pkg_metainfo</filename>
1659 </para></listitem>
1660 <listitem><para><filename>pkg_distribute</filename>
1661 </para></listitem>
1662 <listitem><para><filename>image-empty</filename>
1663 </para></listitem>
1664 </itemizedlist>
1665 </para>
1666 </section>
1667
1668 <section id='migration-1.6-reference-bsps'>
1669 <title>Reference Board Support Packages (BSPs)</title>
1670
1671 <para>
1672 The following reference BSPs changes occurred:
1673 <itemizedlist>
1674 <listitem><para>The BeagleBoard
1675 (<filename>beagleboard</filename>) ARM reference hardware
1676 has been replaced by the BeagleBone
1677 (<filename>beaglebone</filename>) hardware.
1678 </para></listitem>
1679 <listitem><para>The RouterStation Pro
1680 (<filename>routerstationpro</filename>) MIPS reference
1681 hardware has been replaced by the EdgeRouter Lite
1682 (<filename>edgerouter</filename>) hardware.
1683 </para></listitem>
1684 </itemizedlist>
1685 The previous reference BSPs for the
1686 <filename>beagleboard</filename> and
1687 <filename>routerstationpro</filename> machines are still available
1688 in a new <filename>meta-yocto-bsp-old</filename> layer in the
1689 <ulink url='&YOCTO_GIT_URL;'>Source Repositories</ulink>
1690 at
1691 <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>.
1692 </para>
1693 </section>
1694</section>
1695
1696<section id='moving-to-the-yocto-project-1.7-release'>
1697 <title>Moving to the Yocto Project 1.7 Release</title>
1698
1699 <para>
1700 This section provides migration information for moving to the
1701 Yocto Project 1.7 Release from the prior release.
1702 </para>
1703
1704 <section id='migration-1.7-changes-to-setting-qemu-packageconfig-options'>
1705 <title>Changes to Setting QEMU <filename>PACKAGECONFIG</filename> Options in <filename>local.conf</filename></title>
1706
1707 <para>
1708 The QEMU recipe now uses a number of
1709 <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
1710 options to enable various optional features.
1711 The method used to set defaults for these options means that
1712 existing
1713 <filename>local.conf</filename> files will need to be be
1714 modified to append to <filename>PACKAGECONFIG</filename> for
1715 <filename>qemu-native</filename> and
1716 <filename>nativesdk-qemu</filename> instead of setting it.
1717 In other words, to enable graphical output for QEMU, you should
1718 now have these lines in <filename>local.conf</filename>:
1719 <literallayout class='monospaced'>
1720 PACKAGECONFIG_append_pn-qemu-native = " sdl"
1721 PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
1722 </literallayout>
1723 </para>
1724 </section>
1725
1726 <section id='migration-1.7-minimum-git-version'>
1727 <title>Minimum Git version</title>
1728
1729 <para>
1730 The minimum
1731 <ulink url='&YOCTO_DOCS_DEV_URL;#git'>Git</ulink> version required
1732 on the build host is now 1.7.8 because the
1733 <filename>&dash;&dash;list</filename> option is now required by
1734 BitBake's Git fetcher.
1735 As always, if your host distribution does not provide a version of
1736 Git that meets this requirement, you can use the
1737 <filename>buildtools-tarball</filename> that does.
1738 See the
1739 "<link linkend='required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</link>"
1740 section for more information.
1741 </para>
1742 </section>
1743
1744 <section id='migration-1.7-autotools-class-changes'>
1745 <title>Autotools Class Changes</title>
1746
1747 <para>
1748 The following
1749 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
1750 class changes occurred:
1751 <itemizedlist>
1752 <listitem><para><emphasis>
1753 A separate build directory is now used by default:</emphasis>
1754 The <filename>autotools</filename> class has been changed
1755 to use a directory for building
1756 (<link linkend='var-B'><filename>B</filename></link>),
1757 which is separate from the source directory
1758 (<link linkend='var-S'><filename>S</filename></link>).
1759 This is commonly referred to as
1760 <filename>B != S</filename>, or an out-of-tree build.</para>
1761 <para>If the software being built is already capable of
1762 building in a directory separate from the source, you
1763 do not need to do anything.
1764 However, if the software is not capable of being built
1765 in this manner, you will
1766 need to either patch the software so that it can build
1767 separately, or you will need to change the recipe to
1768 inherit the
1769 <link linkend='ref-classes-autotools-brokensep'><filename>autotools-brokensep</filename></link>
1770 class instead of the <filename>autotools</filename> class.
1771 </para></listitem>
1772 <listitem><para><emphasis>
1773 The <filename>&dash;&dash;foreign</filename> option is
1774 no longer passed to <filename>automake</filename> when
1775 running <filename>autoconf</filename>:</emphasis>
1776 This option tells <filename>automake</filename> that a
1777 particular software package does not follow the GNU
1778 standards and therefore should not be expected
1779 to distribute certain files such as
1780 <filename>ChangeLog</filename>,
1781 <filename>AUTHORS</filename>, and so forth.
1782 Because the majority of upstream software packages already
1783 tell <filename>automake</filename> to enable foreign mode
1784 themselves, the option is mostly superfluous.
1785 However, some recipes will need patches for this change.
1786 You can easily make the change by patching
1787 <filename>configure.ac</filename> so that it passes
1788 "foreign" to <filename>AM_INIT_AUTOMAKE()</filename>.
1789 See
1790 <ulink url='http://cgit.openembedded.org/openembedded-core/commit/?id=01943188f85ce6411717fb5bf702d609f55813f2'>this commit</ulink>
1791 for an example showing how to make the patch.
1792 </para></listitem>
1793 </itemizedlist>
1794 </para>
1795 </section>
1796
1797 <section id='migration-1.7-binary-configuration-scripts-disabled'>
1798 <title>Binary Configuration Scripts Disabled</title>
1799
1800 <para>
1801 Some of the core recipes that package binary configuration scripts
1802 now disable the scripts due to the
1803 scripts previously requiring error-prone path substitution.
1804 Software that links against these libraries using these scripts
1805 should use the much more robust <filename>pkg-config</filename>
1806 instead.
1807 The list of recipes changed in this version (and their
1808 configuration scripts) is as follows:
1809 <literallayout class='monospaced'>
1810 directfb (directfb-config)
1811 freetype (freetype-config)
1812 gpgme (gpgme-config)
1813 libassuan (libassuan-config)
1814 libcroco (croco-6.0-config)
1815 libgcrypt (libgcrypt-config)
1816 libgpg-error (gpg-error-config)
1817 libksba (ksba-config)
1818 libpcap (pcap-config)
1819 libpcre (pcre-config)
1820 libpng (libpng-config, libpng16-config)
1821 libsdl (sdl-config)
1822 libusb-compat (libusb-config)
1823 libxml2 (xml2-config)
1824 libxslt (xslt-config)
1825 ncurses (ncurses-config)
1826 neon (neon-config)
1827 npth (npth-config)
1828 pth (pth-config)
1829 taglib (taglib-config)
1830 </literallayout>
1831 Additionally, support for <filename>pkg-config</filename> has been
1832 added to some recipes in the previous list in the rare cases
1833 where the upstream software package does not already provide
1834 it.
1835 </para>
1836 </section>
1837
1838 <section id='migration-1.7-glibc-replaces-eglibc'>
1839 <title><filename>eglibc 2.19</filename> Replaced with <filename>glibc 2.20</filename></title>
1840
1841 <para>
1842 Because <filename>eglibc</filename> and
1843 <filename>glibc</filename> were already fairly close, this
1844 replacement should not require any significant changes to other
1845 software that links to <filename>eglibc</filename>.
1846 However, there were a number of minor changes in
1847 <filename>glibc 2.20</filename> upstream that could require
1848 patching some software (e.g. the removal of the
1849 <filename>_BSD_SOURCE</filename> feature test macro).
1850 </para>
1851
1852 <para>
1853 <filename>glibc 2.20</filename> requires version 2.6.32 or greater
1854 of the Linux kernel.
1855 Thus, older kernels will no longer be usable in conjunction with it.
1856 </para>
1857
1858 <para>
1859 For full details on the changes in <filename>glibc 2.20</filename>,
1860 see the upstream release notes
1861 <ulink url='https://sourceware.org/ml/libc-alpha/2014-09/msg00088.html'>here</ulink>.
1862 </para>
1863 </section>
1864
1865 <section id='migration-1.7-kernel-module-autoloading'>
1866 <title>Kernel Module Autoloading</title>
1867
1868 <para>
1869 The
1870 <link linkend='var-module_autoload'><filename>module_autoload_*</filename></link>
1871 variable is now deprecated and a new
1872 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
1873 variable should be used instead.
1874 Also,
1875 <link linkend='var-module_conf'><filename>module_conf_*</filename></link>
1876 must now be used in conjunction with a new
1877 <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
1878 variable.
1879 The new variables no longer require you to specify the module name
1880 as part of the variable name.
1881 This change not only simplifies usage but also allows the values
1882 of these variables to be appropriately incorporated into task
1883 signatures and thus trigger the appropriate tasks to re-execute
1884 when changed.
1885 You should replace any references to
1886 <filename>module_autoload_*</filename> with
1887 <filename>KERNEL_MODULE_AUTOLOAD</filename>, and add any modules
1888 for which <filename>module_conf_*</filename> is specified to
1889 <filename>KERNEL_MODULE_PROBECONF</filename>.
1890 </para>
1891
1892 <para>
1893 For more information, see the
1894 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
1895 and
1896 <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
1897 variables.
1898 </para>
1899 </section>
1900
1901 <section id='migration-1.7-qa-check-changes'>
1902 <title>QA Check Changes</title>
1903
1904 <para>
1905 The following changes have occurred to the QA check process:
1906 <itemizedlist>
1907 <listitem><para>
1908 Additional QA checks <filename>file-rdeps</filename>
1909 and <filename>build-deps</filename> have been added in
1910 order to verify that file dependencies are satisfied
1911 (e.g. package contains a script requiring
1912 <filename>/bin/bash</filename>) and build-time dependencies
1913 are declared, respectively.
1914 For more information, please see the
1915 "<link linkend='ref-qa-checks'>QA Error and Warning Messages</link>"
1916 chapter.
1917 </para></listitem>
1918 <listitem><para>
1919 Package QA checks are now performed during a new
1920 <link linkend='ref-tasks-package_qa'><filename>do_package_qa</filename></link>
1921 task rather than being part of the
1922 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
1923 task.
1924 This allows more parallel execution.
1925 This change is unlikely to be an issue except for highly
1926 customized recipes that disable packaging tasks themselves
1927 by marking them as <filename>noexec</filename>.
1928 For those packages, you will need to disable the
1929 <filename>do_package_qa</filename> task as well.
1930 </para></listitem>
1931 <listitem><para>
1932 Files being overwritten during the
1933 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
1934 task now trigger an error instead of a warning.
1935 Recipes should not be overwriting files written to the
1936 sysroot by other recipes.
1937 If you have these types of recipes, you need to alter them
1938 so that they do not overwrite these files.</para>
1939 <para>You might now receive this error after changes in
1940 configuration or metadata resulting in orphaned files
1941 being left in the sysroot.
1942 If you do receive this error, the way to resolve the issue
1943 is to delete your
1944 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
1945 or to move it out of the way and then re-start the build.
1946 Anything that has been fully built up to that point and
1947 does not need rebuilding will be restored from the shared
1948 state cache and the rest of the build will be able to
1949 proceed as normal.
1950 </para></listitem>
1951 </itemizedlist>
1952 </para>
1953 </section>
1954
1955 <section id='migration-1.7-removed-recipes'>
1956 <title>Removed Recipes</title>
1957
1958 <para>
1959 The following recipes have been removed:
1960 <itemizedlist>
1961 <listitem><para>
1962 <filename>x-load</filename>:
1963 This recipe has been superseded by
1964 U-boot SPL for all Cortex-based TI SoCs.
1965 For legacy boards, the <filename>meta-ti</filename>
1966 layer, which contains a maintained recipe, should be used
1967 instead.
1968 </para></listitem>
1969 <listitem><para>
1970 <filename>ubootchart</filename>:
1971 This recipe is obsolete.
1972 A <filename>bootchart2</filename> recipe has been added
1973 to functionally replace it.
1974 </para></listitem>
1975 <listitem><para>
1976 <filename>linux-yocto 3.4</filename>:
1977 Support for the linux-yocto 3.4 kernel has been dropped.
1978 Support for the 3.10 and 3.14 kernels remains, while
1979 support for version 3.17 has been added.
1980 </para></listitem>
1981 <listitem><para>
1982 <filename>eglibc</filename> has been removed in favor of
1983 <filename>glibc</filename>.
1984 See the
1985 "<link linkend='migration-1.7-glibc-replaces-eglibc'><filename>eglibc 2.19</filename> Replaced with <filename>glibc 2.20</filename></link>"
1986 section for more information.
1987 </para></listitem>
1988 </itemizedlist>
1989 </para>
1990 </section>
1991
1992 <section id='migration-1.7-miscellaneous-changes'>
1993 <title>Miscellaneous Changes</title>
1994
1995 <para>
1996 The following miscellaneous change occurred:
1997 <itemizedlist>
1998 <listitem><para>
1999 The build history feature now writes
2000 <filename>build-id.txt</filename> instead of
2001 <filename>build-id</filename>.
2002 Additionally, <filename>build-id.txt</filename>
2003 now contains the full build header as printed by
2004 BitBake upon starting the build.
2005 You should manually remove old "build-id" files from your
2006 existing build history repositories to avoid confusion.
2007 For information on the build history feature, see the
2008 "<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>"
2009 section.
2010 </para></listitem>
2011 </itemizedlist>
2012 </para>
2013 </section>
2014</section>
2015
2016</chapter>
2017<!--
2018vim: expandtab tw=80 ts=4
2019-->