blob: 21763e3a469f14a6d0e9a452bdb31591c7bf648c [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
Patrick Williamsf1e5d692016-03-30 15:21:19 -0500983 <link linkend='ref-classes-testimage*'><filename>testimage.bbclass</filename></link>
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500984 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>
Patrick Williamsf1e5d692016-03-30 15:21:19 -05001257 <listitem><para><filename>bb.encodeurl</filename>:
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001258 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
Patrick Williamsf1e5d692016-03-30 15:21:19 -05001488 <link linkend='ref-classes-autotools'><filename>autotools-brokensep</filename></link>
1489 class instead of the <filename>autotools</filename> or
1490 <filename>autotools_stage</filename>classes.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001491 </para>
1492 </section>
1493
1494 <section id='migration-1.6-building-qemu-native'>
1495 <title><filename>qemu-native</filename></title>
1496
1497 <para>
1498 <filename>qemu-native</filename> now builds without
1499 SDL-based graphical output support by default.
1500 The following additional lines are needed in your
1501 <filename>local.conf</filename> to enable it:
1502 <literallayout class='monospaced'>
1503 PACKAGECONFIG_pn-qemu-native = "sdl"
1504 ASSUME_PROVIDED += "libsdl-native"
1505 </literallayout>
1506 <note>
1507 The default <filename>local.conf</filename>
1508 contains these statements.
1509 Consequently, if you are building a headless system and using
1510 a default <filename>local.conf</filename> file, you will need
1511 comment these two lines out.
1512 </note>
1513 </para>
1514 </section>
1515
1516 <section id='migration-1.6-core-image-basic'>
1517 <title><filename>core-image-basic</filename></title>
1518
1519 <para>
1520 <filename>core-image-basic</filename> has been renamed to
1521 <filename>core-image-full-cmdline</filename>.
1522 </para>
1523
1524 <para>
1525 In addition to <filename>core-image-basic</filename> being renamed,
1526 <filename>packagegroup-core-basic</filename> has been renamed to
1527 <filename>packagegroup-core-full-cmdline</filename> to match.
1528 </para>
1529 </section>
1530
1531 <section id='migration-1.6-licensing'>
1532 <title>Licensing</title>
1533
1534 <para>
1535 The top-level <filename>LICENSE</filename> file has been changed
1536 to better describe the license of the various components of
1537 OE-Core.
1538 However, the licensing itself remains unchanged.
1539 </para>
1540
1541 <para>
1542 Normally, this change would not cause any side-effects.
1543 However, some recipes point to this file within
1544 <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link>
1545 (as <filename>${COREBASE}/LICENSE</filename>) and thus the
1546 accompanying checksum must be changed from
1547 3f40d7994397109285ec7b81fdeb3b58 to
1548 4d92cd373abda3937c2bc47fbc49d690.
1549 A better alternative is to have
1550 <filename>LIC_FILES_CHKSUM</filename> point to a file
1551 describing the license that is distributed with the source
1552 that the recipe is building, if possible, rather than pointing
1553 to <filename>${COREBASE}/LICENSE</filename>.
1554 </para>
1555 </section>
1556
1557 <section id='migration-1.6-cflags-options'>
1558 <title><filename>CFLAGS</filename> Options</title>
1559
1560 <para>
1561 The "-fpermissive" option has been removed from the default
1562 <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
1563 value.
1564 You need to take action on individual recipes that fail when
1565 building with this option.
1566 You need to either patch the recipes to fix the issues reported by
1567 the compiler, or you need to add "-fpermissive" to
1568 <filename>CFLAGS</filename> in the recipes.
1569 </para>
1570 </section>
1571
1572 <section id='migration-1.6-custom-images'>
1573 <title>Custom Image Output Types</title>
1574
1575 <para>
1576 Custom image output types, as selected using
1577 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>,
1578 must declare their dependencies on other image types (if any) using
1579 a new
1580 <link linkend='var-IMAGE_TYPEDEP'><filename>IMAGE_TYPEDEP</filename></link>
1581 variable.
1582 </para>
1583 </section>
1584
1585 <section id='migration-1.6-do-package-write-task'>
1586 <title>Tasks</title>
1587
1588 <para>
1589 The <filename>do_package_write</filename> task has been removed.
1590 The task is no longer needed.
1591 </para>
1592 </section>
1593
1594 <section id='migration-1.6-update-alternatives-provider'>
1595 <title><filename>update-alternative</filename> Provider</title>
1596
1597 <para>
1598 The default <filename>update-alternatives</filename> provider has
1599 been changed from <filename>opkg</filename> to
1600 <filename>opkg-utils</filename>.
1601 This change resolves some troublesome circular dependencies.
1602 The runtime package has also been renamed from
1603 <filename>update-alternatives-cworth</filename>
1604 to <filename>update-alternatives-opkg</filename>.
1605 </para>
1606 </section>
1607
1608 <section id='migration-1.6-virtclass-overrides'>
1609 <title><filename>virtclass</filename> Overrides</title>
1610
1611 <para>
1612 The <filename>virtclass</filename> overrides are now deprecated.
1613 Use the equivalent class overrides instead (e.g.
1614 <filename>virtclass-native</filename> becomes
1615 <filename>class-native</filename>.)
1616 </para>
1617 </section>
1618
1619 <section id='migration-1.6-removed-renamed-recipes'>
1620 <title>Removed and Renamed Recipes</title>
1621
1622 <para>
1623 The following recipes have been removed:
1624 <itemizedlist>
1625 <listitem><para><filename>packagegroup-toolset-native</filename> -
1626 This recipe is largely unused.
1627 </para></listitem>
1628 <listitem><para><filename>linux-yocto-3.8</filename> -
1629 Support for the Linux yocto 3.8 kernel has been dropped.
1630 Support for the 3.10 and 3.14 kernels have been added
1631 with the <filename>linux-yocto-3.10</filename> and
1632 <filename>linux-yocto-3.14</filename> recipes.
1633 </para></listitem>
1634 <listitem><para><filename>ocf-linux</filename> -
1635 This recipe has been functionally replaced using
1636 <filename>cryptodev-linux</filename>.
1637 </para></listitem>
1638 <listitem><para><filename>genext2fs</filename> -
1639 <filename>genext2fs</filename> is no longer used by the
1640 build system and is unmaintained upstream.
1641 </para></listitem>
1642 <listitem><para><filename>js</filename> -
1643 This provided an ancient version of Mozilla's javascript
1644 engine that is no longer needed.
1645 </para></listitem>
1646 <listitem><para><filename>zaurusd</filename> -
1647 The recipe has been moved to the
1648 <filename>meta-handheld</filename> layer.
1649 </para></listitem>
1650 <listitem><para><filename>eglibc 2.17</filename> -
1651 Replaced by the <filename>eglibc 2.19</filename>
1652 recipe.
1653 </para></listitem>
1654 <listitem><para><filename>gcc 4.7.2</filename> -
1655 Replaced by the now stable
1656 <filename>gcc 4.8.2</filename>.
1657 </para></listitem>
1658 <listitem><para><filename>external-sourcery-toolchain</filename> -
1659 this recipe is now maintained in the
1660 <filename>meta-sourcery</filename> layer.
1661 </para></listitem>
1662 <listitem><para><filename>linux-libc-headers-yocto 3.4+git</filename> -
1663 Now using version 3.10 of the
1664 <filename>linux-libc-headers</filename> by default.
1665 </para></listitem>
1666 <listitem><para><filename>meta-toolchain-gmae</filename> -
1667 This recipe is obsolete.
1668 </para></listitem>
1669 <listitem><para><filename>packagegroup-core-sdk-gmae</filename> -
1670 This recipe is obsolete.
1671 </para></listitem>
1672 <listitem><para><filename>packagegroup-core-standalone-gmae-sdk-target</filename> -
1673 This recipe is obsolete.
1674 </para></listitem>
1675 </itemizedlist>
1676 </para>
1677 </section>
1678
1679 <section id='migration-1.6-removed-classes'>
1680 <title>Removed Classes</title>
1681
1682 <para>
1683 The following classes have become obsolete and have been removed:
1684 <itemizedlist>
1685 <listitem><para><filename>module_strip</filename>
1686 </para></listitem>
1687 <listitem><para><filename>pkg_metainfo</filename>
1688 </para></listitem>
1689 <listitem><para><filename>pkg_distribute</filename>
1690 </para></listitem>
1691 <listitem><para><filename>image-empty</filename>
1692 </para></listitem>
1693 </itemizedlist>
1694 </para>
1695 </section>
1696
1697 <section id='migration-1.6-reference-bsps'>
1698 <title>Reference Board Support Packages (BSPs)</title>
1699
1700 <para>
1701 The following reference BSPs changes occurred:
1702 <itemizedlist>
1703 <listitem><para>The BeagleBoard
1704 (<filename>beagleboard</filename>) ARM reference hardware
1705 has been replaced by the BeagleBone
1706 (<filename>beaglebone</filename>) hardware.
1707 </para></listitem>
1708 <listitem><para>The RouterStation Pro
1709 (<filename>routerstationpro</filename>) MIPS reference
1710 hardware has been replaced by the EdgeRouter Lite
1711 (<filename>edgerouter</filename>) hardware.
1712 </para></listitem>
1713 </itemizedlist>
1714 The previous reference BSPs for the
1715 <filename>beagleboard</filename> and
1716 <filename>routerstationpro</filename> machines are still available
1717 in a new <filename>meta-yocto-bsp-old</filename> layer in the
1718 <ulink url='&YOCTO_GIT_URL;'>Source Repositories</ulink>
1719 at
1720 <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>.
1721 </para>
1722 </section>
1723</section>
1724
1725<section id='moving-to-the-yocto-project-1.7-release'>
1726 <title>Moving to the Yocto Project 1.7 Release</title>
1727
1728 <para>
1729 This section provides migration information for moving to the
1730 Yocto Project 1.7 Release from the prior release.
1731 </para>
1732
1733 <section id='migration-1.7-changes-to-setting-qemu-packageconfig-options'>
1734 <title>Changes to Setting QEMU <filename>PACKAGECONFIG</filename> Options in <filename>local.conf</filename></title>
1735
1736 <para>
1737 The QEMU recipe now uses a number of
1738 <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
1739 options to enable various optional features.
1740 The method used to set defaults for these options means that
1741 existing
1742 <filename>local.conf</filename> files will need to be be
1743 modified to append to <filename>PACKAGECONFIG</filename> for
1744 <filename>qemu-native</filename> and
1745 <filename>nativesdk-qemu</filename> instead of setting it.
1746 In other words, to enable graphical output for QEMU, you should
1747 now have these lines in <filename>local.conf</filename>:
1748 <literallayout class='monospaced'>
1749 PACKAGECONFIG_append_pn-qemu-native = " sdl"
1750 PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
1751 </literallayout>
1752 </para>
1753 </section>
1754
1755 <section id='migration-1.7-minimum-git-version'>
1756 <title>Minimum Git version</title>
1757
1758 <para>
1759 The minimum
1760 <ulink url='&YOCTO_DOCS_DEV_URL;#git'>Git</ulink> version required
1761 on the build host is now 1.7.8 because the
1762 <filename>--list</filename> option is now required by
1763 BitBake's Git fetcher.
1764 As always, if your host distribution does not provide a version of
1765 Git that meets this requirement, you can use the
1766 <filename>buildtools-tarball</filename> that does.
1767 See the
1768 "<link linkend='required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</link>"
1769 section for more information.
1770 </para>
1771 </section>
1772
1773 <section id='migration-1.7-autotools-class-changes'>
1774 <title>Autotools Class Changes</title>
1775
1776 <para>
1777 The following
1778 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
1779 class changes occurred:
1780 <itemizedlist>
1781 <listitem><para><emphasis>
1782 A separate build directory is now used by default:</emphasis>
1783 The <filename>autotools</filename> class has been changed
1784 to use a directory for building
1785 (<link linkend='var-B'><filename>B</filename></link>),
1786 which is separate from the source directory
1787 (<link linkend='var-S'><filename>S</filename></link>).
1788 This is commonly referred to as
1789 <filename>B != S</filename>, or an out-of-tree build.</para>
1790 <para>If the software being built is already capable of
1791 building in a directory separate from the source, you
1792 do not need to do anything.
1793 However, if the software is not capable of being built
1794 in this manner, you will
1795 need to either patch the software so that it can build
1796 separately, or you will need to change the recipe to
1797 inherit the
Patrick Williamsf1e5d692016-03-30 15:21:19 -05001798 <link linkend='ref-classes-autotools'><filename>autotools-brokensep</filename></link>
1799 class instead of the <filename>autotools</filename> or
1800 <filename>autotools_stage</filename> classes.
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001801 </para></listitem>
1802 <listitem><para><emphasis>
1803 The <filename>--foreign</filename> option is
1804 no longer passed to <filename>automake</filename> when
1805 running <filename>autoconf</filename>:</emphasis>
1806 This option tells <filename>automake</filename> that a
1807 particular software package does not follow the GNU
1808 standards and therefore should not be expected
1809 to distribute certain files such as
1810 <filename>ChangeLog</filename>,
1811 <filename>AUTHORS</filename>, and so forth.
1812 Because the majority of upstream software packages already
1813 tell <filename>automake</filename> to enable foreign mode
1814 themselves, the option is mostly superfluous.
1815 However, some recipes will need patches for this change.
1816 You can easily make the change by patching
1817 <filename>configure.ac</filename> so that it passes
1818 "foreign" to <filename>AM_INIT_AUTOMAKE()</filename>.
1819 See
1820 <ulink url='http://cgit.openembedded.org/openembedded-core/commit/?id=01943188f85ce6411717fb5bf702d609f55813f2'>this commit</ulink>
1821 for an example showing how to make the patch.
1822 </para></listitem>
1823 </itemizedlist>
1824 </para>
1825 </section>
1826
1827 <section id='migration-1.7-binary-configuration-scripts-disabled'>
1828 <title>Binary Configuration Scripts Disabled</title>
1829
1830 <para>
1831 Some of the core recipes that package binary configuration scripts
1832 now disable the scripts due to the
1833 scripts previously requiring error-prone path substitution.
1834 Software that links against these libraries using these scripts
1835 should use the much more robust <filename>pkg-config</filename>
1836 instead.
1837 The list of recipes changed in this version (and their
1838 configuration scripts) is as follows:
1839 <literallayout class='monospaced'>
1840 directfb (directfb-config)
1841 freetype (freetype-config)
1842 gpgme (gpgme-config)
1843 libassuan (libassuan-config)
1844 libcroco (croco-6.0-config)
1845 libgcrypt (libgcrypt-config)
1846 libgpg-error (gpg-error-config)
1847 libksba (ksba-config)
1848 libpcap (pcap-config)
1849 libpcre (pcre-config)
1850 libpng (libpng-config, libpng16-config)
1851 libsdl (sdl-config)
1852 libusb-compat (libusb-config)
1853 libxml2 (xml2-config)
1854 libxslt (xslt-config)
1855 ncurses (ncurses-config)
1856 neon (neon-config)
1857 npth (npth-config)
1858 pth (pth-config)
1859 taglib (taglib-config)
1860 </literallayout>
1861 Additionally, support for <filename>pkg-config</filename> has been
1862 added to some recipes in the previous list in the rare cases
1863 where the upstream software package does not already provide
1864 it.
1865 </para>
1866 </section>
1867
1868 <section id='migration-1.7-glibc-replaces-eglibc'>
1869 <title><filename>eglibc 2.19</filename> Replaced with <filename>glibc 2.20</filename></title>
1870
1871 <para>
1872 Because <filename>eglibc</filename> and
1873 <filename>glibc</filename> were already fairly close, this
1874 replacement should not require any significant changes to other
1875 software that links to <filename>eglibc</filename>.
1876 However, there were a number of minor changes in
1877 <filename>glibc 2.20</filename> upstream that could require
1878 patching some software (e.g. the removal of the
1879 <filename>_BSD_SOURCE</filename> feature test macro).
1880 </para>
1881
1882 <para>
1883 <filename>glibc 2.20</filename> requires version 2.6.32 or greater
1884 of the Linux kernel.
1885 Thus, older kernels will no longer be usable in conjunction with it.
1886 </para>
1887
1888 <para>
1889 For full details on the changes in <filename>glibc 2.20</filename>,
1890 see the upstream release notes
1891 <ulink url='https://sourceware.org/ml/libc-alpha/2014-09/msg00088.html'>here</ulink>.
1892 </para>
1893 </section>
1894
1895 <section id='migration-1.7-kernel-module-autoloading'>
1896 <title>Kernel Module Autoloading</title>
1897
1898 <para>
1899 The
1900 <link linkend='var-module_autoload'><filename>module_autoload_*</filename></link>
1901 variable is now deprecated and a new
1902 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
1903 variable should be used instead.
1904 Also,
1905 <link linkend='var-module_conf'><filename>module_conf_*</filename></link>
1906 must now be used in conjunction with a new
1907 <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
1908 variable.
1909 The new variables no longer require you to specify the module name
1910 as part of the variable name.
1911 This change not only simplifies usage but also allows the values
1912 of these variables to be appropriately incorporated into task
1913 signatures and thus trigger the appropriate tasks to re-execute
1914 when changed.
1915 You should replace any references to
1916 <filename>module_autoload_*</filename> with
1917 <filename>KERNEL_MODULE_AUTOLOAD</filename>, and add any modules
1918 for which <filename>module_conf_*</filename> is specified to
1919 <filename>KERNEL_MODULE_PROBECONF</filename>.
1920 </para>
1921
1922 <para>
1923 For more information, see the
1924 <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link>
1925 and
1926 <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>
1927 variables.
1928 </para>
1929 </section>
1930
1931 <section id='migration-1.7-qa-check-changes'>
1932 <title>QA Check Changes</title>
1933
1934 <para>
1935 The following changes have occurred to the QA check process:
1936 <itemizedlist>
1937 <listitem><para>
1938 Additional QA checks <filename>file-rdeps</filename>
1939 and <filename>build-deps</filename> have been added in
1940 order to verify that file dependencies are satisfied
1941 (e.g. package contains a script requiring
1942 <filename>/bin/bash</filename>) and build-time dependencies
1943 are declared, respectively.
1944 For more information, please see the
1945 "<link linkend='ref-qa-checks'>QA Error and Warning Messages</link>"
1946 chapter.
1947 </para></listitem>
1948 <listitem><para>
1949 Package QA checks are now performed during a new
1950 <link linkend='ref-tasks-package_qa'><filename>do_package_qa</filename></link>
1951 task rather than being part of the
1952 <link linkend='ref-tasks-package'><filename>do_package</filename></link>
1953 task.
1954 This allows more parallel execution.
1955 This change is unlikely to be an issue except for highly
1956 customized recipes that disable packaging tasks themselves
1957 by marking them as <filename>noexec</filename>.
1958 For those packages, you will need to disable the
1959 <filename>do_package_qa</filename> task as well.
1960 </para></listitem>
1961 <listitem><para>
1962 Files being overwritten during the
1963 <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
1964 task now trigger an error instead of a warning.
1965 Recipes should not be overwriting files written to the
1966 sysroot by other recipes.
1967 If you have these types of recipes, you need to alter them
1968 so that they do not overwrite these files.</para>
1969 <para>You might now receive this error after changes in
1970 configuration or metadata resulting in orphaned files
1971 being left in the sysroot.
1972 If you do receive this error, the way to resolve the issue
1973 is to delete your
1974 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
1975 or to move it out of the way and then re-start the build.
1976 Anything that has been fully built up to that point and
1977 does not need rebuilding will be restored from the shared
1978 state cache and the rest of the build will be able to
1979 proceed as normal.
1980 </para></listitem>
1981 </itemizedlist>
1982 </para>
1983 </section>
1984
1985 <section id='migration-1.7-removed-recipes'>
1986 <title>Removed Recipes</title>
1987
1988 <para>
1989 The following recipes have been removed:
1990 <itemizedlist>
1991 <listitem><para>
1992 <filename>x-load</filename>:
1993 This recipe has been superseded by
1994 U-boot SPL for all Cortex-based TI SoCs.
1995 For legacy boards, the <filename>meta-ti</filename>
1996 layer, which contains a maintained recipe, should be used
1997 instead.
1998 </para></listitem>
1999 <listitem><para>
2000 <filename>ubootchart</filename>:
2001 This recipe is obsolete.
2002 A <filename>bootchart2</filename> recipe has been added
2003 to functionally replace it.
2004 </para></listitem>
2005 <listitem><para>
2006 <filename>linux-yocto 3.4</filename>:
2007 Support for the linux-yocto 3.4 kernel has been dropped.
2008 Support for the 3.10 and 3.14 kernels remains, while
2009 support for version 3.17 has been added.
2010 </para></listitem>
2011 <listitem><para>
2012 <filename>eglibc</filename> has been removed in favor of
2013 <filename>glibc</filename>.
2014 See the
2015 "<link linkend='migration-1.7-glibc-replaces-eglibc'><filename>eglibc 2.19</filename> Replaced with <filename>glibc 2.20</filename></link>"
2016 section for more information.
2017 </para></listitem>
2018 </itemizedlist>
2019 </para>
2020 </section>
2021
2022 <section id='migration-1.7-miscellaneous-changes'>
2023 <title>Miscellaneous Changes</title>
2024
2025 <para>
2026 The following miscellaneous change occurred:
2027 <itemizedlist>
2028 <listitem><para>
2029 The build history feature now writes
2030 <filename>build-id.txt</filename> instead of
2031 <filename>build-id</filename>.
2032 Additionally, <filename>build-id.txt</filename>
2033 now contains the full build header as printed by
2034 BitBake upon starting the build.
2035 You should manually remove old "build-id" files from your
2036 existing build history repositories to avoid confusion.
2037 For information on the build history feature, see the
2038 "<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>"
2039 section.
2040 </para></listitem>
2041 </itemizedlist>
2042 </para>
2043 </section>
2044</section>
2045
2046<section id='moving-to-the-yocto-project-1.8-release'>
2047 <title>Moving to the Yocto Project 1.8 Release</title>
2048
2049 <para>
2050 This section provides migration information for moving to the
2051 Yocto Project 1.8 Release from the prior release.
2052 </para>
2053
2054 <section id='migration-1.8-removed-recipes'>
2055 <title>Removed Recipes</title>
2056
2057 <para>
2058 The following recipes have been removed:
2059 <itemizedlist>
2060 <listitem><para><filename>owl-video</filename>:
2061 Functionality replaced by <filename>gst-player</filename>.
2062 </para></listitem>
2063 <listitem><para><filename>gaku</filename>:
2064 Functionality replaced by <filename>gst-player</filename>.
2065 </para></listitem>
2066 <listitem><para><filename>gnome-desktop</filename>:
2067 This recipe is now available in
2068 <filename>meta-gnome</filename> and is no longer needed.
2069 </para></listitem>
2070 <listitem><para><filename>gsettings-desktop-schemas</filename>:
2071 This recipe is now available in
2072 <filename>meta-gnome</filename> and is no longer needed.
2073 </para></listitem>
2074 <listitem><para><filename>python-argparse</filename>:
2075 The <filename>argparse</filename> module is already
2076 provided in the default Python distribution in a
2077 package named <filename>python-argparse</filename>.
2078 Consequently, the separate
2079 <filename>python-argparse</filename> recipe is no
2080 longer needed.
2081 </para></listitem>
2082 <listitem><para><filename>telepathy-python, libtelepathy, telepathy-glib, telepathy-idle, telepathy-mission-control</filename>:
2083 All these recipes have moved to
2084 <filename>meta-oe</filename> and are consequently no
2085 longer needed by any recipes in OpenEmbedded-Core.
2086 </para></listitem>
2087 <listitem><para><filename>linux-yocto_3.10</filename> and <filename>linux-yocto_3.17</filename>:
2088 Support for the linux-yocto 3.10 and 3.17 kernels has been
2089 dropped.
2090 Support for the 3.14 kernel remains, while support for
2091 3.19 kernel has been added.
2092 </para></listitem>
2093 <listitem><para><filename>poky-feed-config-opkg</filename>:
2094 This recipe has become obsolete and is no longer needed.
2095 Use <filename>distro-feed-config</filename> from
2096 <filename>meta-oe</filename> instead.
2097 </para></listitem>
2098 <listitem><para><filename>libav 0.8.x</filename>:
2099 <filename>libav 9.x</filename> is now used.
2100 </para></listitem>
2101 <listitem><para><filename>sed-native</filename>:
2102 No longer needed.
2103 A working version of <filename>sed</filename> is expected
2104 to be provided by the host distribution.
2105 </para></listitem>
2106 </itemizedlist>
2107 </para>
2108 </section>
2109
2110 <section id='migration-1.8-bluez'>
2111 <title>BlueZ 4.x / 5.x Selection</title>
2112
2113 <para>
2114 Proper built-in support for selecting BlueZ 5.x in preference
2115 to the default of 4.x now exists.
2116 To use BlueZ 5.x, simply add "bluez5" to your
2117 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
2118 value.
2119 If you had previously added append files
2120 (<filename>*.bbappend</filename>) to make this selection, you can
2121 now remove them.
2122 </para>
2123
2124 <para>
2125 Additionally, a
2126 <link linkend='ref-classes-bluetooth'><filename>bluetooth</filename></link>
2127 class has been added to make selection of the appropriate bluetooth
2128 support within a recipe a little easier.
2129 If you wish to make use of this class in a recipe, add something
2130 such as the following:
2131 <literallayout class='monospaced'>
2132 inherit bluetooth
2133 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}
2134 PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4"
2135 PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5"
2136 </literallayout>
2137 </para>
2138 </section>
2139
2140 <section id='migration-1.8-kernel-build-changes'>
2141 <title>Kernel Build Changes</title>
2142
2143 <para>
2144 The kernel build process was changed to place the source
2145 in a common shared work area and to place build artifacts
2146 separately in the source code tree.
2147 In theory, migration paths have been provided for most common
2148 usages in kernel recipes but this might not work in all cases.
2149 In particular, users need to ensure that
2150 <filename>${S}</filename> (source files) and
2151 <filename>${B}</filename> (build artifacts) are used
2152 correctly in functions such as
2153 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
2154 and
2155 <link linkend='ref-tasks-install'><filename>do_install</filename></link>.
2156 For kernel recipes that do not inherit from
2157 <filename>kernel-yocto</filename> or include
2158 <filename>linux-yocto.inc</filename>, you might wish to
2159 refer to the <filename>linux.inc</filename> file in the
2160 <filename>meta-oe</filename> layer for the kinds of changes you
2161 need to make.
2162 For reference, here is the
2163 <ulink url='http://cgit.openembedded.org/meta-openembedded/commit/meta-oe/recipes-kernel/linux/linux.inc?id=fc7132ede27ac67669448d3d2845ce7d46c6a1ee'>commit</ulink>
2164 where the <filename>linux.inc</filename> file in
2165 <filename>meta-oe</filename> was updated.
2166 </para>
2167
2168 <para>
2169 Recipes that rely on the kernel source code and do not inherit
2170 the module classes might need to add explicit dependencies on
2171 the <filename>do_shared_workdir</filename> kernel task, for example:
2172 <literallayout class='monospaced'>
2173 do_configure[depends] += "virtual/kernel:do_shared_workdir"
2174 </literallayout>
2175 </para>
2176 </section>
2177
2178 <section id='migration-1.8-ssl'>
2179 <title>SSL 3.0 is Now Disabled in OpenSSL</title>
2180
2181 <para>
2182 SSL 3.0 is now disabled when building OpenSSL.
2183 Disabling SSL 3.0 avoids any lingering instances of the POODLE
2184 vulnerability.
2185 If you feel you must re-enable SSL 3.0, then you can add an
2186 append file (<filename>*.bbappend</filename>) for the
2187 <filename>openssl</filename> recipe to remove "-no-ssl3"
2188 from
2189 <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>.
2190 </para>
2191 </section>
2192
2193 <section id='migration-1.8-default-sysroot-poisoning'>
2194 <title>Default Sysroot Poisoning</title>
2195
2196 <para>
2197 <filename>gcc's</filename> default sysroot and include directories
2198 are now "poisoned".
2199 In other words, the sysroot and include directories are being
2200 redirected to a non-existent location in order to catch when
2201 host directories are being used due to the correct options not
2202 being passed.
2203 This poisoning applies both to the cross-compiler used within the
2204 build and to the cross-compiler produced in the SDK.
2205 </para>
2206
2207 <para>
2208 If this change causes something in the build to fail, it almost
2209 certainly means the various compiler flags and commands are not
2210 being passed correctly to the underlying piece of software.
2211 In such cases, you need to take corrective steps.
2212 </para>
2213 </section>
2214
2215 <section id='migration-1.8-rebuild-improvements'>
2216 <title>Rebuild Improvements</title>
2217
2218 <para>
2219 Changes have been made to the
2220 <link linkend='ref-classes-base'><filename>base</filename></link>,
2221 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>,
2222 and
2223 <link linkend='ref-classes-cmake'><filename>cmake</filename></link>
2224 classes to clean out generated files when the
2225 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
2226 task needs to be re-executed.
2227 </para>
2228
2229 <para>
2230 One of the improvements is to attempt to run "make clean" during
2231 the <filename>do_configure</filename> task if a
2232 <filename>Makefile</filename> exists.
2233 Some software packages do not provide a working clean target
2234 within their make files.
2235 If you have such recipes, you need to set
2236 <link linkend='var-CLEANBROKEN'><filename>CLEANBROKEN</filename></link>
2237 to "1" within the recipe, for example:
2238 <literallayout class='monospaced'>
2239 CLEANBROKEN = "1"
2240 </literallayout>
2241 </para>
2242 </section>
2243
2244 <section id='migration-1.8-qa-check-and-validation-changes'>
2245 <title>QA Check and Validation Changes</title>
2246
2247 <para>
2248 The following QA Check and Validation Changes have occurred:
2249 <itemizedlist>
2250 <listitem><para>
2251 Usage of <filename>PRINC</filename>
2252 previously triggered a warning.
2253 It now triggers an error.
2254 You should remove any remaining usage of
2255 <filename>PRINC</filename> in any recipe or append file.
2256 </para></listitem>
2257 <listitem><para>
2258 An additional QA check has been added to detect usage of
2259 <filename>${D}</filename> in
2260 <link linkend='var-FILES'><filename>FILES</filename></link>
2261 values where
2262 <link linkend='var-D'><filename>D</filename></link> values
2263 should not be used at all.
2264 The same check ensures that <filename>$D</filename> is used
2265 in
2266 <filename>pkg_preinst/pkg_postinst/pkg_prerm/pkg_postrm</filename>
2267 functions instead of <filename>${D}</filename>.
2268 </para></listitem>
2269 <listitem><para>
2270 <link linkend='var-S'><filename>S</filename></link> now
2271 needs to be set to a valid value within a recipe.
2272 If <filename>S</filename> is not set in the recipe, the
2273 directory is not automatically created.
2274 If <filename>S</filename> does not point to a directory
2275 that exists at the time the
2276 <link linkend='ref-tasks-unpack'><filename>do_unpack</filename></link>
2277 task finishes, a warning will be shown.
2278 </para></listitem>
2279 <listitem><para>
2280 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
2281 is now validated for correct formatting of multiple
2282 licenses.
2283 If the format is invalid (e.g. multiple licenses are
2284 specified with no operators to specify how the multiple
2285 licenses interact), then a warning will be shown.
2286 </para></listitem>
2287 </itemizedlist>
2288 </para>
2289 </section>
2290
2291 <section id='migration-1.8-miscellaneous-changes'>
2292 <title>Miscellaneous Changes</title>
2293
2294 <para>
2295 The following miscellaneous changes have occurred:
2296 <itemizedlist>
2297 <listitem><para>
2298 The <filename>send-error-report</filename> script now
2299 expects a "-s" option to be specified before the server
2300 address.
2301 This assumes a server address is being specified.
2302 </para></listitem>
2303 <listitem><para>
2304 The <filename>oe-pkgdata-util</filename> script now
2305 expects a "-p" option to be specified before the
2306 <filename>pkgdata</filename> directory, which is now
2307 optional.
2308 If the <filename>pkgdata</filename> directory is not
2309 specified, the script will run BitBake to query
2310 <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
2311 from the build environment.
2312 </para></listitem>
2313 </itemizedlist>
2314 </para>
2315 </section>
2316</section>
2317
Patrick Williamsf1e5d692016-03-30 15:21:19 -05002318<section id='moving-to-the-yocto-project-2.0-release'>
2319 <title>Moving to the Yocto Project 2.0 Release</title>
2320
2321 <para>
2322 This section provides migration information for moving to the
2323 Yocto Project 2.0 Release from the prior release.
2324 </para>
2325
2326 <section id='migration-2.0-gcc-5'>
2327 <title>GCC 5</title>
2328
2329 <para>
2330 The default compiler is now GCC 5.2.
2331 This change has required fixes for compilation errors in a number
2332 of other recipes.
2333 </para>
2334
2335 <para>
2336 One important example is a fix for when the Linux kernel freezes at
2337 boot time on ARM when built with GCC 5.
2338 If you are using your own kernel recipe or source tree and
2339 building for ARM, you will likely need to apply this
2340 <ulink url='https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=a077224fd35b2f7fbc93f14cf67074fc792fbac2'>patch</ulink>.
2341 The standard <filename>linux-yocto</filename> kernel source tree
2342 already has a workaround for the same issue.
2343 </para>
2344
2345 <para>
2346 For further details, see
2347 <ulink url='https://gcc.gnu.org/gcc-5/changes.html'></ulink> and
2348 the porting guide at
2349 <ulink url='https://gcc.gnu.org/gcc-5/porting_to.html'></ulink>.
2350 </para>
2351
2352 <para>
2353 Alternatively, you can switch back to GCC 4.9 or 4.8 by
2354 setting <filename>GCCVERSION</filename> in your configuration,
2355 as follows:
2356 <literallayout class='monospaced'>
2357 GCCVERSION = "4.9%"
2358 </literallayout>
2359 </para>
2360 </section>
2361
2362 <section id='migration-2.0-Gstreamer-0.10-removed'>
2363 <title>Gstreamer 0.10 Removed</title>
2364
2365 <para>
2366 Gstreamer 0.10 has been removed in favor of Gstreamer 1.x.
2367 As part of the change, recipes for Gstreamer 0.10 and related
2368 software are now located
2369 in <filename>meta-multimedia</filename>.
2370 This change results in Qt4 having Phonon and Gstreamer
2371 support in QtWebkit disabled by default.
2372 </para>
2373 </section>
2374
2375 <section id='migration-2.0-removed-recipes'>
2376 <title>Removed Recipes</title>
2377
2378 <para>
2379 The following recipes have been moved or removed:
2380 <itemizedlist>
2381 <listitem><para>
2382 <filename>bluez4</filename>: The recipe is obsolete and
2383 has been moved due to <filename>bluez5</filename>
2384 becoming fully integrated.
2385 The <filename>bluez4</filename> recipe now resides in
2386 <filename>meta-oe</filename>.
2387 </para></listitem>
2388 <listitem><para>
2389 <filename>gamin</filename>: The recipe is obsolete and
2390 has been removed.
2391 </para></listitem>
2392 <listitem><para>
2393 <filename>gnome-icon-theme</filename>: The recipe's
2394 functionally has been replaced by
2395 <filename>adwaita-icon-theme</filename>.
2396 </para></listitem>
2397 <listitem><para>
2398 Gstreamer 0.10 Recipes: Recipes for Gstreamer 0.10 have
2399 been removed in favor of the recipes for Gstreamer 1.x.
2400 </para></listitem>
2401 <listitem><para>
2402 <filename>insserv</filename>: The recipe is obsolete and
2403 has been removed.
2404 </para></listitem>
2405 <listitem><para>
2406 <filename>libunique</filename>: The recipe is no longer
2407 used and has been moved to <filename>meta-oe</filename>.
2408 </para></listitem>
2409 <listitem><para>
2410 <filename>midori</filename>: The recipe's functionally
2411 has been replaced by <filename>epiphany</filename>.
2412 </para></listitem>
2413 <listitem><para>
2414 <filename>python-gst</filename>: The recipe is obsolete
2415 and has been removed since it only contains bindings for
2416 Gstreamer 0.10.
2417 </para></listitem>
2418 <listitem><para>
2419 <filename>qt-mobility</filename>: The recipe is obsolete and
2420 has been removed since it requires
2421 <filename>Gstreamer 0.10</filename>, which has been
2422 replaced.
2423 </para></listitem>
2424 <listitem><para>
2425 <filename>subversion</filename>: All 1.6.x versions of this
2426 recipe have been removed.
2427 </para></listitem>
2428 <listitem><para>
2429 <filename>webkit-gtk</filename>: The older 1.8.3 version
2430 of this recipe has been removed in favor of
2431 <filename>webkitgtk</filename>.
2432 </para></listitem>
2433 </itemizedlist>
2434 </para>
2435 </section>
2436
2437 <section id='migration-2.0-bitbake-datastore-improvements'>
2438 <title>BitBake datastore improvements</title>
2439
2440 <para>
2441 The method by which BitBake's datastore handles overrides has
2442 changed.
2443 Overrides are now applied dynamically and
2444 <filename>bb.data.update_data()</filename> is now a no-op.
2445 Thus, <filename>bb.data.update_data()</filename> is no longer
2446 required in order to apply the correct overrides.
2447 In practice, this change is unlikely to require any changes to
2448 Metadata.
2449 However, these minor changes in behavior exist:
2450 <itemizedlist>
2451 <listitem><para>
2452 All potential overrides are now visible in the variable
2453 history as seen when you run the following:
2454 <literallayout class='monospaced'>
2455 $ bitbake -e
2456 </literallayout>
2457 </para></listitem>
2458 <listitem><para>
2459 <filename>d.delVar('VARNAME')</filename> and
2460 <filename>d.setVar('VARNAME', None)</filename> result
2461 in the variable and all of its overrides being cleared out.
2462 Before the change, only the non-overridden values
2463 were cleared.
2464 </para></listitem>
2465 </itemizedlist>
2466 </para>
2467 </section>
2468
2469 <section id='migration-2.0-shell-message-function-changes'>
2470 <title>Shell Message Function Changes</title>
2471
2472 <para>
2473 The shell versions of the BitBake message functions (i.e.
2474 <filename>bbdebug</filename>, <filename>bbnote</filename>,
2475 <filename>bbwarn</filename>, <filename>bbplain</filename>,
2476 <filename>bberror</filename>, and <filename>bbfatal</filename>)
2477 are now connected through to their BitBake equivalents
2478 <filename>bb.debug()</filename>, <filename>bb.note()</filename>,
2479 <filename>bb.warn()</filename>, <filename>bb.plain()</filename>,
2480 <filename>bb.error()</filename>, and
2481 <filename>bb.fatal()</filename>, respectively.
2482 Thus, those message functions that you would expect to be printed
2483 by the BitBake UI are now actually printed.
2484 In practice, this change means two things:
2485 <itemizedlist>
2486 <listitem><para>
2487 If you now see messages on the console that you did not
2488 previously see as a result of this change, you might
2489 need to clean up the calls to
2490 <filename>bbwarn</filename>, <filename>bberror</filename>,
2491 and so forth.
2492 Or, you might want to simply remove the calls.
2493 </para></listitem>
2494 <listitem><para>
2495 The <filename>bbfatal</filename> message function now
2496 suppresses the full error log in the UI, which means any
2497 calls to <filename>bbfatal</filename> where you still
2498 wish to see the full error log should be replaced by
2499 <filename>die</filename> or
2500 <filename>bbfatal_log</filename>.
2501 </para></listitem>
2502 </itemizedlist>
2503 </para>
2504 </section>
2505
2506 <section id='migration-2.0-extra-development-debug-package-cleanup'>
2507 <title>Extra Development/Debug Package Cleanup</title>
2508
2509 <para>
2510 The following recipes have had extra
2511 <filename>dev/dbg</filename> packages removed:
2512 <itemizedlist>
2513 <listitem><para>
2514 <filename>acl</filename>
2515 </para></listitem>
2516 <listitem><para>
2517 <filename>apmd</filename>
2518 </para></listitem>
2519 <listitem><para>
2520 <filename>aspell</filename>
2521 </para></listitem>
2522 <listitem><para>
2523 <filename>attr</filename>
2524 </para></listitem>
2525 <listitem><para>
2526 <filename>augeas</filename>
2527 </para></listitem>
2528 <listitem><para>
2529 <filename>bzip2</filename>
2530 </para></listitem>
2531 <listitem><para>
2532 <filename>cogl</filename>
2533 </para></listitem>
2534 <listitem><para>
2535 <filename>curl</filename>
2536 </para></listitem>
2537 <listitem><para>
2538 <filename>elfutils</filename>
2539 </para></listitem>
2540 <listitem><para>
2541 <filename>gcc-target</filename>
2542 </para></listitem>
2543 <listitem><para>
2544 <filename>libgcc</filename>
2545 </para></listitem>
2546 <listitem><para>
2547 <filename>libtool</filename>
2548 </para></listitem>
2549 <listitem><para>
2550 <filename>libxmu</filename>
2551 </para></listitem>
2552 <listitem><para>
2553 <filename>opkg</filename>
2554 </para></listitem>
2555 <listitem><para>
2556 <filename>pciutils</filename>
2557 </para></listitem>
2558 <listitem><para>
2559 <filename>rpm</filename>
2560 </para></listitem>
2561 <listitem><para>
2562 <filename>sysfsutils</filename>
2563 </para></listitem>
2564 <listitem><para>
2565 <filename>tiff</filename>
2566 </para></listitem>
2567 <listitem><para>
2568 <filename>xz</filename>
2569 </para></listitem>
2570 </itemizedlist>
2571 All of the above recipes now conform to the standard packaging
2572 scheme where a single <filename>-dev</filename>,
2573 <filename>-dbg</filename>, and <filename>-staticdev</filename>
2574 package exists per recipe.
2575 </para>
2576 </section>
2577
2578 <section id='migration-2.0-recipe-maintenance-tracking-data-moved-to-oe-core'>
2579 <title>Recipe Maintenance Tracking Data Moved to OE-Core</title>
2580
2581 <para>
2582 Maintenance tracking data for recipes that was previously part
2583 of <filename>meta-yocto</filename> has been moved to OE-Core.
2584 The change includes <filename>package_regex.inc</filename> and
2585 <filename>distro_alias.inc</filename>, which are typically enabled
2586 when using the
2587 <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
2588 class.
2589 Additionally, the contents of
2590 <filename>upstream_tracking.inc</filename> has now been split out
2591 to the relevant recipes.
2592 </para>
2593 </section>
2594
2595 <section id='migration-2.0-automatic-stale-sysroot-file-cleanup'>
2596 <title>Automatic Stale Sysroot File Cleanup</title>
2597
2598 <para>
2599 Stale files from recipes that no longer exist in the current
2600 configuration are now automatically removed from
2601 sysroot as well as removed from
2602 any other place managed by shared state.
2603 This automatic cleanup means that the build system now properly
2604 handles situations such as renaming the build system side of
2605 recipes, removal of layers from
2606 <filename>bblayers.conf</filename>, and
2607 <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
2608 changes.
2609 </para>
2610
2611 <para>
2612 Additionally, work directories for old versions of recipes are
2613 now pruned.
2614 If you wish to disable pruning old work directories, you can set
2615 the following variable in your configuration:
2616 <literallayout class='monospaced'>
2617 SSTATE_PRUNE_OBSOLETEWORKDIR = "0"
2618 </literallayout>
2619 </para>
2620 </section>
2621
2622 <section id='migration-2.0-linux-yocto-kernel-metadata-repository-now-split-from-source'>
2623 <title><filename>linux-yocto</filename> Kernel Metadata Repository Now Split from Source</title>
2624
2625 <para>
2626 The <filename>linux-yocto</filename> tree has up to now been a
2627 combined set of kernel changes and configuration (meta) data
2628 carried in a single tree.
2629 While this format is effective at keeping kernel configuration and
2630 source modifications synchronized, it is not always obvious to
2631 developers how to manipulate the Metadata as compared to the
2632 source.
2633 </para>
2634
2635 <para>
2636 Metadata processing has now been removed from the
2637 <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
2638 class and the external Metadata repository
2639 <filename>yocto-kernel-cache</filename>, which has always been used
2640 to seed the <filename>linux-yocto</filename> "meta" branch.
2641 This separate <filename>linux-yocto</filename> cache repository
2642 is now the primary location for this data.
2643 Due to this change, <filename>linux-yocto</filename> is no longer
2644 able to process combined trees.
2645 Thus, if you need to have your own combined kernel repository,
2646 you must do the split there as well and update your recipes
2647 accordingly.
2648 See the <filename>meta/recipes-kernel/linux/linux-yocto_4.1.bb</filename>
2649 recipe for an example.
2650 </para>
2651 </section>
2652
2653 <section id='migration-2.0-additional-qa-checks'>
2654 <title>Additional QA checks</title>
2655
2656 <para>
2657 The following QA checks have been added:
2658 <itemizedlist>
2659 <listitem><para>
2660 Added a "host-user-contaminated" check for ownership
2661 issues for packaged files outside of
2662 <filename>/home</filename>.
2663 The check looks for files that are incorrectly owned by the
2664 user that ran BitBake instead of owned by a valid user in
2665 the target system.
2666 </para></listitem>
2667 <listitem><para>
2668 Added an "invalid-chars" check for invalid (non-UTF8)
2669 characters in recipe metadata variable values
2670 (i.e.
2671 <link linkend='var-DESCRIPTION'><filename>DESCRIPTION</filename></link>,
2672 <link linkend='var-SUMMARY'><filename>SUMMARY</filename></link>,
2673 <link linkend='var-LICENSE'><filename>LICENSE</filename></link>,
2674 and
2675 <link linkend='var-SECTION'><filename>SECTION</filename></link>).
2676 Some package managers do not support these characters.
2677 </para></listitem>
2678 <listitem><para>
2679 Added an "invalid-packageconfig" check for any options
2680 specified in
2681 <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
2682 that do not match any <filename>PACKAGECONFIG</filename>
2683 option defined for the recipe.
2684 </para></listitem>
2685 </itemizedlist>
2686 </para>
2687 </section>
2688
2689 <section id='migration-2.0-miscellaneous'>
2690 <title>Miscellaneous Changes</title>
2691
2692 <para>
2693 These additional changes exist:
2694 <itemizedlist>
2695 <listitem><para>
2696 <filename>gtk-update-icon-cache</filename> has been
2697 renamed to <filename>gtk-icon-utils</filename>.
2698 </para></listitem>
2699 <listitem><para>
2700 The <filename>tools-profile</filename>
2701 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
2702 item as well as its corresponding packagegroup and
2703 <filename>packagegroup-core-tools-profile</filename> no
2704 longer bring in <filename>oprofile</filename>.
2705 Bringing in <filename>oprofile</filename> was originally
2706 added to aid compilation on resource-constrained
2707 targets.
2708 However, this aid has not been widely used and is not
2709 likely to be used going forward due to the more powerful
2710 target platforms and the existence of better
2711 cross-compilation tools.
2712 </para></listitem>
2713 <listitem><para>
2714 The
2715 <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
2716 variable's default value now specifies
2717 <filename>ext4</filename> instead of
2718 <filename>ext3</filename>.
2719 </para></listitem>
2720 <listitem><para>
2721 All support for the <filename>PRINC</filename>
2722 variable has been removed.
2723 </para></listitem>
2724 <listitem><para>
2725 The <filename>packagegroup-core-full-cmdline</filename>
2726 packagegroup no longer brings in
2727 <filename>lighttpd</filename> due to the fact that
2728 bringing in <filename>lighttpd</filename> is not really in
2729 line with the packagegroup's purpose, which is to add full
2730 versions of command-line tools that by default are
2731 provided by <filename>busybox</filename>.
2732 </para></listitem>
2733 </itemizedlist>
2734 </para>
2735 </section>
2736</section>
2737
2738
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002739</chapter>
2740<!--
2741vim: expandtab tw=80 ts=4
2742-->