blob: ce55199df3d8b4efd1d5c2ad4b5924267e9de53e [file] [log] [blame]
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001Moving to the Yocto Project 1.5 Release
2=======================================
3
4This section provides migration information for moving to the Yocto
5Project 1.5 Release from the prior release.
6
7.. _migration-1.5-host-dependency-changes:
8
9Host Dependency Changes
10-----------------------
11
12The OpenEmbedded build system now has some additional requirements on
13the host system:
14
15- Python 2.7.3+
16
17- Tar 1.24+
18
19- Git 1.7.8+
20
21- Patched version of Make if you are using 3.82. Most distributions
22 that provide Make 3.82 use the patched version.
23
24If the Linux distribution you are using on your build host does not
25provide packages for these, you can install and use the Buildtools
26tarball, which provides an SDK-like environment containing them.
27
28For more information on this requirement, see the "`Required Git, tar,
29Python and gcc Versions <#required-git-tar-python-and-gcc-versions>`__"
30section.
31
32.. _migration-1.5-atom-pc-bsp:
33
34``atom-pc`` Board Support Package (BSP)
35---------------------------------------
36
37The ``atom-pc`` hardware reference BSP has been replaced by a
38``genericx86`` BSP. This BSP is not necessarily guaranteed to work on
39all x86 hardware, but it will run on a wider range of systems than the
40``atom-pc`` did.
41
42.. note::
43
44 Additionally, a
45 genericx86-64
46 BSP has been added for 64-bit Atom systems.
47
48.. _migration-1.5-bitbake:
49
50BitBake
51-------
52
53The following changes have been made that relate to BitBake:
54
55- BitBake now supports a ``_remove`` operator. The addition of this
56 operator means you will have to rename any items in recipe space
57 (functions, variables) whose names currently contain ``_remove_`` or
58 end with ``_remove`` to avoid unexpected behavior.
59
60- BitBake's global method pool has been removed. This method is not
61 particularly useful and led to clashes between recipes containing
62 functions that had the same name.
63
64- The "none" server backend has been removed. The "process" server
65 backend has been serving well as the default for a long time now.
66
67- The ``bitbake-runtask`` script has been removed.
68
69- ``${``\ :term:`P`\ ``}`` and
70 ``${``\ :term:`PF`\ ``}`` are no longer added to
71 :term:`PROVIDES` by default in ``bitbake.conf``.
72 These version-specific ``PROVIDES`` items were seldom used.
73 Attempting to use them could result in two versions being built
74 simultaneously rather than just one version due to the way BitBake
75 resolves dependencies.
76
77.. _migration-1.5-qa-warnings:
78
79QA Warnings
80-----------
81
82The following changes have been made to the package QA checks:
83
84- If you have customized :term:`ERROR_QA` or
85 :term:`WARN_QA` values in your configuration, check
86 that they contain all of the issues that you wish to be reported.
87 Previous Yocto Project versions contained a bug that meant that any
88 item not mentioned in ``ERROR_QA`` or ``WARN_QA`` would be treated as
89 a warning. Consequently, several important items were not already in
90 the default value of ``WARN_QA``. All of the possible QA checks are
91 now documented in the ":ref:`insane.bbclass <ref-classes-insane>`"
92 section.
93
94- An additional QA check has been added to check if
95 ``/usr/share/info/dir`` is being installed. Your recipe should delete
96 this file within :ref:`ref-tasks-install` if "make
97 install" is installing it.
98
99- If you are using the buildhistory class, the check for the package
100 version going backwards is now controlled using a standard QA check.
101 Thus, if you have customized your ``ERROR_QA`` or ``WARN_QA`` values
102 and still wish to have this check performed, you should add
103 "version-going-backwards" to your value for one or the other
104 variables depending on how you wish it to be handled. See the
105 documented QA checks in the
106 ":ref:`insane.bbclass <ref-classes-insane>`" section.
107
108.. _migration-1.5-directory-layout-changes:
109
110Directory Layout Changes
111------------------------
112
113The following directory changes exist:
114
115- Output SDK installer files are now named to include the image name
116 and tuning architecture through the :term:`SDK_NAME`
117 variable.
118
119- Images and related files are now installed into a directory that is
120 specific to the machine, instead of a parent directory containing
121 output files for multiple machines. The
122 :term:`DEPLOY_DIR_IMAGE` variable continues
123 to point to the directory containing images for the current
124 :term:`MACHINE` and should be used anywhere there is a
125 need to refer to this directory. The ``runqemu`` script now uses this
126 variable to find images and kernel binaries and will use BitBake to
127 determine the directory. Alternatively, you can set the
128 ``DEPLOY_DIR_IMAGE`` variable in the external environment.
129
130- When buildhistory is enabled, its output is now written under the
131 :term:`Build Directory` rather than
132 :term:`TMPDIR`. Doing so makes it easier to delete
133 ``TMPDIR`` and preserve the build history. Additionally, data for
134 produced SDKs is now split by :term:`IMAGE_NAME`.
135
136- The ``pkgdata`` directory produced as part of the packaging process
137 has been collapsed into a single machine-specific directory. This
138 directory is located under ``sysroots`` and uses a machine-specific
139 name (i.e. ``tmp/sysroots/machine/pkgdata``).
140
141.. _migration-1.5-shortened-git-srcrev-values:
142
143Shortened Git ``SRCREV`` Values
144-------------------------------
145
146BitBake will now shorten revisions from Git repositories from the normal
14740 characters down to 10 characters within :term:`SRCPV`
148for improved usability in path and file names. This change should be
149safe within contexts where these revisions are used because the chances
150of spatially close collisions is very low. Distant collisions are not a
151major issue in the way the values are used.
152
153.. _migration-1.5-image-features:
154
155``IMAGE_FEATURES``
156------------------
157
158The following changes have been made that relate to
159:term:`IMAGE_FEATURES`:
160
161- The value of ``IMAGE_FEATURES`` is now validated to ensure invalid
162 feature items are not added. Some users mistakenly add package names
163 to this variable instead of using
164 :term:`IMAGE_INSTALL` in order to have the
165 package added to the image, which does not work. This change is
166 intended to catch those kinds of situations. Valid ``IMAGE_FEATURES``
167 are drawn from ``PACKAGE_GROUP`` definitions,
168 :term:`COMPLEMENTARY_GLOB` and a new
169 "validitems" varflag on ``IMAGE_FEATURES``. The "validitems" varflag
170 change allows additional features to be added if they are not
171 provided using the previous two mechanisms.
172
173- The previously deprecated "apps-console-core" ``IMAGE_FEATURES`` item
174 is no longer supported. Add "splash" to ``IMAGE_FEATURES`` if you
175 wish to have the splash screen enabled, since this is all that
176 apps-console-core was doing.
177
178.. _migration-1.5-run:
179
180``/run``
181--------
182
183The ``/run`` directory from the Filesystem Hierarchy Standard 3.0 has
184been introduced. You can find some of the implications for this change
185`here <http://cgit.openembedded.org/openembedded-core/commit/?id=0e326280a15b0f2c4ef2ef4ec441f63f55b75873>`__.
186The change also means that recipes that install files to ``/var/run``
187must be changed. You can find a guide on how to make these changes
188`here <http://permalink.gmane.org/gmane.comp.handhelds.openembedded/58530>`__.
189
190.. _migration-1.5-removal-of-package-manager-database-within-image-recipes:
191
192Removal of Package Manager Database Within Image Recipes
193--------------------------------------------------------
194
195The image ``core-image-minimal`` no longer adds
196``remove_packaging_data_files`` to
197:term:`ROOTFS_POSTPROCESS_COMMAND`.
198This addition is now handled automatically when "package-management" is
199not in :term:`IMAGE_FEATURES`. If you have custom
200image recipes that make this addition, you should remove the lines, as
201they are not needed and might interfere with correct operation of
202postinstall scripts.
203
204.. _migration-1.5-images-now-rebuild-only-on-changes-instead-of-every-time:
205
206Images Now Rebuild Only on Changes Instead of Every Time
207--------------------------------------------------------
208
209The :ref:`ref-tasks-rootfs` and other related image
210construction tasks are no longer marked as "nostamp". Consequently, they
211will only be re-executed when their inputs have changed. Previous
212versions of the OpenEmbedded build system always rebuilt the image when
213requested rather when necessary.
214
215.. _migration-1.5-task-recipes:
216
217Task Recipes
218------------
219
220The previously deprecated ``task.bbclass`` has now been dropped. For
221recipes that previously inherited from this class, you should rename
222them from ``task-*`` to ``packagegroup-*`` and inherit packagegroup
223instead.
224
225For more information, see the
226":ref:`packagegroup.bbclass <ref-classes-packagegroup>`" section.
227
228.. _migration-1.5-busybox:
229
230BusyBox
231-------
232
233By default, we now split BusyBox into two binaries: one that is suid
234root for those components that need it, and another for the rest of the
235components. Splitting BusyBox allows for optimization that eliminates
236the ``tinylogin`` recipe as recommended by upstream. You can disable
237this split by setting
238:term:`BUSYBOX_SPLIT_SUID` to "0".
239
240.. _migration-1.5-automated-image-testing:
241
242Automated Image Testing
243-----------------------
244
245A new automated image testing framework has been added through the
246:ref:`testimage.bbclass <ref-classes-testimage*>` class. This
247framework replaces the older ``imagetest-qemu`` framework.
248
249You can learn more about performing automated image tests in the
250":ref:`dev-manual/dev-manual-common-tasks:performing automated runtime testing`"
251section in the Yocto Project Development Tasks Manual.
252
253.. _migration-1.5-build-history:
254
255Build History
256-------------
257
258Following are changes to Build History:
259
260- Installed package sizes: ``installed-package-sizes.txt`` for an image
261 now records the size of the files installed by each package instead
262 of the size of each compressed package archive file.
263
264- The dependency graphs (``depends*.dot``) now use the actual package
265 names instead of replacing dashes, dots and plus signs with
266 underscores.
267
268- The ``buildhistory-diff`` and ``buildhistory-collect-srcrevs``
269 utilities have improved command-line handling. Use the ``--help``
270 option for each utility for more information on the new syntax.
271
272For more information on Build History, see the
273":ref:`dev-manual/dev-manual-common-tasks:maintaining build output quality`"
274section in the Yocto Project Development Tasks Manual.
275
276.. _migration-1.5-udev:
277
278``udev``
279--------
280
281Following are changes to ``udev``:
282
283- ``udev`` no longer brings in ``udev-extraconf`` automatically through
284 :term:`RRECOMMENDS`, since this was originally
285 intended to be optional. If you need the extra rules, then add
286 ``udev-extraconf`` to your image.
287
288- ``udev`` no longer brings in ``pciutils-ids`` or ``usbutils-ids``
289 through ``RRECOMMENDS``. These are not needed by ``udev`` itself and
290 removing them saves around 350KB.
291
292.. _migration-1.5-removed-renamed-recipes:
293
294Removed and Renamed Recipes
295---------------------------
296
297- The ``linux-yocto`` 3.2 kernel has been removed.
298
299- ``libtool-nativesdk`` has been renamed to ``nativesdk-libtool``.
300
301- ``tinylogin`` has been removed. It has been replaced by a suid
302 portion of Busybox. See the "`BusyBox <#migration-1.5-busybox>`__"
303 section for more information.
304
305- ``external-python-tarball`` has been renamed to
306 ``buildtools-tarball``.
307
308- ``web-webkit`` has been removed. It has been functionally replaced by
309 ``midori``.
310
311- ``imake`` has been removed. It is no longer needed by any other
312 recipe.
313
314- ``transfig-native`` has been removed. It is no longer needed by any
315 other recipe.
316
317- ``anjuta-remote-run`` has been removed. Anjuta IDE integration has
318 not been officially supported for several releases.
319
320.. _migration-1.5-other-changes:
321
322Other Changes
323-------------
324
325Following is a list of short entries describing other changes:
326
327- ``run-postinsts``: Make this generic.
328
329- ``base-files``: Remove the unnecessary ``media/``\ xxx directories.
330
331- ``alsa-state``: Provide an empty ``asound.conf`` by default.
332
333- ``classes/image``: Ensure
334 :term:`BAD_RECOMMENDATIONS` supports
335 pre-renamed package names.
336
337- ``classes/rootfs_rpm``: Implement ``BAD_RECOMMENDATIONS`` for RPM.
338
339- ``systemd``: Remove ``systemd_unitdir`` if ``systemd`` is not in
340 :term:`DISTRO_FEATURES`.
341
342- ``systemd``: Remove ``init.d`` dir if ``systemd`` unit file is
343 present and ``sysvinit`` is not a distro feature.
344
345- ``libpam``: Deny all services for the ``OTHER`` entries.
346
347- ``image.bbclass``: Move ``runtime_mapping_rename`` to avoid conflict
348 with ``multilib``. See
349 `YOCTO #4993 <https://bugzilla.yoctoproject.org/show_bug.cgi?id=4993>`_
350 in Bugzilla for more information.
351
352- ``linux-dtb``: Use kernel build system to generate the ``dtb`` files.
353
354- ``kern-tools``: Switch from guilt to new ``kgit-s2q`` tool.
355