summaryrefslogtreecommitdiffstats
path: root/documentation
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@microsoft.com>2021-10-11 16:14:59 +1300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-10-20 20:20:46 +0100
commitf0428cea44f8f2f0dd6a23b81c6a92283ff33eb8 (patch)
tree4c35fd084847f5156c6eab4bc99f787dff57f22b /documentation
parentcc8df6ce5acf9a0690372c8062e943ff3abca8ef (diff)
downloadpoky-f0428cea44f8f2f0dd6a23b81c6a92283ff33eb8.tar.gz
migration-3.4: add additional migration info
Add migration instructions gathered by combing the commits in this release. (From yocto-docs rev: b864f8570271df4e6cb47d21cb658d13ffd1d8f5) Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation')
-rw-r--r--documentation/migration-guides/migration-3.4.rst176
1 files changed, 176 insertions, 0 deletions
diff --git a/documentation/migration-guides/migration-3.4.rst b/documentation/migration-guides/migration-3.4.rst
index 3df5b69945..9ef1982026 100644
--- a/documentation/migration-guides/migration-3.4.rst
+++ b/documentation/migration-guides/migration-3.4.rst
@@ -85,3 +85,179 @@ with other syntax improvements and simplifications for usability. It also means
85BitBake no longer has to guess and maintain large lookup lists just in case 85BitBake no longer has to guess and maintain large lookup lists just in case
86e.g. ``functionname`` in ``my_functionname`` is an override, and thus should improve 86e.g. ``functionname`` in ``my_functionname`` is an override, and thus should improve
87efficiency. 87efficiency.
88
89
90New host dependencies
91---------------------
92
93The ``lz4c``, ``pzstd`` and ``zstd`` commands are now required to be
94installed on the build host to support LZ4 and Zstandard compression
95functionality. These are typically provided by ``lz4`` and ``zstd``
96packages in most Linux distributions. Alternatively they are available
97as part of ``buildtools-tarball`` if your distribution does not provide
98them. For more information see
99:ref:`ref-manual/system-requirements:required packages for the build host`.
100
101
102Removed recipes
103---------------
104
105The following recipes have been removed in this release:
106
107- ``assimp``: problematic from a licensing perspective and no longer
108 needed by anything else
109- ``clutter-1.0``: legacy component moved to meta-gnome
110- ``clutter-gst-3.0``: legacy component moved to meta-gnome
111- ``clutter-gtk-1.0``: legacy component moved to meta-gnome
112- ``cogl-1.0``: legacy component moved to meta-gnome
113- ``core-image-clutter``: removed along with clutter
114- ``linux-yocto``: removed version 5.4 recipes (5.14 and 5.10 still
115 provided)
116- ``mklibs-native``: not actively tested and upstream mklibs still
117 requires Python 2
118- ``mx-1.0``: obsolete (last release 2012) and isn't used by anything in
119 any known layer
120- ``packagegroup-core-clutter``: removed along with clutter
121
122
123Removed classes
124---------------
125
126- ``clutter``: moved to meta-gnome along with clutter itself
127- ``image-mklibs``: not actively tested and upstream mklibs still
128 requires Python 2
129- ``meta``: no longer useful. Recipes that need to skip installing
130 packages should inherit ``nopackages`` instead.
131
132
133Prelinking disabled by default
134------------------------------
135
136Recent tests have shown that prelinking works only when PIE is not
137enabled (see `here <https://rlbl.me/prelink-1>`__ and `here <https://rlbl.me/prelink-2>`__),
138and as PIE is both a desirable security feature, and the only
139configuration provided and tested by the Yocto Project, there is
140simply no sense in continuing to enable prelink.
141
142There's also a concern that no one is maintaining the code, and there
143are open bugs (including `this serious one <https://bugzilla.yoctoproject.org/show_bug.cgi?id=14429>`__).
144Given that prelink does intricate address arithmetic and rewriting
145of binaries the best option is to disable the feature. It is recommended
146that you consider disabling this feature in your own configuration if
147it is currently enabled.
148
149
150Virtual runtime provides
151------------------------
152
153Recipes shouldn't use the ``virtual/`` string in :term:`RPROVIDES` and
154:term:`RDEPENDS` - it is confusing because ``virtual/`` has no special
155meaning in :term:`RPROVIDES` and :term:`RDEPENDS` (unlike in the
156corresponding build-time :term:`PROVIDES` and :term:`DEPENDS`).
157
158
159Tune files moved to architecture-specific directories
160-----------------------------------------------------
161
162The tune files found in ``conf/machine/include`` have now been moved
163into their respective architecture name directories under that same
164location; e.g. x86 tune files have moved into an ``x86`` subdirectory,
165MIPS tune files have moved into a ``mips`` subdirectory, etc.
166The ARM tunes have an extra level (``armv8a``, ``armv8m``, etc.) and
167some have been renamed to make them uniform with the rest of the tunes.
168See `this commit <http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=1d381f21f5f13aa0c4e1a45683ed656ebeedd37d>`__
169for reference.
170
171If you have any references to tune files (e.g. in custom machine
172configuration files) they will need to be updated.
173
174
175Extensible SDK host extension
176-----------------------------
177
178For a normal SDK, some layers append to :term:`TOOLCHAIN_HOST_TASK`
179unconditionally which is fine, until the eSDK tries to override the
180variable to its own values. Instead of installing packages specified
181in this variable it uses native recipes instead - a very different
182approach. This has led to confusing errors when binaries are added
183to the SDK but not relocated.
184
185To avoid these issues, a new ``TOOLCHAIN_HOST_TASK_ESDK`` variable has
186been created. If you wish to extend what is installed in the host
187portion of the eSDK then you will now need to set this variable.
188
189
190Package/recipe splitting
191------------------------
192
193- ``perl-cross`` has been split out from the main ``perl`` recipe to
194 its own ``perlcross`` recipe for maintenance reasons. If you have
195 bbappends for the perl recipe then these may need extending.
196
197- The ``wayland`` recipe now packages its binaries in a
198 ``wayland-tools`` package rather than putting them into
199 ``wayland-dev``.
200
201- Xwayland has been split out of the xserver-xorg tree and thus is now
202 in its own ``xwayland`` recipe. If you need Xwayland in your image
203 then you may now need to add it explicitly.
204
205
206Image / SDK generation changes
207------------------------------
208
209- Recursive dependencies on the ``do_build`` task are now disabled when
210 building SDKs. These are generally not needed; in the unlikely event
211 that you do encounter problems then it will probably be as a result of
212 missing explicit dependencies that need to be added.
213
214- Errors during "complementary" package installation (e.g. for ``*-dbg``
215 and ``*-dev`` packages) during image construction are no longer
216 ignored. Historically some of these packages had installation problems,
217 that is no longer the case. In the unlikely event that you see errors
218 as a result, you will need to fix the installation/packaging issues.
219
220- When building an image, only packages that will be used in building
221 the image (i.e. the first entry in :term:`PACKAGE_CLASSES`) will be
222 produced if multiple package types are enabled (which is not a typical
223 configuration). If in your CI system you need to have the original
224 behaviour, use ``bitbake --runall build <target>``.
225
226- The ``-lic`` package is no longer automatically added to
227 :term:`RRECOMMENDS` for every other package when
228 :term:`LICENSE_CREATE_PACKAGE` is set to "1". If you wish all license
229 packages to be installed corresponding to packages in your image, then
230 you should instead add the new ``lic-pkgs`` feature to
231 :term:`IMAGE_FEATURES`.
232
233
234Miscellaneous
235-------------
236
237- Certificates are now properly checked when bitbake fetches sources
238 over HTTPS. If you receive errors as a result for your custom recipes,
239 you will need to use a mirror or address the issue with the operators
240 of the server in question.
241
242- ``avahi`` has had its GTK+ support disabled by default. If you wish to
243 re-enable it, set ``AVAHI_GTK = "gtk3"`` in a bbappend for the
244 ``avahi`` recipe or in your custom distro configuration file.
245
246- Setting the ``BUILD_REPRODUCIBLE_BINARIES`` variable to "0" no longer
247 uses a strangely old fallback date of April 2011, it instead disables
248 building reproducible binaries as you would logically expect.
249
250- Setting noexec/nostamp/fakeroot varflags to any value besides "1" will
251 now trigger a warning. These should be either set to "1" to enable, or
252 not set at all to disable.
253
254- The previously deprecated ``COMPRESS_CMD`` and
255 ``CVE_CHECK_CVE_WHITELIST`` variables have been removed. Use
256 ``CONVERSION_CMD`` and :term:`CVE_CHECK_WHITELIST` respectively
257 instead.
258
259- The obsolete ``oe_machinstall`` function previously provided in the
260 :ref:`utils <ref-classes-utils>` class has been removed. For
261 machine-specific installation it is recommended that you use the
262 built-in override support in the fetcher or overrides in general
263 instead.