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