diff options
41 files changed, 963 insertions, 179 deletions
diff --git a/documentation/migration-guides/migration-5.3.rst b/documentation/migration-guides/migration-5.3.rst index 985712cb22..e59bc8c638 100644 --- a/documentation/migration-guides/migration-5.3.rst +++ b/documentation/migration-guides/migration-5.3.rst | |||
| @@ -134,10 +134,20 @@ To set back the "mac" policy in systemd (version 257.8 at the time of writing | |||
| 134 | this note), you should set the ``NamePolicy`` and ``AlternativeNamesPolicy`` as | 134 | this note), you should set the ``NamePolicy`` and ``AlternativeNamesPolicy`` as |
| 135 | detailed in :manpage:`systemd.link(5)`. | 135 | detailed in :manpage:`systemd.link(5)`. |
| 136 | 136 | ||
| 137 | Removal of unlicensed Linux kernel firmware | ||
| 138 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
| 139 | |||
| 140 | By default, the ``linux-firmware`` recipe now excludes firmware that do not | ||
| 141 | provide any license information. The recipe holds an internal list of firmware | ||
| 142 | to exclude via a variable named ``REMOVE_UNLICENSED``, this variable may be | ||
| 143 | overridden if unlicensed firmware is needed. See :oe_git:`the recipe | ||
| 144 | </openembedded-core/tree/meta/recipes-kernel/linux-firmware>` for a complete | ||
| 145 | overview of the removed firmware. | ||
| 146 | |||
| 137 | Supported kernel versions | 147 | Supported kernel versions |
| 138 | ~~~~~~~~~~~~~~~~~~~~~~~~~ | 148 | ~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 139 | 149 | ||
| 140 | The :term:`OLDEST_KERNEL` setting is XXX in this release, meaning that | 150 | The :term:`OLDEST_KERNEL` setting is 5.15 in this release, meaning that |
| 141 | out the box, older kernels are not supported. See :ref:`4.3 migration notes | 151 | out the box, older kernels are not supported. See :ref:`4.3 migration notes |
| 142 | <migration-4.3-supported-kernel-versions>` for details. | 152 | <migration-4.3-supported-kernel-versions>` for details. |
| 143 | 153 | ||
| @@ -147,7 +157,9 @@ Supported distributions | |||
| 147 | Compared to the previous releases, running BitBake is supported on new | 157 | Compared to the previous releases, running BitBake is supported on new |
| 148 | GNU/Linux distributions: | 158 | GNU/Linux distributions: |
| 149 | 159 | ||
| 150 | - XXX | 160 | - Debian 13 (Trixie) |
| 161 | - Fedora 42 | ||
| 162 | - Ubuntu 25.04 | ||
| 151 | 163 | ||
| 152 | On the other hand, some earlier distributions are no longer supported: | 164 | On the other hand, some earlier distributions are no longer supported: |
| 153 | 165 | ||
| @@ -174,6 +186,10 @@ The following variables have been removed: | |||
| 174 | :term:`BitBake` invocation and replace it with information about what was | 186 | :term:`BitBake` invocation and replace it with information about what was |
| 175 | built during the build. This was partly broken and hard to maintain. | 187 | built during the build. This was partly broken and hard to maintain. |
| 176 | 188 | ||
| 189 | - ``GPE_MIRROR``: this variable used to contain the | ||
| 190 | "http://gpe.linuxtogo.org/download/source" URL, but was not used by any | ||
| 191 | recipe in OE-Core. | ||
| 192 | |||
| 177 | Removed recipes | 193 | Removed recipes |
| 178 | ~~~~~~~~~~~~~~~ | 194 | ~~~~~~~~~~~~~~~ |
| 179 | 195 | ||
| @@ -195,6 +211,11 @@ The following recipes have been removed in this release: | |||
| 195 | - ``xf86-input-vmmouse``: It has a runtime dependency on ``xf86-input-mouse``, | 211 | - ``xf86-input-vmmouse``: It has a runtime dependency on ``xf86-input-mouse``, |
| 196 | which stopped supporting Linux. | 212 | which stopped supporting Linux. |
| 197 | 213 | ||
| 214 | - ``babeltrace``: Removed in favour of ``babeltrace2``. | ||
| 215 | |||
| 216 | - ``cwautomacros``: A long-obsolete set of custom :ref:`ref-classes-autotools` | ||
| 217 | macros, not used by any other recipe. | ||
| 218 | |||
| 198 | Removed :term:`PACKAGECONFIG` entries | 219 | Removed :term:`PACKAGECONFIG` entries |
| 199 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 220 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 200 | 221 | ||
| @@ -206,6 +227,8 @@ Removed :term:`PACKAGECONFIG` entries | |||
| 206 | 227 | ||
| 207 | - ``mesa``: ``kmsro``, ``osmesa``, ``xa`` | 228 | - ``mesa``: ``kmsro``, ``osmesa``, ``xa`` |
| 208 | 229 | ||
| 230 | - ``systemd``: ``dbus`` | ||
| 231 | |||
| 209 | Removed classes | 232 | Removed classes |
| 210 | ~~~~~~~~~~~~~~~ | 233 | ~~~~~~~~~~~~~~~ |
| 211 | 234 | ||
| @@ -269,4 +292,22 @@ Miscellaneous changes | |||
| 269 | - ``xserver-xorg``: remove sub-package ``${PN}-xwayland``, as ``xwayland`` is | 292 | - ``xserver-xorg``: remove sub-package ``${PN}-xwayland``, as ``xwayland`` is |
| 270 | now its own recipe. | 293 | now its own recipe. |
| 271 | 294 | ||
| 272 | - The Wic-specific option ``--extra-space`` has been renamed to ``--extra-filesystem-space``. \ No newline at end of file | 295 | - ``gdk-pixbuf``: drop the ``GDK_PIXBUF_LOADERS`` variable, which was part of |
| 296 | the recipe's :term:`PACKAGECONFIG`. Instead the :term:`PACKAGECONFIG` can be | ||
| 297 | modified directly to achieve the same result. | ||
| 298 | |||
| 299 | - Remove the ``meta/conf/distro/include/distro_alias.inc`` include file, | ||
| 300 | which associated a recipe name to one or more Distribution package name. | ||
| 301 | This file is not used and maintained anymore. | ||
| 302 | |||
| 303 | - Remove the ``nghttp2-proxy`` package from the ``nghttp2`` recipe as the | ||
| 304 | ``nghttp2-proxy`` package became empty after an upgrade that makes it a | ||
| 305 | library recipe only (due to | ||
| 306 | :term:`EXTRA_OEMAKE` containing ``-DENABLE_APP=OFF`` by default in the | ||
| 307 | recipe). | ||
| 308 | |||
| 309 | - Remove the ``util-linux-fcntl-lock`` package (in the ``util-linux`` recipe) as | ||
| 310 | ``util-linux`` now supports the ``--fcntl`` flag for the ``flock`` command. | ||
| 311 | |||
| 312 | Recipes currently using the ``fcntl-lock`` command should replace these by | ||
| 313 | ``flock --fcntl``. | ||
diff --git a/documentation/migration-guides/release-notes-5.3.rst b/documentation/migration-guides/release-notes-5.3.rst index 66c88fcb48..5cd875e9b5 100644 --- a/documentation/migration-guides/release-notes-5.3.rst +++ b/documentation/migration-guides/release-notes-5.3.rst | |||
| @@ -11,10 +11,21 @@ Release notes for |yocto-ver| (|yocto-codename|) | |||
| 11 | New Features / Enhancements in |yocto-ver| | 11 | New Features / Enhancements in |yocto-ver| |
| 12 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 12 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 13 | 13 | ||
| 14 | - Linux kernel XXX, gcc 15, glibc XXX, LLVM XXX, and over XXX other | 14 | - Linux kernel 6.16, gcc 15, glibc 2.42, LLVM 21.1.1, and over 300 other |
| 15 | recipe upgrades. | 15 | recipe upgrades. |
| 16 | 16 | ||
| 17 | - Minimum Python version required on the host: XXX. | 17 | - Minimum Python version required on the host: 3.9. |
| 18 | |||
| 19 | - Host requirements changes: | ||
| 20 | |||
| 21 | - The minimum disk space requirement is now 140Gbytes (previously 90Gbytes). | ||
| 22 | |||
| 23 | - The minimum RAM requirement is now 32Gbytes (previously 8Gbytes). | ||
| 24 | |||
| 25 | - These changes are mainly due to recent additions of the LLVM and other | ||
| 26 | resource heavy recipes. For guidance on how to limit the resources used by | ||
| 27 | the :term:`OpenEmbedded Build System`, see the | ||
| 28 | :doc:`/dev-manual/limiting-resources` guide. | ||
| 18 | 29 | ||
| 19 | - BitBake changes: | 30 | - BitBake changes: |
| 20 | 31 | ||
| @@ -36,10 +47,18 @@ New Features / Enhancements in |yocto-ver| | |||
| 36 | - ``az``: Add sanity check to check that :term:`AZ_SAS` starts with ``?`` | 47 | - ``az``: Add sanity check to check that :term:`AZ_SAS` starts with ``?`` |
| 37 | to mark the start of the query parameters. | 48 | to mark the start of the query parameters. |
| 38 | 49 | ||
| 39 | - ``git``: Add the tag to shallow clone tarball name. | 50 | - ``git``: |
| 51 | |||
| 52 | - Add the tag to shallow clone tarball name. | ||
| 53 | - Verify if local clones contains a tag, when the ``tag=`` parameter | ||
| 54 | is used in :term:`SRC_URI`. | ||
| 55 | |||
| 56 | - ``knotty``: | ||
| 57 | |||
| 58 | - Pass failed task logs through the log infrastructure (use | ||
| 59 | ``bb.plain()`` instead of ``print()``). | ||
| 40 | 60 | ||
| 41 | - ``knotty``: pass failed task logs through the log infrastructure (use | 61 | - Improve refresh rate of the footer progress bar. |
| 42 | ``bb.plain()`` instead of ``print()``) | ||
| 43 | 62 | ||
| 44 | - Add support for automatically promoting class inherits to deferred | 63 | - Add support for automatically promoting class inherits to deferred |
| 45 | inherits by listing them in the :term:`BB_DEFER_BBCLASSES` variable. | 64 | inherits by listing them in the :term:`BB_DEFER_BBCLASSES` variable. |
| @@ -92,6 +111,17 @@ New Features / Enhancements in |yocto-ver| | |||
| 92 | :term:`BitBake` to specify what to profile. Can be "main", "idle" or | 111 | :term:`BitBake` to specify what to profile. Can be "main", "idle" or |
| 93 | "parsing". Split the reports in separate files. | 112 | "parsing". Split the reports in separate files. |
| 94 | 113 | ||
| 114 | - A "filtering" functionality was added and allows modifying the value of a | ||
| 115 | variable before its value is returned by :term:`BitBake`. The | ||
| 116 | ``setVarFilter`` API can be used for applying the filters, but it is | ||
| 117 | **not** recommended for general use. It was added for internal use in | ||
| 118 | the :term:`OpenEmbedded Build System` in the :ref:`ref-classes-native` | ||
| 119 | class. The list of filters that are allowed are derived from a select | ||
| 120 | list of functions that must be added using a ``filter_proc`` decorator. | ||
| 121 | |||
| 122 | - ``tests/parse``: Add tests for ``include``, ``require`` and | ||
| 123 | ``include_all``. | ||
| 124 | |||
| 95 | - Toolchain changes: | 125 | - Toolchain changes: |
| 96 | 126 | ||
| 97 | - The Clang/LLVM toolchain can now be used as part of the build. | 127 | - The Clang/LLVM toolchain can now be used as part of the build. |
| @@ -106,6 +136,12 @@ New Features / Enhancements in |yocto-ver| | |||
| 106 | The toolchain is also customizable on a per-recipe basis, using the | 136 | The toolchain is also customizable on a per-recipe basis, using the |
| 107 | :term:`TOOLCHAIN` and :term:`TOOLCHAIN_NATIVE` variables. | 137 | :term:`TOOLCHAIN` and :term:`TOOLCHAIN_NATIVE` variables. |
| 108 | 138 | ||
| 139 | .. warning:: | ||
| 140 | |||
| 141 | The :term:`TOOLCHAIN` should **not** be set globally. For overriding | ||
| 142 | the toolchain globally, use :term:`PREFERRED_TOOLCHAIN_TARGET`, | ||
| 143 | :term:`PREFERRED_TOOLCHAIN_NATIVE` and :term:`PREFERRED_TOOLCHAIN_SDK`. | ||
| 144 | |||
| 109 | - Multiple recipes were pinned to use the GCC/Binutils toolchain as they do | 145 | - Multiple recipes were pinned to use the GCC/Binutils toolchain as they do |
| 110 | not support being built with Clang/LLVM yet. In these recipes the | 146 | not support being built with Clang/LLVM yet. In these recipes the |
| 111 | :term:`TOOLCHAIN` variable is set to "gcc". | 147 | :term:`TOOLCHAIN` variable is set to "gcc". |
| @@ -119,14 +155,42 @@ New Features / Enhancements in |yocto-ver| | |||
| 119 | - ``bitbake.conf``: Drop ``lz4`` from :term:`HOSTTOOLS`, as it is not | 155 | - ``bitbake.conf``: Drop ``lz4`` from :term:`HOSTTOOLS`, as it is not |
| 120 | required anymore, and the ``lz4-native`` package is used instead. | 156 | required anymore, and the ``lz4-native`` package is used instead. |
| 121 | 157 | ||
| 122 | - ``conf/fragments``: add a fragment for the CDN :ref:`sstate-cache | 158 | - :term:`Configuration Fragments <Configuration Fragment>`: |
| 123 | <overview-manual/concepts:shared state cache>` mirror. | 159 | |
| 160 | - Add a fragment for the `CDN` :ref:`sstate-cache | ||
| 161 | <overview-manual/concepts:shared state cache>` mirror. | ||
| 162 | |||
| 163 | - Add a ``show-fragments`` sub-command to the | ||
| 164 | :oe_git:`bitbake-config-build </bitbake/tree/bin/bitbake-config-build>` | ||
| 165 | utility, to show the content of fragments from command-line. | ||
| 124 | 166 | ||
| 125 | - ``default-distrovars``: set an empty default for :term:`LICENSE_PATH`. | 167 | - ``default-distrovars``: set an empty default for :term:`LICENSE_PATH`. |
| 126 | 168 | ||
| 127 | - The default definition of :term:`UNPACKDIR` is no longer | 169 | - The default definition of :term:`UNPACKDIR` is no longer |
| 128 | ``sources-unpack`` but ``sources``. | 170 | ``sources-unpack`` but ``sources``. |
| 129 | 171 | ||
| 172 | - The default value for :term:`IMAGE_FSTYPES` (defined in | ||
| 173 | :oe_git:`bitbake.conf </openembedded-core/tree/meta/conf/bitbake.conf>`) | ||
| 174 | is now ``tar.zst`` (previously ``tar.gz``). | ||
| 175 | |||
| 176 | - Remove the ``meta/conf/distro/include/distro_alias.inc`` include file, | ||
| 177 | which associated a recipe name to one or more Distribution package name. | ||
| 178 | This file is not used and maintained anymore. | ||
| 179 | |||
| 180 | - A new configuration file :ref:`structure-build-conf-toolcfg.conf` is now | ||
| 181 | used by :oe_git:`bitbake-config-build </bitbake/tree/bin/bitbake-config-build>` | ||
| 182 | to manage :term:`Configuration Fragments <Configuration Fragment>`. | ||
| 183 | |||
| 184 | - ``bitbake.conf``: add :term:`TMPDIR` to the ``GIT_CEILING_DIRECTORIES`` | ||
| 185 | Git variable. This avoids Git trying to find a repository higher than | ||
| 186 | :term:`TMPDIR` in recipes that use the :ref:`structure-build-work-shared` | ||
| 187 | directory for storing their sources. This fixes reproducibility issues. | ||
| 188 | |||
| 189 | - Changes to the ``genericarm64`` machine configuration: | ||
| 190 | |||
| 191 | - Increase the :term:`Initramfs` maximum size. | ||
| 192 | - Install extra Linux firmware packages to fix Linux kernel warnings. | ||
| 193 | |||
| 130 | - New variables: | 194 | - New variables: |
| 131 | 195 | ||
| 132 | - The ``VIRTUAL-RUNTIME_dbus`` variable, to allow changing the runtime | 196 | - The ``VIRTUAL-RUNTIME_dbus`` variable, to allow changing the runtime |
| @@ -159,6 +223,11 @@ New Features / Enhancements in |yocto-ver| | |||
| 159 | deployed filenames. Users can now override :term:`UBOOT_VERSION` to | 223 | deployed filenames. Users can now override :term:`UBOOT_VERSION` to |
| 160 | changes the output filenames. | 224 | changes the output filenames. |
| 161 | 225 | ||
| 226 | - The :term:`UBOOT_MAKE_OPTS` variable specifies extra options passed to | ||
| 227 | ``make`` when building U-boot. Extra options can also be passed as the | ||
| 228 | fourth argument of the :term:`UBOOT_CONFIG` variable. See the | ||
| 229 | documentation of :ref:`ref-classes-uboot-config` class for more details. | ||
| 230 | |||
| 162 | - Kernel-related changes: | 231 | - Kernel-related changes: |
| 163 | 232 | ||
| 164 | - ``linux/generate-cve-exclusions``: use data from CVEProject instead of | 233 | - ``linux/generate-cve-exclusions``: use data from CVEProject instead of |
| @@ -186,6 +255,8 @@ New Features / Enhancements in |yocto-ver| | |||
| 186 | - ``linux-yocto``: when built for RISC-V, enable features in | 255 | - ``linux-yocto``: when built for RISC-V, enable features in |
| 187 | :term:`KERNEL_FEATURES` based on features listed in :term:`TUNE_FEATURES`. | 256 | :term:`KERNEL_FEATURES` based on features listed in :term:`TUNE_FEATURES`. |
| 188 | 257 | ||
| 258 | - ``perf``: Enable ``coresight`` if enabled in :term:`MACHINE_FEATURES`. | ||
| 259 | |||
| 189 | - New core recipes: | 260 | - New core recipes: |
| 190 | 261 | ||
| 191 | - ``python3-pdm``, ``python3-pdm-backend`` and ``python3-pdm-build-locked``, | 262 | - ``python3-pdm``, ``python3-pdm-backend`` and ``python3-pdm-build-locked``, |
| @@ -210,6 +281,13 @@ New Features / Enhancements in |yocto-ver| | |||
| 210 | to code blocks in Sphinx. It is part of ``buildtools-docs-tarball`` for later | 281 | to code blocks in Sphinx. It is part of ``buildtools-docs-tarball`` for later |
| 211 | use in the Yocto Project documentation. | 282 | use in the Yocto Project documentation. |
| 212 | 283 | ||
| 284 | - ``python3-coherent-licensed``: License management tooling for `Coherent | ||
| 285 | System` and skeleton projects. It became a new dependency of | ||
| 286 | ``python3-zipp``. | ||
| 287 | |||
| 288 | - ``gn``: a commonly used build tool to generate `ninja | ||
| 289 | <https://ninja-build.org/>`__ files. | ||
| 290 | |||
| 213 | - LLVM/Clang related recipes: | 291 | - LLVM/Clang related recipes: |
| 214 | 292 | ||
| 215 | - ``clang``: LLVM based C/C++ compiler. | 293 | - ``clang``: LLVM based C/C++ compiler. |
| @@ -225,11 +303,15 @@ New Features / Enhancements in |yocto-ver| | |||
| 225 | - ``llvm-tblgen-native``: LLVM TableGen binaries for the build host, | 303 | - ``llvm-tblgen-native``: LLVM TableGen binaries for the build host, |
| 226 | often used to build LLVM projects. | 304 | often used to build LLVM projects. |
| 227 | 305 | ||
| 306 | - ``lld``: the LLVM Linker. | ||
| 307 | |||
| 228 | - ``lldb``: LLDB debugger for LLVM projects. | 308 | - ``lldb``: LLDB debugger for LLVM projects. |
| 229 | 309 | ||
| 230 | - ``llvm-project-source``: canonical git mirror of the LLVM subversion | 310 | - ``llvm-project-source``: canonical git mirror of the LLVM subversion |
| 231 | repository. | 311 | repository. |
| 232 | 312 | ||
| 313 | - ``llvm``: The LLVM Compiler Infrastructure. | ||
| 314 | |||
| 233 | - ``openmp``: LLVM OpenMP compiler Runtime. | 315 | - ``openmp``: LLVM OpenMP compiler Runtime. |
| 234 | 316 | ||
| 235 | - ``kernel-signing-keys-native``: this recipe is used in the | 317 | - ``kernel-signing-keys-native``: this recipe is used in the |
| @@ -242,6 +324,9 @@ New Features / Enhancements in |yocto-ver| | |||
| 242 | - ``glvnd``, which enables OpenGL Vendor Neutral Dispatch Library | 324 | - ``glvnd``, which enables OpenGL Vendor Neutral Dispatch Library |
| 243 | support when using recipes such as ``mesa``. | 325 | support when using recipes such as ``mesa``. |
| 244 | 326 | ||
| 327 | - ``opencl``: support for the :wikipedia:`OpenCL (Open Computing Language) | ||
| 328 | <OpenCL>` framework. | ||
| 329 | |||
| 245 | - New core classes: | 330 | - New core classes: |
| 246 | 331 | ||
| 247 | - The new :ref:`ref-classes-kernel-fit-image` class replaces the previous | 332 | - The new :ref:`ref-classes-kernel-fit-image` class replaces the previous |
| @@ -255,6 +340,10 @@ New Features / Enhancements in |yocto-ver| | |||
| 255 | maintain Go recipes that use a ``BPN-go-mods.inc`` and | 340 | maintain Go recipes that use a ``BPN-go-mods.inc`` and |
| 256 | ``BPN-licenses.inc`` and update these files automatically. | 341 | ``BPN-licenses.inc`` and update these files automatically. |
| 257 | 342 | ||
| 343 | - The new :ref:`ref-classes-python_pdm` class supports building Python | ||
| 344 | recipes with the `PDM <https://pdm-project.org/>`__ package and dependency | ||
| 345 | manager. | ||
| 346 | |||
| 258 | - Architecture-specific changes: | 347 | - Architecture-specific changes: |
| 259 | 348 | ||
| 260 | - Rework the RISC-V :term:`TUNE_FEATURES` to make them based of the RISC-V | 349 | - Rework the RISC-V :term:`TUNE_FEATURES` to make them based of the RISC-V |
| @@ -299,6 +388,16 @@ New Features / Enhancements in |yocto-ver| | |||
| 299 | </openembedded-core/tree/meta/conf/machine/include/riscv/README>` for more | 388 | </openembedded-core/tree/meta/conf/machine/include/riscv/README>` for more |
| 300 | information. | 389 | information. |
| 301 | 390 | ||
| 391 | - Add support for new Arm64 instruction sets, which are represented as files | ||
| 392 | to be included in :term:`MACHINE` configuration in :term:`OpenEmbedded-Core | ||
| 393 | (OE-Core)`. The new configuration files are: | ||
| 394 | |||
| 395 | - :oe_git:`conf/machine/include/arm/arch-armv8-7a.inc </openembedded-core/tree/meta/conf/machine/include/arm/arch-armv8-7a.inc>` | ||
| 396 | - :oe_git:`conf/machine/include/arm/arch-armv8-8a.inc </openembedded-core/tree/meta/conf/machine/include/arm/arch-armv8-8a.inc>` | ||
| 397 | - :oe_git:`conf/machine/include/arm/arch-armv9-1a.inc </openembedded-core/tree/meta/conf/machine/include/arm/arch-armv9-1a.inc>` | ||
| 398 | - :oe_git:`conf/machine/include/arm/arch-armv9-2a.inc </openembedded-core/tree/meta/conf/machine/include/arm/arch-armv9-2a.inc>` | ||
| 399 | - :oe_git:`conf/machine/include/arm/arch-armv9-3a.inc </openembedded-core/tree/meta/conf/machine/include/arm/arch-armv9-3a.inc>` | ||
| 400 | |||
| 302 | - ``arch-mips.inc``: Use ``-EB``/``-EL`` for denoting Endianness. | 401 | - ``arch-mips.inc``: Use ``-EB``/``-EL`` for denoting Endianness. |
| 303 | 402 | ||
| 304 | - Enable ``riscv32`` as supported arch for ``musl`` systems. | 403 | - Enable ``riscv32`` as supported arch for ``musl`` systems. |
| @@ -306,6 +405,15 @@ New Features / Enhancements in |yocto-ver| | |||
| 306 | - Powerpc: Use ``-maltivec`` in compiler flags if ``altivec`` is in | 405 | - Powerpc: Use ``-maltivec`` in compiler flags if ``altivec`` is in |
| 307 | :term:`TUNE_FEATURES`. | 406 | :term:`TUNE_FEATURES`. |
| 308 | 407 | ||
| 408 | - ``arm``: add a ``nocrypto`` feature to :term:`TUNE_FEATURES` to complement | ||
| 409 | the ``crypto`` feature to explicitly disable cryptographic extensions via | ||
| 410 | `GCC` flags. | ||
| 411 | |||
| 412 | This lead to the creation of two new tunes: | ||
| 413 | |||
| 414 | - ``tune-cortexa72-nocrypto`` | ||
| 415 | - ``tune-cortexa53-nocrypto`` | ||
| 416 | |||
| 309 | - QEMU / ``runqemu`` changes: | 417 | - QEMU / ``runqemu`` changes: |
| 310 | 418 | ||
| 311 | - Refactor :ref:`ref-classes-qemu` functions into library functions (in | 419 | - Refactor :ref:`ref-classes-qemu` functions into library functions (in |
| @@ -330,19 +438,40 @@ New Features / Enhancements in |yocto-ver| | |||
| 330 | machine's CPU must also be recent enough to support these instructions | 438 | machine's CPU must also be recent enough to support these instructions |
| 331 | natively. | 439 | natively. |
| 332 | 440 | ||
| 333 | - ``runqemu`` can now run compressed images with snapshot mode. For example, | 441 | - ``runqemu``: |
| 334 | with ``IMAGE_FSTYPES = "... ext4.zst ..."``, you can run:: | 442 | |
| 443 | - The script can now run compressed images with snapshot mode. For | ||
| 444 | example, with :term:`IMAGE_FSTYPES` containing ``ext4.zst``, you can run:: | ||
| 445 | |||
| 446 | runqemu snapshot ext4.zst <image-recipe> | ||
| 335 | 447 | ||
| 336 | runqemu snapshot ext4.zst <image-recipe> | 448 | - Add support for the ``erofs`` filesystem. |
| 449 | |||
| 450 | - The :term:`BitBake` environment is now a requirement, and the script | ||
| 451 | cannot run without a successful call to ``bitbake -e``. | ||
| 452 | |||
| 453 | The script will also raise an error with the ``bitbake`` command is not | ||
| 454 | found. | ||
| 337 | 455 | ||
| 338 | - Documentation changes: | 456 | - Documentation changes: |
| 339 | 457 | ||
| 458 | - Add documentation on :term:`Configuration Fragments <Configuration | ||
| 459 | Fragment>`: | ||
| 460 | |||
| 461 | - :doc:`/ref-manual/fragments` | ||
| 462 | - :doc:`/dev-manual/creating-fragments` | ||
| 463 | |||
| 340 | - Part of :term:`BitBake` internals are now documented at | 464 | - Part of :term:`BitBake` internals are now documented at |
| 341 | :yocto_docs:`/bitbake/bitbake-user-manual/bitbake-user-manual-library-functions.html`. | 465 | :yocto_docs:`/bitbake/bitbake-user-manual/bitbake-user-manual-library-functions.html`. |
| 342 | 466 | ||
| 343 | - A new :doc:`/dev-manual/limiting-resources` guide was created to help | 467 | - A new :doc:`/dev-manual/limiting-resources` guide was created to help |
| 344 | users limit the host resources used by the :term:`OpenEmbedded Build | 468 | users limit the resources used by the :term:`OpenEmbedded Build System`. |
| 345 | System`. | 469 | |
| 470 | - A new :doc:`/dev-manual/hashequivserver` guide was created to help users | ||
| 471 | setting up a :ref:`overview-manual/concepts:Hash Equivalence` server. | ||
| 472 | |||
| 473 | - The QA checks defined in the :term:`OpenEmbedded Build System` were | ||
| 474 | gathered in :doc:`/ref-manual/qa-checks`. | ||
| 346 | 475 | ||
| 347 | - Core library changes: | 476 | - Core library changes: |
| 348 | 477 | ||
| @@ -352,6 +481,9 @@ New Features / Enhancements in |yocto-ver| | |||
| 352 | 481 | ||
| 353 | - Go changes: | 482 | - Go changes: |
| 354 | 483 | ||
| 484 | - :ref:`ref-classes-go-mod-update-modules`: Update license finding to use | ||
| 485 | the new ``find_licenses_up`` library function. | ||
| 486 | |||
| 355 | - Rust changes: | 487 | - Rust changes: |
| 356 | 488 | ||
| 357 | - ``rust-llvm``: | 489 | - ``rust-llvm``: |
| @@ -362,6 +494,9 @@ New Features / Enhancements in |yocto-ver| | |||
| 362 | - Disable the following feature through configuration | 494 | - Disable the following feature through configuration |
| 363 | (:ref:`ref-tasks-configure`): libedit, benchmarks. | 495 | (:ref:`ref-tasks-configure`): libedit, benchmarks. |
| 364 | 496 | ||
| 497 | - Add the ``has-thread-local`` option to the | ||
| 498 | :ref:`ref-classes-rust-target-config` class. | ||
| 499 | |||
| 365 | - Wic Image Creator changes: | 500 | - Wic Image Creator changes: |
| 366 | 501 | ||
| 367 | - After a Python upgrade, WIC plugins containing dashes (``-``) for their | 502 | - After a Python upgrade, WIC plugins containing dashes (``-``) for their |
| @@ -387,17 +522,36 @@ New Features / Enhancements in |yocto-ver| | |||
| 387 | :term:`BitBake` variables. This directory is usually found in | 522 | :term:`BitBake` variables. This directory is usually found in |
| 388 | :term:`STAGING_DIR`. | 523 | :term:`STAGING_DIR`. |
| 389 | 524 | ||
| 390 | - Add the Wic-specific option ``--extra-partiton-space`` to add extra empty | 525 | - Add the Wic-specific option ``--extra-partition-space`` to add extra empty |
| 391 | space after the space filled by the filesystem in the partition. | 526 | space after the space filled by the filesystem in the partition. |
| 527 | |||
| 528 | - The Wic-specific option ``--extra-space`` has a new alias | ||
| 529 | ``--extra-filesystem-space``. | ||
| 530 | |||
| 531 | - ``bootimg_pcbios``: move Syslinux install into separate functions, to make | ||
| 532 | it easier to add new bootloaders. | ||
| 533 | |||
| 534 | The Grub bootloader can now be installed with this Wic plugin. | ||
| 392 | 535 | ||
| 393 | - Add the Wic plugin ``extra_partition`` to install files from the | 536 | - Add the Wic plugin ``extra_partition`` to install files from the |
| 394 | :term:`DEPLOY_DIR_IMAGE` directory into an extra non-rootfs partition. | 537 | :term:`DEPLOY_DIR_IMAGE` directory into an extra non-rootfs partition. See the |
| 538 | :term:`IMAGE_EXTRA_PARTITION_FILES` variable for more information. | ||
| 395 | 539 | ||
| 396 | - SDK-related changes: | 540 | - SDK-related changes: |
| 397 | 541 | ||
| 398 | - Include additional information about Meson setting in the SDK environment | 542 | - Include additional information about Meson setting in the SDK environment |
| 399 | setup script (host system, CPU family, etc.). | 543 | setup script (host system, CPU family, etc.). |
| 400 | 544 | ||
| 545 | - Add Go to :term:`SDK_TOOLCHAIN_LANGS`, except for the following | ||
| 546 | architecture on which this is not supported: | ||
| 547 | |||
| 548 | - RISC-V 32 bits (``rv32``) | ||
| 549 | - PowerPC | ||
| 550 | |||
| 551 | - Image-based SDKs can now include `Zsh` completions by adding the | ||
| 552 | ``zsh-completion-pkgs`` feature to the :term:`IMAGE_FEATURES` variable in | ||
| 553 | the image recipe. | ||
| 554 | |||
| 401 | - Testing-related changes: | 555 | - Testing-related changes: |
| 402 | 556 | ||
| 403 | - ``bitbake/tests/fetch``: Add tests for ``gitsm`` with git-lfs. | 557 | - ``bitbake/tests/fetch``: Add tests for ``gitsm`` with git-lfs. |
| @@ -405,6 +559,9 @@ New Features / Enhancements in |yocto-ver| | |||
| 405 | - ``bitbake/lib/bb/tests/fetch``: add a test case to ensure Git shallow | 559 | - ``bitbake/lib/bb/tests/fetch``: add a test case to ensure Git shallow |
| 406 | fetch works for tag containing slashes. | 560 | fetch works for tag containing slashes. |
| 407 | 561 | ||
| 562 | - :ref:`ref-classes-testexport`: capture all tests and data from all layers | ||
| 563 | (instead of the :term:`OpenEmbedded-Core (OE-Core)` layer only). | ||
| 564 | |||
| 408 | - OEQA: | 565 | - OEQA: |
| 409 | 566 | ||
| 410 | - SDK: | 567 | - SDK: |
| @@ -455,8 +612,16 @@ New Features / Enhancements in |yocto-ver| | |||
| 455 | 612 | ||
| 456 | - ``runqemu``: add new test for booting compressed images. | 613 | - ``runqemu``: add new test for booting compressed images. |
| 457 | 614 | ||
| 458 | - :ref:`ref-classes-testexport`: capture all tests and data from all layers | 615 | - General improvements of the parallelization of tests, namely fixing |
| 459 | (instead of the :term:`OpenEmbedded-Core (OE-Core)` layer only). | 616 | some tests that could spawn an unlimited number of threads leading to |
| 617 | OOM kills. | ||
| 618 | |||
| 619 | - A new SDK test is now running for Go after ``go`` was added to | ||
| 620 | :term:`SDK_TOOLCHAIN_LANGS`. | ||
| 621 | |||
| 622 | - Commands sent over SSH (using the ``OESSHTarget`` class) will now error | ||
| 623 | when an SSH failure occurs. It is possible to ignore these errors by | ||
| 624 | passing ``ignore_ssh_fails`` when executing a command. | ||
| 460 | 625 | ||
| 461 | - Utility script changes: | 626 | - Utility script changes: |
| 462 | 627 | ||
| @@ -468,6 +633,8 @@ New Features / Enhancements in |yocto-ver| | |||
| 468 | patch files *must* include an ``Upstream-Status`` to pass with this | 633 | patch files *must* include an ``Upstream-Status`` to pass with this |
| 469 | script. | 634 | script. |
| 470 | 635 | ||
| 636 | - Show the :term:`DISTRO` used when running the script. | ||
| 637 | |||
| 471 | - :ref:`ref-classes-yocto-check-layer` class: | 638 | - :ref:`ref-classes-yocto-check-layer` class: |
| 472 | 639 | ||
| 473 | - Refactor to be extended easily. | 640 | - Refactor to be extended easily. |
| @@ -490,7 +657,11 @@ New Features / Enhancements in |yocto-ver| | |||
| 490 | 657 | ||
| 491 | - ``buildstats-diff``: find last two Buildstats files if none are specified. | 658 | - ``buildstats-diff``: find last two Buildstats files if none are specified. |
| 492 | 659 | ||
| 493 | - ``pybootchartgui``: visualize ``/proc/net/dev`` network stats in graphs. | 660 | - ``pybootchartgui``: |
| 661 | |||
| 662 | - visualize ``/proc/net/dev`` network stats in graphs. | ||
| 663 | |||
| 664 | - account for network statistics when calculating extents. | ||
| 494 | 665 | ||
| 495 | - Packaging changes: | 666 | - Packaging changes: |
| 496 | 667 | ||
| @@ -499,6 +670,19 @@ New Features / Enhancements in |yocto-ver| | |||
| 499 | detailed information on the files used during the compilation and improve | 670 | detailed information on the files used during the compilation and improve |
| 500 | SPDX accuracy. | 671 | SPDX accuracy. |
| 501 | 672 | ||
| 673 | - When using the ``ipk`` and ``rpm`` package managers, give out more possible | ||
| 674 | reasons about unmatched packages. | ||
| 675 | |||
| 676 | For example:: | ||
| 677 | |||
| 678 | E: Package 'catch2' has no installation candidate | ||
| 679 | catch2 is a recipe. Its generated packages are: ['catch2-src', 'catch2-dbg', 'catch2-staticdev', 'catch2-dev', 'catch2-doc'] | ||
| 680 | Either specify a generated package or set ALLOW_EMPTY:${PN} = "1" in catch2 recipe | ||
| 681 | |||
| 682 | - ``package.py``: replace all files unconditionally when copying debug | ||
| 683 | sources (passing ``-u`` to the ``cpio`` command in | ||
| 684 | ``copydebugsources()``). This improves reproducibility. | ||
| 685 | |||
| 502 | - LLVM related changes: | 686 | - LLVM related changes: |
| 503 | 687 | ||
| 504 | - Like ``gcc-source``, the LLVM project sources are part of ``work-shared`` | 688 | - Like ``gcc-source``, the LLVM project sources are part of ``work-shared`` |
| @@ -535,14 +719,26 @@ New Features / Enhancements in |yocto-ver| | |||
| 535 | 719 | ||
| 536 | - Handle workspaces for multiconfig. | 720 | - Handle workspaces for multiconfig. |
| 537 | 721 | ||
| 722 | - Fix upgrade for recipes with Git submodules. | ||
| 723 | |||
| 538 | - Patchtest-related changes: | 724 | - Patchtest-related changes: |
| 539 | 725 | ||
| 726 | - Multiple improvements to the tool's :oe_git:`README | ||
| 727 | </openembedded-core/tree/scripts/patchtest.README>`. | ||
| 728 | |||
| 729 | - Don't match :term:`BitBake` Python expansions as GitHub usernames | ||
| 730 | (``${@...}`` syntax). | ||
| 731 | |||
| 540 | - Security changes: | 732 | - Security changes: |
| 541 | 733 | ||
| 542 | - ``openssl``: add FIPS support. This can be enabled through the ``fips`` | 734 | - ``openssl``: add FIPS support. This can be enabled through the ``fips`` |
| 543 | :term:`PACKAGECONFIG`. | 735 | :term:`PACKAGECONFIG`. |
| 544 | 736 | ||
| 545 | - :ref:`ref-classes-cve-check` changes: | 737 | - :ref:`ref-classes-cve-check` class changes: |
| 738 | |||
| 739 | |||
| 740 | - ``cve-update-db-native``: FKIE: use Secondary metric if there is no | ||
| 741 | Primary metric. | ||
| 546 | 742 | ||
| 547 | - New :term:`PACKAGECONFIG` options for individual recipes: | 743 | - New :term:`PACKAGECONFIG` options for individual recipes: |
| 548 | 744 | ||
| @@ -554,13 +750,34 @@ New Features / Enhancements in |yocto-ver| | |||
| 554 | - ``openssl``: ``fips`` | 750 | - ``openssl``: ``fips`` |
| 555 | - ``qemu``: ``sdl-image``, ``pixman`` | 751 | - ``qemu``: ``sdl-image``, ``pixman`` |
| 556 | - ``wget``: ``pcre2`` | 752 | - ``wget``: ``pcre2`` |
| 557 | - ``mesa``: ``asahi``, ``amd``, ``svga``, ``teflon``, ``nouveau`` | 753 | - ``mesa``: ``asahi``, ``amd``, ``svga``, ``teflon``, ``nouveau``, |
| 754 | ``xmlconfig`` | ||
| 755 | - ``dbus``: ``traditional-activation``, ``message-bus`` | ||
| 756 | - ``cmake``: ``debugger`` | ||
| 757 | - ``libcxx``: ``unwind-cross`` | ||
| 758 | - ``tiff``: ``lerc`` | ||
| 759 | - ``freetype``: ``brotli`` | ||
| 760 | - ``gawk``: ``pma-if-64bit`` | ||
| 761 | - ``x264``: ``ffmpeg``, ``opencl`` | ||
| 558 | 762 | ||
| 559 | - Systemd related changes: | 763 | - Systemd related changes: |
| 560 | 764 | ||
| 561 | - Enable getty generator by default by adding ``serial-getty-generator`` to | 765 | - Enable getty generator by default by adding ``serial-getty-generator`` to |
| 562 | :term:`PACKAGECONFIG`. | 766 | :term:`PACKAGECONFIG`. |
| 563 | 767 | ||
| 768 | - Now uses the :term:`USE_NLS` variable to enable or disable building | ||
| 769 | translations. | ||
| 770 | |||
| 771 | - Fix deduplicated templates and instance lines in preset files when listing | ||
| 772 | both template and instances in :term:`SYSTEMD_SERVICE`. | ||
| 773 | |||
| 774 | - Stop enabling non-standard MAC policy when using the 'pni-names' feature | ||
| 775 | (part of :term:`DISTRO_FEATURES`). Instead, follow what is provided by | ||
| 776 | upstream systemd. | ||
| 777 | |||
| 778 | - Install ``systemd-sysv-install`` when using the | ||
| 779 | ``systemd-systemctl-native`` recipe. | ||
| 780 | |||
| 564 | - :ref:`ref-classes-sanity` class changes: | 781 | - :ref:`ref-classes-sanity` class changes: |
| 565 | 782 | ||
| 566 | - :ref:`ref-classes-insane`: Move test for invalid :term:`PACKAGECONFIG` to | 783 | - :ref:`ref-classes-insane`: Move test for invalid :term:`PACKAGECONFIG` to |
| @@ -576,6 +793,9 @@ New Features / Enhancements in |yocto-ver| | |||
| 576 | install ``libstdc++-14-dev`` instead of ``libgcc-14-dev`` to avoid build | 793 | install ``libstdc++-14-dev`` instead of ``libgcc-14-dev`` to avoid build |
| 577 | issues when building :ref:`ref-classes-native` with Clang. | 794 | issues when building :ref:`ref-classes-native` with Clang. |
| 578 | 795 | ||
| 796 | - Drop the ``var-undefined`` QA check as it was not relevant for the | ||
| 797 | variables it was checking, as those are mandatory by default. | ||
| 798 | |||
| 579 | - U-boot related changes: | 799 | - U-boot related changes: |
| 580 | 800 | ||
| 581 | - :ref:`ref-classes-uboot-sign`: Add support for setting firmware property | 801 | - :ref:`ref-classes-uboot-sign`: Add support for setting firmware property |
| @@ -589,6 +809,11 @@ New Features / Enhancements in |yocto-ver| | |||
| 589 | variable to automatically set U-boot configuration options (for example | 809 | variable to automatically set U-boot configuration options (for example |
| 590 | ``CONFIG_RISCV_ISA_F``). | 810 | ``CONFIG_RISCV_ISA_F``). |
| 591 | 811 | ||
| 812 | - Improve the way build directories are split when having multiple | ||
| 813 | configurations listed in :term:`UBOOT_CONFIG`. This fixes an issue where | ||
| 814 | two or more of these configurations were using the same directory for | ||
| 815 | building (because these were using the same defconfig file). | ||
| 816 | |||
| 592 | - Miscellaneous changes: | 817 | - Miscellaneous changes: |
| 593 | 818 | ||
| 594 | - ``dropbear``: The ``dropbearkey.service`` can now take extra arguments for | 819 | - ``dropbear``: The ``dropbearkey.service`` can now take extra arguments for |
| @@ -648,12 +873,78 @@ New Features / Enhancements in |yocto-ver| | |||
| 648 | - :ref:`ref-classes-externalsrc`: Always ask Git for location of ``.git`` | 873 | - :ref:`ref-classes-externalsrc`: Always ask Git for location of ``.git`` |
| 649 | directory (may be different from the default ``${S}/.git``). | 874 | directory (may be different from the default ``${S}/.git``). |
| 650 | 875 | ||
| 651 | - :ref:`ref-classes-features_check`: Add support for required | 876 | - :ref:`ref-classes-features_check`: Add support for :term:`REQUIRED_TUNE_FEATURES`. |
| 652 | :term:`TUNE_FEATURES`. | ||
| 653 | 877 | ||
| 654 | - ``openssh``: limit read access to ``sshd_config`` file (set its filemode | 878 | - ``openssh``: limit read access to ``sshd_config`` file (set its filemode |
| 655 | to ``0600``). | 879 | to ``0600``). |
| 656 | 880 | ||
| 881 | - ``barebox-tools`` now installs the ``rk-usb-loader`` utility. | ||
| 882 | |||
| 883 | - The :ref:`ref-classes-setuptools3_legacy` class now supports the | ||
| 884 | :ref:`qa-check-pep517-backend` QA check. | ||
| 885 | |||
| 886 | - The :ref:`ref-classes-ccache` class now supports using `Ccache` for native | ||
| 887 | recipes when the local build configuration contains:: | ||
| 888 | |||
| 889 | ASSUME_PROVIDED += "ccache-native" | ||
| 890 | HOSTTOOLS += "ccache" | ||
| 891 | |||
| 892 | - :ref:`ref-classes-python_pep517`: use ``pyproject-build`` instead of | ||
| 893 | calling the module with ``nativepython3``. | ||
| 894 | |||
| 895 | - ``dbus-glib``: include the binding tools separately into the | ||
| 896 | ``${PN}-tools`` package. | ||
| 897 | |||
| 898 | - ``dbus``: use the :ref:`ref-classes-systemd` class to handle the unit | ||
| 899 | files of D-Bus. | ||
| 900 | |||
| 901 | - ``dpkg``: add :ref:`ptest <test-manual/ptest:testing packages with ptest>` | ||
| 902 | support. | ||
| 903 | |||
| 904 | - ``shared-mime-info``: Now uses the :term:`USE_NLS` variable to enable | ||
| 905 | building translations. | ||
| 906 | |||
| 907 | - ``p11-kit``: Now uses the :term:`USE_NLS` variable to enable building | ||
| 908 | translations. | ||
| 909 | |||
| 910 | - ``babeltrace2``: Enable Python plugins | ||
| 911 | |||
| 912 | - ``initramfs-framework``: mount a temporary filesystem on ``/run`` and move | ||
| 913 | it to the root filesystem directory before calling ``switch_root``. | ||
| 914 | |||
| 915 | - ``python3``: Pass ``PLATFORM_TRIPLET`` explicitly when cross compiling to | ||
| 916 | make the build deterministic instead of letting Python detect the platform | ||
| 917 | triplet (``${HOST_ARCH}-${HOST_OS}``). | ||
| 918 | |||
| 919 | - ``pulseaudio``: Add the ``audio`` group explicitly if | ||
| 920 | ``pulseaudio-server`` is used. | ||
| 921 | |||
| 922 | - ``oe/license_finder``: Add ``find_licenses_up`` function to find licenses | ||
| 923 | upwards until reaching a predefined top directory (as an argument). | ||
| 924 | |||
| 925 | - ``mesa``: | ||
| 926 | |||
| 927 | - Build Mesa's Asahi tools when ``asahi`` is part of the recipe's | ||
| 928 | :term:`PACKAGECONFIG` variable. | ||
| 929 | |||
| 930 | - The ``mesa`` recipe now declares two new :term:`PROVIDES` for Vulkan | ||
| 931 | and OpenCL ICD. These virtual provider are respectively named | ||
| 932 | ``virtual-opencl-icd`` and ``virtual-vulkan-icd``. | ||
| 933 | |||
| 934 | - ``mesa-demos``: split info tools to a separate package ``mesa-demos-info``. | ||
| 935 | |||
| 936 | - ``vte``: skip :ref:`ref-classes-gobject-introspection` with Clang on Arm, | ||
| 937 | as it caused build failures. | ||
| 938 | |||
| 939 | - ``shadow``: Increase the maximum group name length from 24 to 32 (default | ||
| 940 | value provided by upstream recipe, was previously hardcoded to 24). | ||
| 941 | |||
| 942 | - ``udev-extraconf``: Speed up the ``mount.sh`` script by passing the block | ||
| 943 | device of interest to ``blkid`` when getting partition label names. | ||
| 944 | |||
| 945 | - ``piglit``: enable OpenCL support if ``opencl`` is part of the | ||
| 946 | :term:`DISTRO` features. | ||
| 947 | |||
| 657 | Known Issues in |yocto-ver| | 948 | Known Issues in |yocto-ver| |
| 658 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 949 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 659 | 950 | ||
diff --git a/meta/classes-recipe/barebox.bbclass b/meta/classes-recipe/barebox.bbclass index ece8fb6485..73615999aa 100644 --- a/meta/classes-recipe/barebox.bbclass +++ b/meta/classes-recipe/barebox.bbclass | |||
| @@ -16,6 +16,8 @@ DEPENDS += "bison-native flex-native lz4-native" | |||
| 16 | 16 | ||
| 17 | S = "${UNPACKDIR}/barebox-${PV}" | 17 | S = "${UNPACKDIR}/barebox-${PV}" |
| 18 | B = "${WORKDIR}/build" | 18 | B = "${WORKDIR}/build" |
| 19 | KBUILD_OUTPUT = "${B}" | ||
| 20 | OE_TERMINAL_EXPORTS += "KBUILD_OUTPUT" | ||
| 19 | 21 | ||
| 20 | require conf/image-uefi.conf | 22 | require conf/image-uefi.conf |
| 21 | 23 | ||
diff --git a/meta/classes-recipe/kernel-fit-image.bbclass b/meta/classes-recipe/kernel-fit-image.bbclass index 16b6ab7b2f..fd0d21ceee 100644 --- a/meta/classes-recipe/kernel-fit-image.bbclass +++ b/meta/classes-recipe/kernel-fit-image.bbclass | |||
| @@ -63,14 +63,12 @@ python do_compile() { | |||
| 63 | ) | 63 | ) |
| 64 | 64 | ||
| 65 | # Prepare a kernel image section. | 65 | # Prepare a kernel image section. |
| 66 | linux_bin = d.getVar('FIT_LINUX_BIN') | 66 | shutil.copyfile(os.path.join(kernel_deploydir, "linux.bin"), "linux.bin") |
| 67 | if linux_bin: | 67 | with open(os.path.join(kernel_deploydir, "linux_comp")) as linux_comp_f: |
| 68 | shutil.copyfile(os.path.join(kernel_deploydir, "linux.bin"), "linux.bin") | 68 | linux_comp = linux_comp_f.read() |
| 69 | with open(os.path.join(kernel_deploydir, "linux_comp")) as linux_comp_f: | 69 | root_node.fitimage_emit_section_kernel("kernel-1", "linux.bin", linux_comp, |
| 70 | linux_comp = linux_comp_f.read() | 70 | d.getVar('UBOOT_LOADADDRESS'), d.getVar('UBOOT_ENTRYPOINT'), |
| 71 | root_node.fitimage_emit_section_kernel("kernel-1", "linux.bin", linux_comp, | 71 | d.getVar('UBOOT_MKIMAGE_KERNEL_TYPE'), d.getVar("UBOOT_ENTRYSYMBOL")) |
| 72 | d.getVar('UBOOT_LOADADDRESS'), d.getVar('UBOOT_ENTRYPOINT'), | ||
| 73 | d.getVar('UBOOT_MKIMAGE_KERNEL_TYPE'), d.getVar("UBOOT_ENTRYSYMBOL")) | ||
| 74 | 72 | ||
| 75 | # Prepare a DTB image section | 73 | # Prepare a DTB image section |
| 76 | kernel_devicetree = d.getVar('KERNEL_DEVICETREE') | 74 | kernel_devicetree = d.getVar('KERNEL_DEVICETREE') |
diff --git a/meta/classes-recipe/rust-target-config.bbclass b/meta/classes-recipe/rust-target-config.bbclass index 0c7e3c0090..9ce57843cf 100644 --- a/meta/classes-recipe/rust-target-config.bbclass +++ b/meta/classes-recipe/rust-target-config.bbclass | |||
| @@ -405,7 +405,7 @@ def rust_gen_target(d, thing, wd, arch): | |||
| 405 | tspec['llvm-abiname'] = "lp64d" | 405 | tspec['llvm-abiname'] = "lp64d" |
| 406 | if "powerpc64le" in tspec['llvm-target']: | 406 | if "powerpc64le" in tspec['llvm-target']: |
| 407 | tspec['llvm-abiname'] = "elfv2" | 407 | tspec['llvm-abiname'] = "elfv2" |
| 408 | if "powerpc64" in tspec['llvm-target']: | 408 | elif "powerpc64" in tspec['llvm-target']: |
| 409 | tspec['llvm-abiname'] = "elfv1" | 409 | tspec['llvm-abiname'] = "elfv1" |
| 410 | tspec['vendor'] = "unknown" | 410 | tspec['vendor'] = "unknown" |
| 411 | tspec['target-family'] = "unix" | 411 | tspec['target-family'] = "unix" |
diff --git a/meta/classes-recipe/uboot-config.bbclass b/meta/classes-recipe/uboot-config.bbclass index eb82dd3583..fd6c045142 100644 --- a/meta/classes-recipe/uboot-config.bbclass +++ b/meta/classes-recipe/uboot-config.bbclass | |||
| @@ -85,7 +85,7 @@ SPL_MKIMAGE_DTCOPTS ??= "" | |||
| 85 | UBOOT_MKIMAGE ?= "uboot-mkimage" | 85 | UBOOT_MKIMAGE ?= "uboot-mkimage" |
| 86 | UBOOT_MKIMAGE_SIGN ?= "${UBOOT_MKIMAGE}" | 86 | UBOOT_MKIMAGE_SIGN ?= "${UBOOT_MKIMAGE}" |
| 87 | 87 | ||
| 88 | # Signature activation - this requires KERNEL_IMAGETYPE = "fitImage" | 88 | # Signature activation |
| 89 | UBOOT_SIGN_ENABLE ?= "0" | 89 | UBOOT_SIGN_ENABLE ?= "0" |
| 90 | 90 | ||
| 91 | # Arguments passed to mkimage for signing | 91 | # Arguments passed to mkimage for signing |
diff --git a/meta/classes/toolchain/clang.bbclass b/meta/classes/toolchain/clang.bbclass index b4a1c180f6..9a3cd0e584 100644 --- a/meta/classes/toolchain/clang.bbclass +++ b/meta/classes/toolchain/clang.bbclass | |||
| @@ -32,6 +32,7 @@ TUNE_CCARGS += "${@bb.utils.contains("DISTRO_FEATURES", "usrmerge", " --dyld-pre | |||
| 32 | 32 | ||
| 33 | LDFLAGS:append:class-nativesdk:x86-64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-x86-64.so.2" | 33 | LDFLAGS:append:class-nativesdk:x86-64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-x86-64.so.2" |
| 34 | LDFLAGS:append:class-nativesdk:aarch64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-aarch64.so.1" | 34 | LDFLAGS:append:class-nativesdk:aarch64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-aarch64.so.1" |
| 35 | LDFLAGS:append:class-cross-canadian = " -Wl,-dynamic-linker,${base_libdir}/placeholder/to/be/rewritten/by/sdk/installer" | ||
| 35 | 36 | ||
| 36 | # do_populate_sysroot needs STRIP, do_package_qa needs OBJDUMP | 37 | # do_populate_sysroot needs STRIP, do_package_qa needs OBJDUMP |
| 37 | POPULATESYSROOTDEPS:append:class-target = " llvm-native:do_populate_sysroot" | 38 | POPULATESYSROOTDEPS:append:class-target = " llvm-native:do_populate_sysroot" |
diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc index c4142e2b72..6902bc0c44 100644 --- a/meta/conf/distro/include/maintainers.inc +++ b/meta/conf/distro/include/maintainers.inc | |||
| @@ -886,6 +886,7 @@ RECIPE_MAINTAINER:pn-wic-tools = "Unassigned <unassigned@yoctoproject.org>" | |||
| 886 | RECIPE_MAINTAINER:pn-wireless-regdb = "Unassigned <unassigned@yoctoproject.org>" | 886 | RECIPE_MAINTAINER:pn-wireless-regdb = "Unassigned <unassigned@yoctoproject.org>" |
| 887 | RECIPE_MAINTAINER:pn-wpa-supplicant = "Unassigned <unassigned@yoctoproject.org>" | 887 | RECIPE_MAINTAINER:pn-wpa-supplicant = "Unassigned <unassigned@yoctoproject.org>" |
| 888 | RECIPE_MAINTAINER:pn-wpebackend-fdo = "Unassigned <unassigned@yoctoproject.org>" | 888 | RECIPE_MAINTAINER:pn-wpebackend-fdo = "Unassigned <unassigned@yoctoproject.org>" |
| 889 | RECIPE_MAINTAINER:pn-x11-volatiles = "Unassigned <unassigned@yoctoproject.org>" | ||
| 889 | RECIPE_MAINTAINER:pn-x11perf = "Unassigned <unassigned@yoctoproject.org>" | 890 | RECIPE_MAINTAINER:pn-x11perf = "Unassigned <unassigned@yoctoproject.org>" |
| 890 | RECIPE_MAINTAINER:pn-x264 = "Unassigned <unassigned@yoctoproject.org>" | 891 | RECIPE_MAINTAINER:pn-x264 = "Unassigned <unassigned@yoctoproject.org>" |
| 891 | RECIPE_MAINTAINER:pn-xauth = "Unassigned <unassigned@yoctoproject.org>" | 892 | RECIPE_MAINTAINER:pn-xauth = "Unassigned <unassigned@yoctoproject.org>" |
diff --git a/meta/lib/oeqa/selftest/cases/fitimage.py b/meta/lib/oeqa/selftest/cases/fitimage.py index 9c2e10dd2b..8df5e92a34 100644 --- a/meta/lib/oeqa/selftest/cases/fitimage.py +++ b/meta/lib/oeqa/selftest/cases/fitimage.py | |||
| @@ -9,7 +9,6 @@ import re | |||
| 9 | import shlex | 9 | import shlex |
| 10 | import logging | 10 | import logging |
| 11 | import pprint | 11 | import pprint |
| 12 | import tempfile | ||
| 13 | 12 | ||
| 14 | import oe.fitimage | 13 | import oe.fitimage |
| 15 | 14 | ||
| @@ -47,10 +46,11 @@ class FitImageTestCase(OESelftestTestCase): | |||
| 47 | # Check if the its file contains the expected paths and attributes. | 46 | # Check if the its file contains the expected paths and attributes. |
| 48 | # The _get_req_* functions are implemented by more specific chield classes. | 47 | # The _get_req_* functions are implemented by more specific chield classes. |
| 49 | self._check_its_file() | 48 | self._check_its_file() |
| 50 | req_its_paths = self._get_req_its_paths() | 49 | req_its_paths, not_req_its_paths = self._get_req_its_paths() |
| 51 | req_sigvalues_config = self._get_req_sigvalues_config() | 50 | req_sigvalues_config = self._get_req_sigvalues_config() |
| 52 | req_sigvalues_image = self._get_req_sigvalues_image() | 51 | req_sigvalues_image = self._get_req_sigvalues_image() |
| 53 | # Compare the its file against req_its_paths, req_sigvalues_config, req_sigvalues_image | 52 | # Compare the its file against req_its_paths, not_req_its_paths, |
| 53 | # req_sigvalues_config, req_sigvalues_image | ||
| 54 | 54 | ||
| 55 | # Call the dumpimage utiliy and check that it prints all the expected paths and attributes | 55 | # Call the dumpimage utiliy and check that it prints all the expected paths and attributes |
| 56 | # The _get_req_* functions are implemented by more specific chield classes. | 56 | # The _get_req_* functions are implemented by more specific chield classes. |
| @@ -198,7 +198,7 @@ class FitImageTestCase(OESelftestTestCase): | |||
| 198 | # Support only the test recipe which provides 1 devicetree and 1 devicetree overlay | 198 | # Support only the test recipe which provides 1 devicetree and 1 devicetree overlay |
| 199 | pref_prov_dtb = bb_vars.get('PREFERRED_PROVIDER_virtual/dtb') | 199 | pref_prov_dtb = bb_vars.get('PREFERRED_PROVIDER_virtual/dtb') |
| 200 | if pref_prov_dtb == "bbb-dtbs-as-ext": | 200 | if pref_prov_dtb == "bbb-dtbs-as-ext": |
| 201 | all_dtbs += ["am335x-bonegreen-ext.dtb", "BBORG_RELAY-00A2.dtbo"] | 201 | all_dtbs += ["BBORG_RELAY-00A2.dtbo", "am335x-bonegreen-ext.dtb"] |
| 202 | dtb_symlinks.append("am335x-bonegreen-ext-alias.dtb") | 202 | dtb_symlinks.append("am335x-bonegreen-ext-alias.dtb") |
| 203 | return (all_dtbs, dtb_symlinks) | 203 | return (all_dtbs, dtb_symlinks) |
| 204 | 204 | ||
| @@ -234,8 +234,9 @@ class FitImageTestCase(OESelftestTestCase): | |||
| 234 | self.logger.debug("its file: %s" % its_file.read()) | 234 | self.logger.debug("its file: %s" % its_file.read()) |
| 235 | 235 | ||
| 236 | # Generate a list of expected paths in the its file | 236 | # Generate a list of expected paths in the its file |
| 237 | req_its_paths = self._get_req_its_paths(bb_vars) | 237 | req_its_paths, not_req_its_paths = self._get_req_its_paths(bb_vars) |
| 238 | self.logger.debug("req_its_paths:\n%s\n" % pprint.pformat(req_its_paths, indent=4)) | 238 | self.logger.debug("req_its_paths:\n%s\n" % pprint.pformat(req_its_paths, indent=4)) |
| 239 | self.logger.debug("not_req_its_paths:\n%s\n" % pprint.pformat(not_req_its_paths, indent=4)) | ||
| 239 | 240 | ||
| 240 | # Generate a dict of expected configuration signature nodes | 241 | # Generate a dict of expected configuration signature nodes |
| 241 | req_sigvalues_config = self._get_req_sigvalues_config(bb_vars) | 242 | req_sigvalues_config = self._get_req_sigvalues_config(bb_vars) |
| @@ -275,6 +276,11 @@ class FitImageTestCase(OESelftestTestCase): | |||
| 275 | if not req_path in its_paths: | 276 | if not req_path in its_paths: |
| 276 | self.fail('Missing path in its file: %s (%s)' % (req_path, its_file_path)) | 277 | self.fail('Missing path in its file: %s (%s)' % (req_path, its_file_path)) |
| 277 | 278 | ||
| 279 | # check if all not expected paths are absent in the its file | ||
| 280 | for not_req_path in not_req_its_paths: | ||
| 281 | if not_req_path in its_paths: | ||
| 282 | self.fail('Unexpected path found in its file: %s (%s)' % (not_req_path, its_file_path)) | ||
| 283 | |||
| 278 | # Check if all the expected singnature nodes (images and configurations) are found | 284 | # Check if all the expected singnature nodes (images and configurations) are found |
| 279 | self.logger.debug("sigs:\n%s\n" % pprint.pformat(sigs, indent=4)) | 285 | self.logger.debug("sigs:\n%s\n" % pprint.pformat(sigs, indent=4)) |
| 280 | if req_sigvalues_config or req_sigvalues_image: | 286 | if req_sigvalues_config or req_sigvalues_image: |
| @@ -353,7 +359,7 @@ class FitImageTestCase(OESelftestTestCase): | |||
| 353 | 359 | ||
| 354 | def _get_req_its_paths(self, bb_vars): | 360 | def _get_req_its_paths(self, bb_vars): |
| 355 | self.logger.error("This function needs to be implemented") | 361 | self.logger.error("This function needs to be implemented") |
| 356 | return [] | 362 | return ([], []) |
| 357 | 363 | ||
| 358 | def _get_req_its_fields(self, bb_vars): | 364 | def _get_req_its_fields(self, bb_vars): |
| 359 | self.logger.error("This function needs to be implemented") | 365 | self.logger.error("This function needs to be implemented") |
| @@ -499,7 +505,7 @@ class KernelFitImageBase(FitImageTestCase): | |||
| 499 | return (fitimage_its_path, fitimage_path) | 505 | return (fitimage_its_path, fitimage_path) |
| 500 | 506 | ||
| 501 | def _get_req_its_paths(self, bb_vars): | 507 | def _get_req_its_paths(self, bb_vars): |
| 502 | """Generate a list of expected paths in the its file | 508 | """Generate a list of expected and a list of not expected paths in the its file |
| 503 | 509 | ||
| 504 | Example: | 510 | Example: |
| 505 | [ | 511 | [ |
| @@ -515,15 +521,26 @@ class KernelFitImageBase(FitImageTestCase): | |||
| 515 | uboot_sign_enable = bb_vars.get('UBOOT_SIGN_ENABLE') | 521 | uboot_sign_enable = bb_vars.get('UBOOT_SIGN_ENABLE') |
| 516 | 522 | ||
| 517 | # image nodes | 523 | # image nodes |
| 518 | images = [ 'kernel-1' ] | 524 | images = ['kernel-1'] |
| 525 | not_images = [] | ||
| 526 | |||
| 519 | if dtb_files: | 527 | if dtb_files: |
| 520 | images += [ 'fdt-' + dtb for dtb in dtb_files ] | 528 | images += [ 'fdt-' + dtb for dtb in dtb_files ] |
| 529 | |||
| 521 | if fit_uboot_env: | 530 | if fit_uboot_env: |
| 522 | images.append('bootscr-' + fit_uboot_env) | 531 | images.append('bootscr-' + fit_uboot_env) |
| 532 | else: | ||
| 533 | not_images.append('bootscr-boot.cmd') | ||
| 534 | |||
| 523 | if bb_vars['MACHINE'] == "qemux86-64": # Not really the right if | 535 | if bb_vars['MACHINE'] == "qemux86-64": # Not really the right if |
| 524 | images.append('setup-1') | 536 | images.append('setup-1') |
| 537 | else: | ||
| 538 | not_images.append('setup-1') | ||
| 539 | |||
| 525 | if initramfs_image and initramfs_image_bundle != "1": | 540 | if initramfs_image and initramfs_image_bundle != "1": |
| 526 | images.append('ramdisk-1') | 541 | images.append('ramdisk-1') |
| 542 | else: | ||
| 543 | not_images.append('ramdisk-1') | ||
| 527 | 544 | ||
| 528 | # configuration nodes (one per DTB and also one per symlink) | 545 | # configuration nodes (one per DTB and also one per symlink) |
| 529 | if dtb_files: | 546 | if dtb_files: |
| @@ -541,7 +558,12 @@ class KernelFitImageBase(FitImageTestCase): | |||
| 541 | req_its_paths.append(['/', 'configurations', configuration, 'hash-1']) | 558 | req_its_paths.append(['/', 'configurations', configuration, 'hash-1']) |
| 542 | if uboot_sign_enable == "1": | 559 | if uboot_sign_enable == "1": |
| 543 | req_its_paths.append(['/', 'configurations', configuration, 'signature-1']) | 560 | req_its_paths.append(['/', 'configurations', configuration, 'signature-1']) |
| 544 | return req_its_paths | 561 | |
| 562 | not_req_its_paths = [] | ||
| 563 | for image in not_images: | ||
| 564 | not_req_its_paths.append(['/', 'images', image]) | ||
| 565 | |||
| 566 | return (req_its_paths, not_req_its_paths) | ||
| 545 | 567 | ||
| 546 | def _get_req_its_fields(self, bb_vars): | 568 | def _get_req_its_fields(self, bb_vars): |
| 547 | initramfs_image = bb_vars['INITRAMFS_IMAGE'] | 569 | initramfs_image = bb_vars['INITRAMFS_IMAGE'] |
| @@ -572,10 +594,23 @@ class KernelFitImageBase(FitImageTestCase): | |||
| 572 | fit_conf_prefix = bb_vars.get('FIT_CONF_PREFIX', "conf-") | 594 | fit_conf_prefix = bb_vars.get('FIT_CONF_PREFIX', "conf-") |
| 573 | its_field_check.append('default = "' + fit_conf_prefix + fit_conf_default_dtb + '";') | 595 | its_field_check.append('default = "' + fit_conf_prefix + fit_conf_default_dtb + '";') |
| 574 | 596 | ||
| 575 | its_field_check.append('kernel = "kernel-1";') | 597 | # configuration nodes (one per DTB and also one per symlink) |
| 598 | dtb_files, dtb_symlinks = FitImageTestCase._get_dtb_files(bb_vars) | ||
| 599 | if dtb_files: | ||
| 600 | for dtb in dtb_files: | ||
| 601 | its_field_check.append('kernel = "kernel-1";') | ||
| 602 | its_field_check.append('fdt = "fdt-%s";' % dtb) | ||
| 603 | for dtb in dtb_symlinks: | ||
| 604 | its_field_check.append('kernel = "kernel-1";') | ||
| 605 | # Works only for tests were the symlink is with -alias suffix | ||
| 606 | its_field_check.append('fdt = "fdt-%s";' % dtb.replace('-alias', '')) | ||
| 576 | 607 | ||
| 577 | if initramfs_image and initramfs_image_bundle != "1": | 608 | if initramfs_image and initramfs_image_bundle != "1": |
| 578 | its_field_check.append('ramdisk = "ramdisk-1";') | 609 | its_field_check.append('ramdisk = "ramdisk-1";') |
| 610 | else: | ||
| 611 | its_field_check.append('kernel = "kernel-1";') | ||
| 612 | if initramfs_image and initramfs_image_bundle != "1": | ||
| 613 | its_field_check.append('ramdisk = "ramdisk-1";') | ||
| 579 | 614 | ||
| 580 | return its_field_check | 615 | return its_field_check |
| 581 | 616 | ||
| @@ -1032,20 +1067,21 @@ class FitImagePyTests(KernelFitImageBase): | |||
| 1032 | # Provide variables without calling bitbake | 1067 | # Provide variables without calling bitbake |
| 1033 | bb_vars = { | 1068 | bb_vars = { |
| 1034 | # image-fitimage.conf | 1069 | # image-fitimage.conf |
| 1070 | 'FIT_ADDRESS_CELLS': "1", | ||
| 1071 | 'FIT_CONF_DEFAULT_DTB': "", | ||
| 1072 | 'FIT_CONF_PREFIX': "conf-", | ||
| 1035 | 'FIT_DESC': "Kernel fitImage for a dummy distro", | 1073 | 'FIT_DESC': "Kernel fitImage for a dummy distro", |
| 1036 | 'FIT_HASH_ALG': "sha256", | ||
| 1037 | 'FIT_SIGN_ALG': "rsa2048", | ||
| 1038 | 'FIT_PAD_ALG': "pkcs-1.5", | ||
| 1039 | 'FIT_GENERATE_KEYS': "0", | 1074 | 'FIT_GENERATE_KEYS': "0", |
| 1040 | 'FIT_SIGN_NUMBITS': "2048", | 1075 | 'FIT_HASH_ALG': "sha256", |
| 1041 | 'FIT_KEY_GENRSA_ARGS': "-F4", | 1076 | 'FIT_KEY_GENRSA_ARGS': "-F4", |
| 1042 | 'FIT_KEY_REQ_ARGS': "-batch -new", | 1077 | 'FIT_KEY_REQ_ARGS': "-batch -new", |
| 1043 | 'FIT_KEY_SIGN_PKCS': "-x509", | 1078 | 'FIT_KEY_SIGN_PKCS': "-x509", |
| 1079 | 'FIT_LINUX_BIN': "linux.bin", | ||
| 1080 | 'FIT_PAD_ALG': "pkcs-1.5", | ||
| 1081 | 'FIT_SIGN_ALG': "rsa2048", | ||
| 1044 | 'FIT_SIGN_INDIVIDUAL': "0", | 1082 | 'FIT_SIGN_INDIVIDUAL': "0", |
| 1045 | 'FIT_CONF_PREFIX': "conf-", | 1083 | 'FIT_SIGN_NUMBITS': "2048", |
| 1046 | 'FIT_SUPPORTED_INITRAMFS_FSTYPES': "cpio.lz4 cpio.lzo cpio.lzma cpio.xz cpio.zst cpio.gz ext2.gz cpio", | 1084 | 'FIT_SUPPORTED_INITRAMFS_FSTYPES': "cpio.lz4 cpio.lzo cpio.lzma cpio.xz cpio.zst cpio.gz ext2.gz cpio", |
| 1047 | 'FIT_CONF_DEFAULT_DTB': "", | ||
| 1048 | 'FIT_ADDRESS_CELLS': "1", | ||
| 1049 | 'FIT_UBOOT_ENV': "", | 1085 | 'FIT_UBOOT_ENV': "", |
| 1050 | # kernel.bbclass | 1086 | # kernel.bbclass |
| 1051 | 'UBOOT_ENTRYPOINT': "0x20008000", | 1087 | 'UBOOT_ENTRYPOINT': "0x20008000", |
| @@ -1072,6 +1108,9 @@ class FitImagePyTests(KernelFitImageBase): | |||
| 1072 | } | 1108 | } |
| 1073 | if bb_vars_overrides: | 1109 | if bb_vars_overrides: |
| 1074 | bb_vars.update(bb_vars_overrides) | 1110 | bb_vars.update(bb_vars_overrides) |
| 1111 | if logging.DEBUG >= self.logger.level: | ||
| 1112 | debug_output = "\n".join([f"{key} = {value}" for key, value in bb_vars_overrides.items()]) | ||
| 1113 | self.logger.debug("bb_vars overrides:\n%s" % debug_output) | ||
| 1075 | 1114 | ||
| 1076 | root_node = oe.fitimage.ItsNodeRootKernel( | 1115 | root_node = oe.fitimage.ItsNodeRootKernel( |
| 1077 | bb_vars["FIT_DESC"], bb_vars["FIT_ADDRESS_CELLS"], | 1116 | bb_vars["FIT_DESC"], bb_vars["FIT_ADDRESS_CELLS"], |
| @@ -1204,7 +1243,7 @@ class UBootFitImageTests(FitImageTestCase): | |||
| 1204 | req_its_paths.append(['/', 'images', image, 'signature']) | 1243 | req_its_paths.append(['/', 'images', image, 'signature']) |
| 1205 | for configuration in configurations: | 1244 | for configuration in configurations: |
| 1206 | req_its_paths.append(['/', 'configurations', configuration]) | 1245 | req_its_paths.append(['/', 'configurations', configuration]) |
| 1207 | return req_its_paths | 1246 | return (req_its_paths, []) |
| 1208 | 1247 | ||
| 1209 | def _get_req_its_fields(self, bb_vars): | 1248 | def _get_req_its_fields(self, bb_vars): |
| 1210 | loadables = ["uboot"] | 1249 | loadables = ["uboot"] |
| @@ -1730,4 +1769,3 @@ UBOOT_FIT_GENERATE_KEYS = "1" | |||
| 1730 | self.write_config(config) | 1769 | self.write_config(config) |
| 1731 | bb_vars = self._fit_get_bb_vars() | 1770 | bb_vars = self._fit_get_bb_vars() |
| 1732 | self._test_fitimage(bb_vars) | 1771 | self._test_fitimage(bb_vars) |
| 1733 | |||
diff --git a/meta/lib/oeqa/selftest/cases/rust.py b/meta/lib/oeqa/selftest/cases/rust.py index 06acf53e9a..31222e2456 100644 --- a/meta/lib/oeqa/selftest/cases/rust.py +++ b/meta/lib/oeqa/selftest/cases/rust.py | |||
| @@ -122,6 +122,9 @@ class RustSelfTestSystemEmulated(OESelftestTestCase, OEPTestResultTestCase): | |||
| 122 | cmd = "export TARGET_VENDOR=\"-poky\";" | 122 | cmd = "export TARGET_VENDOR=\"-poky\";" |
| 123 | cmd = cmd + " export PATH=%s/recipe-sysroot-native/usr/bin/python3-native:%s/recipe-sysroot-native/usr/bin:%s/recipe-sysroot-native/usr/bin/%s:%s/hosttools:$PATH;" % (rustlibpath, rustlibpath, rustlibpath, tcpath, tmpdir) | 123 | cmd = cmd + " export PATH=%s/recipe-sysroot-native/usr/bin/python3-native:%s/recipe-sysroot-native/usr/bin:%s/recipe-sysroot-native/usr/bin/%s:%s/hosttools:$PATH;" % (rustlibpath, rustlibpath, rustlibpath, tcpath, tmpdir) |
| 124 | cmd = cmd + " export RUST_TARGET_PATH=%s/rust-targets;" % rustlibpath | 124 | cmd = cmd + " export RUST_TARGET_PATH=%s/rust-targets;" % rustlibpath |
| 125 | # Strip debug symbols from test binaries to reduce size (300+ MB -> ~140 MB) | ||
| 126 | # PowerPC mac99 QEMU has 768MB RAM limit, so we need to minimize test binary sizes | ||
| 127 | cmd = cmd + " export RUSTFLAGS='-C strip=debuginfo';" | ||
| 125 | # Trigger testing. | 128 | # Trigger testing. |
| 126 | cmd = cmd + " export TEST_DEVICE_ADDR=\"%s:12345\";" % qemu.ip | 129 | cmd = cmd + " export TEST_DEVICE_ADDR=\"%s:12345\";" % qemu.ip |
| 127 | cmd = cmd + " cd %s; python3 src/bootstrap/bootstrap.py test %s --target %s" % (builddir, testargs, targetsys) | 130 | cmd = cmd + " cd %s; python3 src/bootstrap/bootstrap.py test %s --target %s" % (builddir, testargs, targetsys) |
diff --git a/meta/lib/oeqa/selftest/cases/wic.py b/meta/lib/oeqa/selftest/cases/wic.py index bb4ac23ebf..d7a9b14658 100644 --- a/meta/lib/oeqa/selftest/cases/wic.py +++ b/meta/lib/oeqa/selftest/cases/wic.py | |||
| @@ -1905,6 +1905,42 @@ INITRAMFS_IMAGE = "core-image-initramfs-boot" | |||
| 1905 | self.assertIn("Source parameter 'fill' only works with the '--fixed-size' option, exiting.", result.output) | 1905 | self.assertIn("Source parameter 'fill' only works with the '--fixed-size' option, exiting.", result.output) |
| 1906 | self.assertNotEqual(0, result.status) | 1906 | self.assertNotEqual(0, result.status) |
| 1907 | 1907 | ||
| 1908 | def test_diskid_on_msdos_partition(self): | ||
| 1909 | """Test diksid on msdos partions""" | ||
| 1910 | img = 'core-image-minimal' | ||
| 1911 | diskid = "0xdeadbbef" | ||
| 1912 | with NamedTemporaryFile("w", suffix=".wks") as wks: | ||
| 1913 | wks.writelines(['bootloader --ptable msdos --diskid %s\n' % diskid, | ||
| 1914 | 'part /boot --size=100M --active --fstype=ext4 --label boot\n' | ||
| 1915 | 'part / --source rootfs --fstype=ext4 --label root\n']) | ||
| 1916 | wks.flush() | ||
| 1917 | cmd = "wic create %s -e %s -o %s" % (wks.name, img, self.resultdir) | ||
| 1918 | runCmd(cmd) | ||
| 1919 | wksname = os.path.splitext(os.path.basename(wks.name))[0] | ||
| 1920 | out = glob(os.path.join(self.resultdir, "%s-*direct" % wksname)) | ||
| 1921 | self.assertEqual(1, len(out)) | ||
| 1922 | sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'wic-tools') | ||
| 1923 | result = runCmd("%s/usr/sbin/sfdisk -l %s | grep 'Disk identifier:'" % (sysroot, out[0])) | ||
| 1924 | self.assertEqual("Disk identifier: %s" % diskid.lower(), result.output) | ||
| 1925 | |||
| 1926 | def test_diskid_on_gpt_partition(self): | ||
| 1927 | """Test diksid on gpt partions""" | ||
| 1928 | img = 'core-image-minimal' | ||
| 1929 | diskid = "deadbeef-cafe-babe-f00d-cec2ea4eface" | ||
| 1930 | with NamedTemporaryFile("w", suffix=".wks") as wks: | ||
| 1931 | wks.writelines(['bootloader --ptable gpt --diskid %s\n' % diskid, | ||
| 1932 | 'part /boot --size=100M --active --fstype=ext4 --label boot\n' | ||
| 1933 | 'part / --source rootfs --fstype=ext4 --label root\n']) | ||
| 1934 | wks.flush() | ||
| 1935 | cmd = "wic create %s -e %s -o %s" % (wks.name, img, self.resultdir) | ||
| 1936 | runCmd(cmd) | ||
| 1937 | wksname = os.path.splitext(os.path.basename(wks.name))[0] | ||
| 1938 | out = glob(os.path.join(self.resultdir, "%s-*direct" % wksname)) | ||
| 1939 | self.assertEqual(1, len(out)) | ||
| 1940 | sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'wic-tools') | ||
| 1941 | result = runCmd("%s/usr/sbin/sfdisk -l %s | grep 'Disk identifier:'" % (sysroot, out[0])) | ||
| 1942 | self.assertEqual("Disk identifier: %s" % diskid.upper(), result.output) | ||
| 1943 | |||
| 1908 | class ModifyTests(WicTestCase): | 1944 | class ModifyTests(WicTestCase): |
| 1909 | def test_wic_ls(self): | 1945 | def test_wic_ls(self): |
| 1910 | """Test listing image content using 'wic ls'""" | 1946 | """Test listing image content using 'wic ls'""" |
diff --git a/meta/recipes-bsp/barebox/barebox-common.inc b/meta/recipes-bsp/barebox/barebox-common.inc index 864c6010c9..e41d0858fd 100644 --- a/meta/recipes-bsp/barebox/barebox-common.inc +++ b/meta/recipes-bsp/barebox/barebox-common.inc | |||
| @@ -3,6 +3,6 @@ SECTION = "bootloaders" | |||
| 3 | 3 | ||
| 4 | LIC_FILES_CHKSUM = "file://COPYING;md5=f5125d13e000b9ca1f0d3364286c4192" | 4 | LIC_FILES_CHKSUM = "file://COPYING;md5=f5125d13e000b9ca1f0d3364286c4192" |
| 5 | 5 | ||
| 6 | PV = "2025.08.0" | 6 | PV = "2025.09.0" |
| 7 | SRC_URI = "https://barebox.org/download/barebox-${PV}.tar.bz2" | 7 | SRC_URI = "https://barebox.org/download/barebox-${PV}.tar.bz2" |
| 8 | SRC_URI[sha256sum] = "b32f141ee708e87cb0cc01d626adafc07bd6eb52d62ca969287d7d27462eab32" | 8 | SRC_URI[sha256sum] = "7df1aa47bb7bf1763a729137ac773e69a4052812af094475d739fc63a9295f0d" |
diff --git a/meta/recipes-connectivity/avahi/avahi_0.8.bb b/meta/recipes-connectivity/avahi/avahi_0.8.bb index 220160a7e1..4fe8ba4d28 100644 --- a/meta/recipes-connectivity/avahi/avahi_0.8.bb +++ b/meta/recipes-connectivity/avahi/avahi_0.8.bb | |||
| @@ -35,6 +35,8 @@ SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/avahi-${PV}.tar.gz \ | |||
| 35 | file://CVE-2023-38471-2.patch \ | 35 | file://CVE-2023-38471-2.patch \ |
| 36 | file://CVE-2023-38472.patch \ | 36 | file://CVE-2023-38472.patch \ |
| 37 | file://CVE-2023-38473.patch \ | 37 | file://CVE-2023-38473.patch \ |
| 38 | file://CVE-2024-52616.patch \ | ||
| 39 | file://CVE-2024-52615.patch \ | ||
| 38 | " | 40 | " |
| 39 | 41 | ||
| 40 | GITHUB_BASE_URI = "https://github.com/avahi/avahi/releases/" | 42 | GITHUB_BASE_URI = "https://github.com/avahi/avahi/releases/" |
diff --git a/meta/recipes-connectivity/avahi/files/CVE-2024-52615.patch b/meta/recipes-connectivity/avahi/files/CVE-2024-52615.patch new file mode 100644 index 0000000000..9737f52837 --- /dev/null +++ b/meta/recipes-connectivity/avahi/files/CVE-2024-52615.patch | |||
| @@ -0,0 +1,228 @@ | |||
| 1 | From 4e2e1ea0908d7e6ad7f38ae04fdcdf2411f8b942 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Michal Sekletar <msekleta@redhat.com> | ||
| 3 | Date: Wed, 27 Nov 2024 18:07:32 +0100 | ||
| 4 | Subject: [PATCH] core/wide-area: fix for CVE-2024-52615 | ||
| 5 | |||
| 6 | CVE: CVE-2024-52615 | ||
| 7 | Upstream-Status: Backport [https://github.com/avahi/avahi/commit/4e2e1ea0908d7e6ad7f38ae04fdcdf2411f8b942] | ||
| 8 | |||
| 9 | Signed-off-by: Zhang Peng <peng.zhang1.cn@windriver.com> | ||
| 10 | --- | ||
| 11 | avahi-core/wide-area.c | 128 ++++++++++++++++++++++------------------- | ||
| 12 | 1 file changed, 69 insertions(+), 59 deletions(-) | ||
| 13 | |||
| 14 | diff --git a/avahi-core/wide-area.c b/avahi-core/wide-area.c | ||
| 15 | index 00a15056e..06df7afc6 100644 | ||
| 16 | --- a/avahi-core/wide-area.c | ||
| 17 | +++ b/avahi-core/wide-area.c | ||
| 18 | @@ -81,6 +81,10 @@ struct AvahiWideAreaLookup { | ||
| 19 | |||
| 20 | AvahiAddress dns_server_used; | ||
| 21 | |||
| 22 | + int fd; | ||
| 23 | + AvahiWatch *watch; | ||
| 24 | + AvahiProtocol proto; | ||
| 25 | + | ||
| 26 | AVAHI_LLIST_FIELDS(AvahiWideAreaLookup, lookups); | ||
| 27 | AVAHI_LLIST_FIELDS(AvahiWideAreaLookup, by_key); | ||
| 28 | }; | ||
| 29 | @@ -88,9 +92,6 @@ struct AvahiWideAreaLookup { | ||
| 30 | struct AvahiWideAreaLookupEngine { | ||
| 31 | AvahiServer *server; | ||
| 32 | |||
| 33 | - int fd_ipv4, fd_ipv6; | ||
| 34 | - AvahiWatch *watch_ipv4, *watch_ipv6; | ||
| 35 | - | ||
| 36 | /* Cache */ | ||
| 37 | AVAHI_LLIST_HEAD(AvahiWideAreaCacheEntry, cache); | ||
| 38 | AvahiHashmap *cache_by_key; | ||
| 39 | @@ -125,35 +126,67 @@ static AvahiWideAreaLookup* find_lookup(AvahiWideAreaLookupEngine *e, uint16_t i | ||
| 40 | return l; | ||
| 41 | } | ||
| 42 | |||
| 43 | +static void socket_event(AVAHI_GCC_UNUSED AvahiWatch *w, int fd, AVAHI_GCC_UNUSED AvahiWatchEvent events, void *userdata); | ||
| 44 | + | ||
| 45 | static int send_to_dns_server(AvahiWideAreaLookup *l, AvahiDnsPacket *p) { | ||
| 46 | + AvahiWideAreaLookupEngine *e; | ||
| 47 | AvahiAddress *a; | ||
| 48 | + AvahiServer *s; | ||
| 49 | + AvahiWatch *w; | ||
| 50 | + int r; | ||
| 51 | |||
| 52 | assert(l); | ||
| 53 | assert(p); | ||
| 54 | |||
| 55 | - if (l->engine->n_dns_servers <= 0) | ||
| 56 | + e = l->engine; | ||
| 57 | + assert(e); | ||
| 58 | + | ||
| 59 | + s = e->server; | ||
| 60 | + assert(s); | ||
| 61 | + | ||
| 62 | + if (e->n_dns_servers <= 0) | ||
| 63 | return -1; | ||
| 64 | |||
| 65 | - assert(l->engine->current_dns_server < l->engine->n_dns_servers); | ||
| 66 | + assert(e->current_dns_server < e->n_dns_servers); | ||
| 67 | |||
| 68 | - a = &l->engine->dns_servers[l->engine->current_dns_server]; | ||
| 69 | + a = &e->dns_servers[e->current_dns_server]; | ||
| 70 | l->dns_server_used = *a; | ||
| 71 | |||
| 72 | - if (a->proto == AVAHI_PROTO_INET) { | ||
| 73 | + if (l->fd >= 0) { | ||
| 74 | + /* We are reusing lookup object and sending packet to another server so let's cleanup before we establish connection to new server. */ | ||
| 75 | + s->poll_api->watch_free(l->watch); | ||
| 76 | + l->watch = NULL; | ||
| 77 | |||
| 78 | - if (l->engine->fd_ipv4 < 0) | ||
| 79 | - return -1; | ||
| 80 | + close(l->fd); | ||
| 81 | + l->fd = -EBADF; | ||
| 82 | + } | ||
| 83 | |||
| 84 | - return avahi_send_dns_packet_ipv4(l->engine->fd_ipv4, AVAHI_IF_UNSPEC, p, NULL, &a->data.ipv4, AVAHI_DNS_PORT); | ||
| 85 | + assert(a->proto == AVAHI_PROTO_INET || a->proto == AVAHI_PROTO_INET6); | ||
| 86 | |||
| 87 | - } else { | ||
| 88 | - assert(a->proto == AVAHI_PROTO_INET6); | ||
| 89 | + if (a->proto == AVAHI_PROTO_INET) | ||
| 90 | + r = s->config.use_ipv4 ? avahi_open_unicast_socket_ipv4() : -1; | ||
| 91 | + else | ||
| 92 | + r = s->config.use_ipv6 ? avahi_open_unicast_socket_ipv6() : -1; | ||
| 93 | |||
| 94 | - if (l->engine->fd_ipv6 < 0) | ||
| 95 | - return -1; | ||
| 96 | + if (r < 0) { | ||
| 97 | + avahi_log_error(__FILE__ ": Failed to create socket for wide area lookup"); | ||
| 98 | + return -1; | ||
| 99 | + } | ||
| 100 | |||
| 101 | - return avahi_send_dns_packet_ipv6(l->engine->fd_ipv6, AVAHI_IF_UNSPEC, p, NULL, &a->data.ipv6, AVAHI_DNS_PORT); | ||
| 102 | + w = s->poll_api->watch_new(s->poll_api, r, AVAHI_WATCH_IN, socket_event, l); | ||
| 103 | + if (!w) { | ||
| 104 | + close(r); | ||
| 105 | + avahi_log_error(__FILE__ ": Failed to create socket watch for wide area lookup"); | ||
| 106 | + return -1; | ||
| 107 | } | ||
| 108 | + | ||
| 109 | + l->fd = r; | ||
| 110 | + l->watch = w; | ||
| 111 | + l->proto = a->proto; | ||
| 112 | + | ||
| 113 | + return a->proto == AVAHI_PROTO_INET ? | ||
| 114 | + avahi_send_dns_packet_ipv4(l->fd, AVAHI_IF_UNSPEC, p, NULL, &a->data.ipv4, AVAHI_DNS_PORT): | ||
| 115 | + avahi_send_dns_packet_ipv6(l->fd, AVAHI_IF_UNSPEC, p, NULL, &a->data.ipv6, AVAHI_DNS_PORT); | ||
| 116 | } | ||
| 117 | |||
| 118 | static void next_dns_server(AvahiWideAreaLookupEngine *e) { | ||
| 119 | @@ -246,6 +279,9 @@ AvahiWideAreaLookup *avahi_wide_area_lookup_new( | ||
| 120 | l->dead = 0; | ||
| 121 | l->key = avahi_key_ref(key); | ||
| 122 | l->cname_key = avahi_key_new_cname(l->key); | ||
| 123 | + l->fd = -EBADF; | ||
| 124 | + l->watch = NULL; | ||
| 125 | + l->proto = AVAHI_PROTO_UNSPEC; | ||
| 126 | l->callback = callback; | ||
| 127 | l->userdata = userdata; | ||
| 128 | |||
| 129 | @@ -314,6 +350,12 @@ static void lookup_destroy(AvahiWideAreaLookup *l) { | ||
| 130 | if (l->cname_key) | ||
| 131 | avahi_key_unref(l->cname_key); | ||
| 132 | |||
| 133 | + if (l->watch) | ||
| 134 | + l->engine->server->poll_api->watch_free(l->watch); | ||
| 135 | + | ||
| 136 | + if (l->fd >= 0) | ||
| 137 | + close(l->fd); | ||
| 138 | + | ||
| 139 | avahi_free(l); | ||
| 140 | } | ||
| 141 | |||
| 142 | @@ -572,14 +614,20 @@ static void handle_packet(AvahiWideAreaLookupEngine *e, AvahiDnsPacket *p) { | ||
| 143 | } | ||
| 144 | |||
| 145 | static void socket_event(AVAHI_GCC_UNUSED AvahiWatch *w, int fd, AVAHI_GCC_UNUSED AvahiWatchEvent events, void *userdata) { | ||
| 146 | - AvahiWideAreaLookupEngine *e = userdata; | ||
| 147 | + AvahiWideAreaLookup *l = userdata; | ||
| 148 | + AvahiWideAreaLookupEngine *e = l->engine; | ||
| 149 | AvahiDnsPacket *p = NULL; | ||
| 150 | |||
| 151 | - if (fd == e->fd_ipv4) | ||
| 152 | - p = avahi_recv_dns_packet_ipv4(e->fd_ipv4, NULL, NULL, NULL, NULL, NULL); | ||
| 153 | + assert(l); | ||
| 154 | + assert(e); | ||
| 155 | + assert(l->fd == fd); | ||
| 156 | + | ||
| 157 | + if (l->proto == AVAHI_PROTO_INET) | ||
| 158 | + p = avahi_recv_dns_packet_ipv4(l->fd, NULL, NULL, NULL, NULL, NULL); | ||
| 159 | else { | ||
| 160 | - assert(fd == e->fd_ipv6); | ||
| 161 | - p = avahi_recv_dns_packet_ipv6(e->fd_ipv6, NULL, NULL, NULL, NULL, NULL); | ||
| 162 | + assert(l->proto == AVAHI_PROTO_INET6); | ||
| 163 | + | ||
| 164 | + p = avahi_recv_dns_packet_ipv6(l->fd, NULL, NULL, NULL, NULL, NULL); | ||
| 165 | } | ||
| 166 | |||
| 167 | if (p) { | ||
| 168 | @@ -598,32 +646,6 @@ AvahiWideAreaLookupEngine *avahi_wide_area_engine_new(AvahiServer *s) { | ||
| 169 | e->server = s; | ||
| 170 | e->cleanup_dead = 0; | ||
| 171 | |||
| 172 | - /* Create sockets */ | ||
| 173 | - e->fd_ipv4 = s->config.use_ipv4 ? avahi_open_unicast_socket_ipv4() : -1; | ||
| 174 | - e->fd_ipv6 = s->config.use_ipv6 ? avahi_open_unicast_socket_ipv6() : -1; | ||
| 175 | - | ||
| 176 | - if (e->fd_ipv4 < 0 && e->fd_ipv6 < 0) { | ||
| 177 | - avahi_log_error(__FILE__": Failed to create wide area sockets: %s", strerror(errno)); | ||
| 178 | - | ||
| 179 | - if (e->fd_ipv6 >= 0) | ||
| 180 | - close(e->fd_ipv6); | ||
| 181 | - | ||
| 182 | - if (e->fd_ipv4 >= 0) | ||
| 183 | - close(e->fd_ipv4); | ||
| 184 | - | ||
| 185 | - avahi_free(e); | ||
| 186 | - return NULL; | ||
| 187 | - } | ||
| 188 | - | ||
| 189 | - /* Create watches */ | ||
| 190 | - | ||
| 191 | - e->watch_ipv4 = e->watch_ipv6 = NULL; | ||
| 192 | - | ||
| 193 | - if (e->fd_ipv4 >= 0) | ||
| 194 | - e->watch_ipv4 = s->poll_api->watch_new(e->server->poll_api, e->fd_ipv4, AVAHI_WATCH_IN, socket_event, e); | ||
| 195 | - if (e->fd_ipv6 >= 0) | ||
| 196 | - e->watch_ipv6 = s->poll_api->watch_new(e->server->poll_api, e->fd_ipv6, AVAHI_WATCH_IN, socket_event, e); | ||
| 197 | - | ||
| 198 | e->n_dns_servers = e->current_dns_server = 0; | ||
| 199 | |||
| 200 | /* Initialize cache */ | ||
| 201 | @@ -651,18 +673,6 @@ void avahi_wide_area_engine_free(AvahiWideAreaLookupEngine *e) { | ||
| 202 | avahi_hashmap_free(e->lookups_by_id); | ||
| 203 | avahi_hashmap_free(e->lookups_by_key); | ||
| 204 | |||
| 205 | - if (e->watch_ipv4) | ||
| 206 | - e->server->poll_api->watch_free(e->watch_ipv4); | ||
| 207 | - | ||
| 208 | - if (e->watch_ipv6) | ||
| 209 | - e->server->poll_api->watch_free(e->watch_ipv6); | ||
| 210 | - | ||
| 211 | - if (e->fd_ipv6 >= 0) | ||
| 212 | - close(e->fd_ipv6); | ||
| 213 | - | ||
| 214 | - if (e->fd_ipv4 >= 0) | ||
| 215 | - close(e->fd_ipv4); | ||
| 216 | - | ||
| 217 | avahi_free(e); | ||
| 218 | } | ||
| 219 | |||
| 220 | @@ -680,7 +690,7 @@ void avahi_wide_area_set_servers(AvahiWideAreaLookupEngine *e, const AvahiAddres | ||
| 221 | |||
| 222 | if (a) { | ||
| 223 | for (e->n_dns_servers = 0; n > 0 && e->n_dns_servers < AVAHI_WIDE_AREA_SERVERS_MAX; a++, n--) | ||
| 224 | - if ((a->proto == AVAHI_PROTO_INET && e->fd_ipv4 >= 0) || (a->proto == AVAHI_PROTO_INET6 && e->fd_ipv6 >= 0)) | ||
| 225 | + if (a->proto == AVAHI_PROTO_INET || a->proto == AVAHI_PROTO_INET6) | ||
| 226 | e->dns_servers[e->n_dns_servers++] = *a; | ||
| 227 | } else { | ||
| 228 | assert(n == 0); | ||
diff --git a/meta/recipes-connectivity/avahi/files/CVE-2024-52616.patch b/meta/recipes-connectivity/avahi/files/CVE-2024-52616.patch new file mode 100644 index 0000000000..a156f98728 --- /dev/null +++ b/meta/recipes-connectivity/avahi/files/CVE-2024-52616.patch | |||
| @@ -0,0 +1,104 @@ | |||
| 1 | From f8710bdc8b29ee1176fe3bfaeabebbda1b7a79f7 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com> | ||
| 3 | Date: Mon, 11 Nov 2024 00:56:09 +0100 | ||
| 4 | Subject: [PATCH] Properly randomize query id of DNS packets | ||
| 5 | |||
| 6 | CVE: CVE-2024-52616 | ||
| 7 | Upstream-Status: Backport [https://github.com/avahi/avahi/commit/f8710bdc8b29ee1176fe3bfaeabebbda1b7a79f7] | ||
| 8 | |||
| 9 | Signed-off-by: Zhang Peng <peng.zhang1.cn@windriver.com> | ||
| 10 | --- | ||
| 11 | avahi-core/wide-area.c | 36 ++++++++++++++++++++++++++++-------- | ||
| 12 | configure.ac | 3 ++- | ||
| 13 | 2 files changed, 30 insertions(+), 9 deletions(-) | ||
| 14 | |||
| 15 | diff --git a/avahi-core/wide-area.c b/avahi-core/wide-area.c | ||
| 16 | index 971f5e714..00a15056e 100644 | ||
| 17 | --- a/avahi-core/wide-area.c | ||
| 18 | +++ b/avahi-core/wide-area.c | ||
| 19 | @@ -40,6 +40,13 @@ | ||
| 20 | #include "addr-util.h" | ||
| 21 | #include "rr-util.h" | ||
| 22 | |||
| 23 | +#ifdef HAVE_SYS_RANDOM_H | ||
| 24 | +#include <sys/random.h> | ||
| 25 | +#endif | ||
| 26 | +#ifndef HAVE_GETRANDOM | ||
| 27 | +# define getrandom(d, len, flags) (-1) | ||
| 28 | +#endif | ||
| 29 | + | ||
| 30 | #define CACHE_ENTRIES_MAX 500 | ||
| 31 | |||
| 32 | typedef struct AvahiWideAreaCacheEntry AvahiWideAreaCacheEntry; | ||
| 33 | @@ -84,8 +91,6 @@ struct AvahiWideAreaLookupEngine { | ||
| 34 | int fd_ipv4, fd_ipv6; | ||
| 35 | AvahiWatch *watch_ipv4, *watch_ipv6; | ||
| 36 | |||
| 37 | - uint16_t next_id; | ||
| 38 | - | ||
| 39 | /* Cache */ | ||
| 40 | AVAHI_LLIST_HEAD(AvahiWideAreaCacheEntry, cache); | ||
| 41 | AvahiHashmap *cache_by_key; | ||
| 42 | @@ -201,6 +206,26 @@ static void sender_timeout_callback(AvahiTimeEvent *e, void *userdata) { | ||
| 43 | avahi_time_event_update(e, avahi_elapse_time(&tv, 1000, 0)); | ||
| 44 | } | ||
| 45 | |||
| 46 | +static uint16_t get_random_uint16(void) { | ||
| 47 | + uint16_t next_id; | ||
| 48 | + | ||
| 49 | + if (getrandom(&next_id, sizeof(next_id), 0) == -1) | ||
| 50 | + next_id = (uint16_t) rand(); | ||
| 51 | + return next_id; | ||
| 52 | +} | ||
| 53 | + | ||
| 54 | +static uint16_t avahi_wide_area_next_id(AvahiWideAreaLookupEngine *e) { | ||
| 55 | + uint16_t next_id; | ||
| 56 | + | ||
| 57 | + next_id = get_random_uint16(); | ||
| 58 | + while (find_lookup(e, next_id)) { | ||
| 59 | + /* This ID is already used, get new. */ | ||
| 60 | + next_id = get_random_uint16(); | ||
| 61 | + } | ||
| 62 | + return next_id; | ||
| 63 | +} | ||
| 64 | + | ||
| 65 | + | ||
| 66 | AvahiWideAreaLookup *avahi_wide_area_lookup_new( | ||
| 67 | AvahiWideAreaLookupEngine *e, | ||
| 68 | AvahiKey *key, | ||
| 69 | @@ -227,11 +252,7 @@ AvahiWideAreaLookup *avahi_wide_area_lookup_new( | ||
| 70 | /* If more than 65K wide area quries are issued simultaneously, | ||
| 71 | * this will break. This should be limited by some higher level */ | ||
| 72 | |||
| 73 | - for (;; e->next_id++) | ||
| 74 | - if (!find_lookup(e, e->next_id)) | ||
| 75 | - break; /* This ID is not yet used. */ | ||
| 76 | - | ||
| 77 | - l->id = e->next_id++; | ||
| 78 | + l->id = avahi_wide_area_next_id(e); | ||
| 79 | |||
| 80 | /* We keep the packet around in case we need to repeat our query */ | ||
| 81 | l->packet = avahi_dns_packet_new(0); | ||
| 82 | @@ -604,7 +625,6 @@ AvahiWideAreaLookupEngine *avahi_wide_area_engine_new(AvahiServer *s) { | ||
| 83 | e->watch_ipv6 = s->poll_api->watch_new(e->server->poll_api, e->fd_ipv6, AVAHI_WATCH_IN, socket_event, e); | ||
| 84 | |||
| 85 | e->n_dns_servers = e->current_dns_server = 0; | ||
| 86 | - e->next_id = (uint16_t) rand(); | ||
| 87 | |||
| 88 | /* Initialize cache */ | ||
| 89 | AVAHI_LLIST_HEAD_INIT(AvahiWideAreaCacheEntry, e->cache); | ||
| 90 | diff --git a/configure.ac b/configure.ac | ||
| 91 | index a3211b80e..31bce3d76 100644 | ||
| 92 | --- a/configure.ac | ||
| 93 | +++ b/configure.ac | ||
| 94 | @@ -367,7 +367,8 @@ AC_FUNC_SELECT_ARGTYPES | ||
| 95 | # whether libc's malloc does too. (Same for realloc.) | ||
| 96 | #AC_FUNC_MALLOC | ||
| 97 | #AC_FUNC_REALLOC | ||
| 98 | -AC_CHECK_FUNCS([gethostname memchr memmove memset mkdir select socket strchr strcspn strdup strerror strrchr strspn strstr uname setresuid setreuid setresgid setregid strcasecmp gettimeofday putenv strncasecmp strlcpy gethostbyname seteuid setegid setproctitle getprogname]) | ||
| 99 | +AC_CHECK_FUNCS([gethostname memchr memmove memset mkdir select socket strchr strcspn strdup strerror strrchr strspn strstr uname setresuid setreuid setresgid setregid strcasecmp gettimeofday putenv strncasecmp strlcpy gethostbyname seteuid setegid setproctitle getprogname getrandom]) | ||
| 100 | +AC_CHECK_HEADERS([sys/random.h]) | ||
| 101 | |||
| 102 | AC_FUNC_CHOWN | ||
| 103 | AC_FUNC_STAT | ||
| 104 | |||
diff --git a/meta/recipes-connectivity/bind/bind_9.20.13.bb b/meta/recipes-connectivity/bind/bind_9.20.15.bb index de39924c3d..1195b5bdc3 100644 --- a/meta/recipes-connectivity/bind/bind_9.20.13.bb +++ b/meta/recipes-connectivity/bind/bind_9.20.15.bb | |||
| @@ -20,7 +20,7 @@ SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.xz \ | |||
| 20 | file://0001-avoid-start-failure-with-bind-user.patch \ | 20 | file://0001-avoid-start-failure-with-bind-user.patch \ |
| 21 | " | 21 | " |
| 22 | 22 | ||
| 23 | SRC_URI[sha256sum] = "151f9376ead317e646a5d0c9f01c060386d891118d7437a7f829bb9727c7b34c" | 23 | SRC_URI[sha256sum] = "d62b38fae48ba83fca6181112d0c71018d8b0f2ce285dc79dc6a0367722ccabb" |
| 24 | 24 | ||
| 25 | UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/" | 25 | UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/" |
| 26 | # follow the ESV versions divisible by 2 | 26 | # follow the ESV versions divisible by 2 |
diff --git a/meta/recipes-connectivity/openssh/openssh_10.0p1.bb b/meta/recipes-connectivity/openssh/openssh_10.1p1.bb index 2f446b5540..83b6183858 100644 --- a/meta/recipes-connectivity/openssh/openssh_10.0p1.bb +++ b/meta/recipes-connectivity/openssh/openssh_10.1p1.bb | |||
| @@ -26,7 +26,7 @@ SRC_URI = "https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.ta | |||
| 26 | file://0001-regress-banner.sh-log-input-and-output-files-on-erro.patch \ | 26 | file://0001-regress-banner.sh-log-input-and-output-files-on-erro.patch \ |
| 27 | file://0001-regress-test-exec-use-the-absolute-path-in-the-SSH-e.patch \ | 27 | file://0001-regress-test-exec-use-the-absolute-path-in-the-SSH-e.patch \ |
| 28 | " | 28 | " |
| 29 | SRC_URI[sha256sum] = "021a2e709a0edf4250b1256bd5a9e500411a90dddabea830ed59cef90eb9d85c" | 29 | SRC_URI[sha256sum] = "b9fc7a2b82579467a6f2f43e4a81c8e1dfda614ddb4f9b255aafd7020bbf0758" |
| 30 | 30 | ||
| 31 | CVE_STATUS[CVE-2007-2768] = "not-applicable-config: This CVE is specific to OpenSSH with the pam opie which we don't build/use here." | 31 | CVE_STATUS[CVE-2007-2768] = "not-applicable-config: This CVE is specific to OpenSSH with the pam opie which we don't build/use here." |
| 32 | 32 | ||
diff --git a/meta/recipes-devtools/binutils/binutils-cross-canadian.inc b/meta/recipes-devtools/binutils/binutils-cross-canadian.inc index 7d7ffe92ce..d28dcaf402 100644 --- a/meta/recipes-devtools/binutils/binutils-cross-canadian.inc +++ b/meta/recipes-devtools/binutils/binutils-cross-canadian.inc | |||
| @@ -21,9 +21,10 @@ LDFLAGS:append:toolchain-clang = " -fuse-ld=bfd" | |||
| 21 | do_install () { | 21 | do_install () { |
| 22 | autotools_do_install | 22 | autotools_do_install |
| 23 | 23 | ||
| 24 | # We're not interested in the libs or headers, these would come from the | 24 | # We're not interested in the plugins, libs, or headers, these would come from the |
| 25 | # nativesdk or target version of the binutils recipe | 25 | # nativesdk or target version of the binutils recipe |
| 26 | rm -rf ${D}${prefix}/${TARGET_SYS} | 26 | rm -rf ${D}${prefix}/${TARGET_SYS} |
| 27 | rm -rf ${D}${libdir}/bfd-plugins | ||
| 27 | rm -f ${D}${libdir}/libbfd* | 28 | rm -f ${D}${libdir}/libbfd* |
| 28 | rm -f ${D}${libdir}/libiberty* | 29 | rm -f ${D}${libdir}/libiberty* |
| 29 | rm -f ${D}${libdir}/libopcodes* | 30 | rm -f ${D}${libdir}/libopcodes* |
diff --git a/meta/recipes-devtools/fmt/fmt/run-ptest b/meta/recipes-devtools/fmt/fmt/run-ptest index a069e4543c..ba1e9fc51f 100644 --- a/meta/recipes-devtools/fmt/fmt/run-ptest +++ b/meta/recipes-devtools/fmt/fmt/run-ptest | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | #!/bin/sh | 1 | #!/bin/sh |
| 2 | 2 | ||
| 3 | for t in `ls ./*-test`; do | 3 | for t in *-test; do |
| 4 | ./$t && echo PASS: $t || echo FAIL: $t | 4 | ./$t && echo PASS: $t || echo FAIL: $t |
| 5 | done | 5 | done |
diff --git a/meta/recipes-devtools/fmt/fmt_11.2.0.bb b/meta/recipes-devtools/fmt/fmt_11.2.0.bb index 06ba523ada..133e1ae77d 100644 --- a/meta/recipes-devtools/fmt/fmt_11.2.0.bb +++ b/meta/recipes-devtools/fmt/fmt_11.2.0.bb | |||
| @@ -17,7 +17,7 @@ EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON" | |||
| 17 | EXTRA_OECMAKE += "${@bb.utils.contains('PTEST_ENABLED', '1', '-DFMT_TEST=ON', '', d)}" | 17 | EXTRA_OECMAKE += "${@bb.utils.contains('PTEST_ENABLED', '1', '-DFMT_TEST=ON', '', d)}" |
| 18 | 18 | ||
| 19 | do_install_ptest(){ | 19 | do_install_ptest(){ |
| 20 | for t in `ls ${B}/bin/*-test`; do | 20 | for t in ${B}/bin/*-test; do |
| 21 | install $t ${D}${PTEST_PATH}/ | 21 | install $t ${D}${PTEST_PATH}/ |
| 22 | done | 22 | done |
| 23 | } | 23 | } |
diff --git a/meta/recipes-devtools/python/python3-hypothesis_6.139.2.bb b/meta/recipes-devtools/python/python3-hypothesis_6.142.2.bb index b03cc22fac..5ba7c66577 100644 --- a/meta/recipes-devtools/python/python3-hypothesis_6.139.2.bb +++ b/meta/recipes-devtools/python/python3-hypothesis_6.142.2.bb | |||
| @@ -13,7 +13,7 @@ SRC_URI += " \ | |||
| 13 | file://test_rle.py \ | 13 | file://test_rle.py \ |
| 14 | " | 14 | " |
| 15 | 15 | ||
| 16 | SRC_URI[sha256sum] = "2dc2ff36ea977a9cb7fb68f24a5dbf5d673b88a2e502212676eafe09b699f511" | 16 | SRC_URI[sha256sum] = "c4204a2ce327e45fbaf83a2b58142a285135698dc1d08e368ae9901f06b49e64" |
| 17 | 17 | ||
| 18 | RDEPENDS:${PN} += " \ | 18 | RDEPENDS:${PN} += " \ |
| 19 | python3-attrs \ | 19 | python3-attrs \ |
diff --git a/meta/recipes-devtools/python/python3-referencing_0.36.2.bb b/meta/recipes-devtools/python/python3-referencing_0.37.0.bb index 388c1887fb..a75f5f80d4 100644 --- a/meta/recipes-devtools/python/python3-referencing_0.36.2.bb +++ b/meta/recipes-devtools/python/python3-referencing_0.37.0.bb | |||
| @@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/python-jsonschema/referencing" | |||
| 3 | LICENSE = "MIT" | 3 | LICENSE = "MIT" |
| 4 | LIC_FILES_CHKSUM = "file://COPYING;md5=93eb9740964b59e9ba30281255b044e2" | 4 | LIC_FILES_CHKSUM = "file://COPYING;md5=93eb9740964b59e9ba30281255b044e2" |
| 5 | 5 | ||
| 6 | SRC_URI[sha256sum] = "df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa" | 6 | SRC_URI[sha256sum] = "44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8" |
| 7 | 7 | ||
| 8 | inherit pypi python_hatchling | 8 | inherit pypi python_hatchling |
| 9 | 9 | ||
diff --git a/meta/recipes-devtools/python/python3-urllib3_2.5.0.bb b/meta/recipes-devtools/python/python3-urllib3_2.5.0.bb index a4f3995730..62fdf8e345 100644 --- a/meta/recipes-devtools/python/python3-urllib3_2.5.0.bb +++ b/meta/recipes-devtools/python/python3-urllib3_2.5.0.bb | |||
| @@ -7,18 +7,23 @@ SRC_URI[sha256sum] = "3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbf | |||
| 7 | 7 | ||
| 8 | inherit pypi python_hatchling | 8 | inherit pypi python_hatchling |
| 9 | 9 | ||
| 10 | DEPENDS += " \ | 10 | DEPENDS += "python3-hatch-vcs-native" |
| 11 | python3-hatch-vcs-native \ | 11 | |
| 12 | " | 12 | PACKAGECONFIG ??= "" |
| 13 | # This is not recommended for use upstream, and has large dependencies | ||
| 14 | PACKAGECONFIG[openssl] = ",,,python3-cryptography python3-pyopenssl" | ||
| 15 | |||
| 16 | do_install:append() { | ||
| 17 | if ! ${@bb.utils.contains("PACKAGECONFIG", "openssl", "true", "false", d)}; then | ||
| 18 | rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/urllib3/contrib/pyopenssl.py | ||
| 19 | fi | ||
| 20 | } | ||
| 13 | 21 | ||
| 14 | RDEPENDS:${PN} += "\ | 22 | RDEPENDS:${PN} += "\ |
| 15 | python3-certifi \ | ||
| 16 | python3-cryptography \ | ||
| 17 | python3-email \ | ||
| 18 | python3-idna \ | 23 | python3-idna \ |
| 24 | python3-email \ | ||
| 19 | python3-json \ | 25 | python3-json \ |
| 20 | python3-netclient \ | 26 | python3-netclient \ |
| 21 | python3-pyopenssl \ | ||
| 22 | python3-threading \ | 27 | python3-threading \ |
| 23 | python3-logging \ | 28 | python3-logging \ |
| 24 | " | 29 | " |
diff --git a/meta/recipes-devtools/qemu/qemu-native_10.0.2.bb b/meta/recipes-devtools/qemu/qemu-native_10.0.6.bb index 26fa84c180..26fa84c180 100644 --- a/meta/recipes-devtools/qemu/qemu-native_10.0.2.bb +++ b/meta/recipes-devtools/qemu/qemu-native_10.0.6.bb | |||
diff --git a/meta/recipes-devtools/qemu/qemu-system-native_10.0.2.bb b/meta/recipes-devtools/qemu/qemu-system-native_10.0.6.bb index 22462e2499..22462e2499 100644 --- a/meta/recipes-devtools/qemu/qemu-system-native_10.0.2.bb +++ b/meta/recipes-devtools/qemu/qemu-system-native_10.0.6.bb | |||
diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc index 2ee76e9a7c..3ed5dcc671 100644 --- a/meta/recipes-devtools/qemu/qemu.inc +++ b/meta/recipes-devtools/qemu/qemu.inc | |||
| @@ -31,7 +31,6 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \ | |||
| 31 | file://0008-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch \ | 31 | file://0008-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch \ |
| 32 | file://0010-configure-lookup-meson-exutable-from-PATH.patch \ | 32 | file://0010-configure-lookup-meson-exutable-from-PATH.patch \ |
| 33 | file://0011-qemu-Ensure-pip-and-the-python-venv-aren-t-used-for-.patch \ | 33 | file://0011-qemu-Ensure-pip-and-the-python-venv-aren-t-used-for-.patch \ |
| 34 | file://0012-Remove-deprecated-get_event_loop-calls.patch \ | ||
| 35 | file://qemu-guest-agent.init \ | 34 | file://qemu-guest-agent.init \ |
| 36 | file://qemu-guest-agent.udev \ | 35 | file://qemu-guest-agent.udev \ |
| 37 | " | 36 | " |
| @@ -39,7 +38,7 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \ | |||
| 39 | UPSTREAM_CHECK_URI = "https://www.qemu.org" | 38 | UPSTREAM_CHECK_URI = "https://www.qemu.org" |
| 40 | UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar" | 39 | UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar" |
| 41 | 40 | ||
| 42 | SRC_URI[sha256sum] = "ef786f2398cb5184600f69aef4d5d691efd44576a3cff4126d38d4c6fec87759" | 41 | SRC_URI[sha256sum] = "c7c40c4b166871e775804e97fce4da65665d1cc93a5c6c9e2ede9d9ee992e7a0" |
| 43 | 42 | ||
| 44 | CVE_STATUS[CVE-2007-0998] = "not-applicable-config: The VNC server can expose host files uder some circumstances. We don't enable it by default." | 43 | CVE_STATUS[CVE-2007-0998] = "not-applicable-config: The VNC server can expose host files uder some circumstances. We don't enable it by default." |
| 45 | 44 | ||
| @@ -51,6 +50,7 @@ CVE_STATUS[CVE-2023-2680] = "not-applicable-platform: RHEL specific issue." | |||
| 51 | 50 | ||
| 52 | # NVD DB has this CVE as version-less (with "-") | 51 | # NVD DB has this CVE as version-less (with "-") |
| 53 | CVE_STATUS[CVE-2024-6505] = "fixed-version: this CVE is fixed since 9.1.0" | 52 | CVE_STATUS[CVE-2024-6505] = "fixed-version: this CVE is fixed since 9.1.0" |
| 53 | CVE_STATUS[CVE-2024-8354] = "fixed-version: this CVE is fixed since 10.0.5" | ||
| 54 | 54 | ||
| 55 | CVE_STATUS[CVE-2023-1386] = "disputed: not an issue as per https://bugzilla.redhat.com/show_bug.cgi?id=2223985" | 55 | CVE_STATUS[CVE-2023-1386] = "disputed: not an issue as per https://bugzilla.redhat.com/show_bug.cgi?id=2223985" |
| 56 | 56 | ||
diff --git a/meta/recipes-devtools/qemu/qemu/0012-Remove-deprecated-get_event_loop-calls.patch b/meta/recipes-devtools/qemu/qemu/0012-Remove-deprecated-get_event_loop-calls.patch deleted file mode 100644 index 64816fe7d9..0000000000 --- a/meta/recipes-devtools/qemu/qemu/0012-Remove-deprecated-get_event_loop-calls.patch +++ /dev/null | |||
| @@ -1,85 +0,0 @@ | |||
| 1 | From 5240406747fd43886618ae8194153e6fc957a82a Mon Sep 17 00:00:00 2001 | ||
| 2 | From: John Snow <jsnow@redhat.com> | ||
| 3 | Date: Tue, 13 Aug 2024 09:35:30 -0400 | ||
| 4 | Subject: [PATCH] Remove deprecated get_event_loop calls | ||
| 5 | |||
| 6 | This method was deprecated in 3.12 because it ordinarily should not be | ||
| 7 | used from coroutines; if there is not a currently running event loop, | ||
| 8 | this automatically creates a new event loop - which is usually not what | ||
| 9 | you want from code that would ever run in the bottom half. | ||
| 10 | |||
| 11 | In our case, we do want this behavior in two places: | ||
| 12 | |||
| 13 | (1) The synchronous shim, for convenience: this allows fully sync | ||
| 14 | programs to use QEMUMonitorProtocol() without needing to set up an event | ||
| 15 | loop beforehand. This is intentional to fully box in the async | ||
| 16 | complexities into the legacy sync shim. | ||
| 17 | |||
| 18 | (2) The qmp_tui shell; instead of relying on asyncio.run to create and | ||
| 19 | run an asyncio program, we need to be able to pass the current asyncio | ||
| 20 | loop to urwid setup functions. For convenience, again, we create one if | ||
| 21 | one is not present to simplify the creation of the TUI appliance. | ||
| 22 | |||
| 23 | The remaining user of get_event_loop() was in fact one of the erroneous | ||
| 24 | users that should not have been using this function: if there's no | ||
| 25 | running event loop inside of a coroutine, you're in big trouble :) | ||
| 26 | |||
| 27 | Upstream-Status: Backport [https://gitlab.com/qemu-project/python-qemu-qmp/-/merge_requests/33] | ||
| 28 | Signed-off-by: John Snow <jsnow@redhat.com> | ||
| 29 | --- | ||
| 30 | python/qemu/qmp/legacy.py | 9 ++++++++- | ||
| 31 | python/qemu/qmp/qmp_tui.py | 7 ++++++- | ||
| 32 | python/tests/protocol.py | 2 +- | ||
| 33 | 3 files changed, 15 insertions(+), 3 deletions(-) | ||
| 34 | |||
| 35 | diff --git a/python/qemu/qmp/legacy.py b/python/qemu/qmp/legacy.py | ||
| 36 | index 22a2b56..ea9b803 100644 | ||
| 37 | --- a/python/qemu/qmp/legacy.py | ||
| 38 | +++ b/python/qemu/qmp/legacy.py | ||
| 39 | @@ -86,7 +86,14 @@ def __init__(self, | ||
| 40 | "server argument should be False when passing a socket") | ||
| 41 | |||
| 42 | self._qmp = QMPClient(nickname) | ||
| 43 | - self._aloop = asyncio.get_event_loop() | ||
| 44 | + | ||
| 45 | + try: | ||
| 46 | + self._aloop = asyncio.get_running_loop() | ||
| 47 | + except RuntimeError: | ||
| 48 | + # No running loop; since this is a sync shim likely to be | ||
| 49 | + # used in fully sync programs, create one if neccessary. | ||
| 50 | + self._aloop = asyncio.get_event_loop_policy().get_event_loop() | ||
| 51 | + | ||
| 52 | self._address = address | ||
| 53 | self._timeout: Optional[float] = None | ||
| 54 | |||
| 55 | diff --git a/python/qemu/qmp/qmp_tui.py b/python/qemu/qmp/qmp_tui.py | ||
| 56 | index 2d9ebbd..d11b9fc 100644 | ||
| 57 | --- a/python/qemu/qmp/qmp_tui.py | ||
| 58 | +++ b/python/qemu/qmp/qmp_tui.py | ||
| 59 | @@ -377,7 +377,12 @@ def run(self, debug: bool = False) -> None: | ||
| 60 | screen = urwid.raw_display.Screen() | ||
| 61 | screen.set_terminal_properties(256) | ||
| 62 | |||
| 63 | - self.aloop = asyncio.get_event_loop() | ||
| 64 | + try: | ||
| 65 | + self.aloop = asyncio.get_running_loop() | ||
| 66 | + except RuntimeError: | ||
| 67 | + # No running asyncio event loop. Create one if necessary. | ||
| 68 | + self.aloop = asyncio.get_event_loop_policy().get_event_loop() | ||
| 69 | + | ||
| 70 | self.aloop.set_debug(debug) | ||
| 71 | |||
| 72 | # Gracefully handle SIGTERM and SIGINT signals | ||
| 73 | diff --git a/python/tests/protocol.py b/python/tests/protocol.py | ||
| 74 | index 56c4d44..8dcef57 100644 | ||
| 75 | --- a/python/tests/protocol.py | ||
| 76 | +++ b/python/tests/protocol.py | ||
| 77 | @@ -228,7 +228,7 @@ def async_test(async_test_method): | ||
| 78 | Decorator; adds SetUp and TearDown to async tests. | ||
| 79 | """ | ||
| 80 | async def _wrapper(self, *args, **kwargs): | ||
| 81 | - loop = asyncio.get_event_loop() | ||
| 82 | + loop = asyncio.get_running_loop() | ||
| 83 | loop.set_debug(True) | ||
| 84 | |||
| 85 | await self._asyncSetUp() | ||
diff --git a/meta/recipes-devtools/qemu/qemu_10.0.2.bb b/meta/recipes-devtools/qemu/qemu_10.0.6.bb index 5d544d8d13..5d544d8d13 100644 --- a/meta/recipes-devtools/qemu/qemu_10.0.2.bb +++ b/meta/recipes-devtools/qemu/qemu_10.0.6.bb | |||
diff --git a/meta/recipes-extended/tar/tar_1.35.bb b/meta/recipes-extended/tar/tar_1.35.bb index ea0993a909..d463eff97d 100644 --- a/meta/recipes-extended/tar/tar_1.35.bb +++ b/meta/recipes-extended/tar/tar_1.35.bb | |||
| @@ -94,3 +94,7 @@ BBCLASSEXTEND = "native nativesdk" | |||
| 94 | # Avoid false positives from CVEs in node-tar package | 94 | # Avoid false positives from CVEs in node-tar package |
| 95 | # For example CVE-2021-{32803,32804,37701,37712,37713} | 95 | # For example CVE-2021-{32803,32804,37701,37712,37713} |
| 96 | CVE_PRODUCT = "gnu:tar" | 96 | CVE_PRODUCT = "gnu:tar" |
| 97 | |||
| 98 | # A test uses cmp to compare two 8GB files. Busybox's cmp does the job usually, but it is much slower than | ||
| 99 | # diffutils' cmp, and the test times out when there is a high load on the host machine. | ||
| 100 | RDEPENDS:${PN}-ptest += "diffutils" | ||
diff --git a/meta/recipes-graphics/images/core-image-weston.bb b/meta/recipes-graphics/images/core-image-weston.bb index 62305cc1ce..96d9c34bfa 100644 --- a/meta/recipes-graphics/images/core-image-weston.bb +++ b/meta/recipes-graphics/images/core-image-weston.bb | |||
| @@ -4,9 +4,11 @@ IMAGE_FEATURES += "splash package-management ssh-server-dropbear hwcodecs weston | |||
| 4 | 4 | ||
| 5 | LICENSE = "MIT" | 5 | LICENSE = "MIT" |
| 6 | 6 | ||
| 7 | inherit core-image | 7 | inherit core-image features_check |
| 8 | 8 | ||
| 9 | CORE_IMAGE_BASE_INSTALL += "gtk+3-demo" | 9 | CORE_IMAGE_BASE_INSTALL += "gtk+3-demo" |
| 10 | CORE_IMAGE_BASE_INSTALL += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'weston-xwayland matchbox-terminal', '', d)}" | 10 | CORE_IMAGE_BASE_INSTALL += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'weston-xwayland matchbox-terminal', '', d)}" |
| 11 | 11 | ||
| 12 | QB_MEM = "-m 512" | 12 | QB_MEM = "-m 512" |
| 13 | |||
| 14 | REQUIRED_DISTRO_FEATURES = "wayland" | ||
diff --git a/meta/recipes-graphics/x11-common/x11-volatiles.bb b/meta/recipes-graphics/x11-common/x11-volatiles.bb new file mode 100644 index 0000000000..23bd6e1661 --- /dev/null +++ b/meta/recipes-graphics/x11-common/x11-volatiles.bb | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | SUMMARY = "Xserver Volatile Directories" | ||
| 2 | LICENSE = "GPL-2.0-only" | ||
| 3 | LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" | ||
| 4 | SECTION = "x11" | ||
| 5 | |||
| 6 | SRC_URI = "file://02_x11" | ||
| 7 | |||
| 8 | S = "${UNPACKDIR}" | ||
| 9 | |||
| 10 | inherit bin_package features_check | ||
| 11 | |||
| 12 | REQUIRED_DISTRO_FEATURES = "x11" | ||
| 13 | CONFLICT_DISTRO_FEATURES = "systemd" | ||
| 14 | |||
| 15 | do_install() { | ||
| 16 | install -d ${D}${sysconfdir}/default/volatiles | ||
| 17 | install -m 0644 ${UNPACKDIR}/02_x11 ${D}${sysconfdir}/default/volatiles | ||
| 18 | } | ||
| 19 | |||
| 20 | FILES:${PN} += "${sysconfdir}/default/volatiles" | ||
diff --git a/meta/recipes-graphics/x11-common/x11-volatiles/02_x11 b/meta/recipes-graphics/x11-common/x11-volatiles/02_x11 new file mode 100644 index 0000000000..35c3698479 --- /dev/null +++ b/meta/recipes-graphics/x11-common/x11-volatiles/02_x11 | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | # Volatile entries to match systemd | ||
| 2 | # https://github.com/systemd/systemd/blob/main/tmpfiles.d/x11.conf | ||
| 3 | d root root 1777 /tmp/.X11-unix none | ||
| 4 | d root root 1777 /tmp/.ICE-unix none | ||
| 5 | d root root 1777 /tmp/.XIM-unix none | ||
| 6 | d root root 1777 /tmp/.font-unix none | ||
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.18.bb b/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.18.bb index 14c45be432..3c8cb0173f 100644 --- a/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.18.bb +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.18.bb | |||
| @@ -26,3 +26,5 @@ RCONFLICTS:${PN} = "${PN}-extension-dri \ | |||
| 26 | ${PN}-extension-extmod \ | 26 | ${PN}-extension-extmod \ |
| 27 | ${PN}-extension-dbe \ | 27 | ${PN}-extension-dbe \ |
| 28 | " | 28 | " |
| 29 | |||
| 30 | RDEPENDS:${PN} += "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "", "x11-volatiles", d)}" | ||
diff --git a/meta/recipes-graphics/xwayland/xwayland_24.1.8.bb b/meta/recipes-graphics/xwayland/xwayland_24.1.8.bb index 900da524b3..a621af1a7f 100644 --- a/meta/recipes-graphics/xwayland/xwayland_24.1.8.bb +++ b/meta/recipes-graphics/xwayland/xwayland_24.1.8.bb | |||
| @@ -47,4 +47,4 @@ do_install:append() { | |||
| 47 | 47 | ||
| 48 | FILES:${PN} += "${libdir}/xorg/protocol.txt" | 48 | FILES:${PN} += "${libdir}/xorg/protocol.txt" |
| 49 | 49 | ||
| 50 | RDEPENDS:${PN} += "xkbcomp" | 50 | RDEPENDS:${PN} += "xkbcomp ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "", "x11-volatiles", d)}" |
diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_20251021.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_20251021.bb index 70fd983b0c..66d3be90e7 100644 --- a/meta/recipes-kernel/linux-firmware/linux-firmware_20251021.bb +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_20251021.bb | |||
| @@ -643,7 +643,6 @@ PACKAGES =+ "${PN}-amphion-vpu-license ${PN}-amphion-vpu \ | |||
| 643 | ${PN}-qca-wcn6750 \ | 643 | ${PN}-qca-wcn6750 \ |
| 644 | ${PN}-qca-qca2066 \ | 644 | ${PN}-qca-qca2066 \ |
| 645 | ${PN}-qca-wcn7850 \ | 645 | ${PN}-qca-wcn7850 \ |
| 646 | ${PN}-qca-misc \ | ||
| 647 | \ | 646 | \ |
| 648 | ${PN}-imx-sdma-license ${PN}-imx-sdma-imx6q ${PN}-imx-sdma-imx7d \ | 647 | ${PN}-imx-sdma-license ${PN}-imx-sdma-imx6q ${PN}-imx-sdma-imx7d \ |
| 649 | \ | 648 | \ |
| @@ -934,7 +933,6 @@ LICENSE:${PN}-qca-wcn399x = "Firmware-qualcommAthos_ath10k" | |||
| 934 | LICENSE:${PN}-qca-wcn6750 = "Firmware-qualcommAthos_ath10k" | 933 | LICENSE:${PN}-qca-wcn6750 = "Firmware-qualcommAthos_ath10k" |
| 935 | LICENSE:${PN}-qca-qca2066 = "Firmware-qualcommAthos_ath10k" | 934 | LICENSE:${PN}-qca-qca2066 = "Firmware-qualcommAthos_ath10k" |
| 936 | LICENSE:${PN}-qca-wcn7850 = "Firmware-qcom" | 935 | LICENSE:${PN}-qca-wcn7850 = "Firmware-qcom" |
| 937 | LICENSE:${PN}-qca-misc = "Firmware-qualcommAthos_ath10k & Firmware-qcom" | ||
| 938 | 936 | ||
| 939 | FILES:${PN}-ar3k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ar3k" | 937 | FILES:${PN}-ar3k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ar3k" |
| 940 | FILES:${PN}-ar3k = " \ | 938 | FILES:${PN}-ar3k = " \ |
| @@ -1061,12 +1059,7 @@ FILES:${PN}-qca-wcn7850 = " \ | |||
| 1061 | ${nonarch_base_libdir}/firmware/qca/hmtnv20.b112* \ | 1059 | ${nonarch_base_libdir}/firmware/qca/hmtnv20.b112* \ |
| 1062 | ${nonarch_base_libdir}/firmware/qca/hmtnv20.bin* \ | 1060 | ${nonarch_base_libdir}/firmware/qca/hmtnv20.bin* \ |
| 1063 | " | 1061 | " |
| 1064 | FILES:${PN}-qca-misc = "${nonarch_base_libdir}/firmware/qca/*" | ||
| 1065 | # -qca is a virtual package that depends upon all qca packages. | ||
| 1066 | ALLOW_EMPTY:${PN}-qca = "1" | 1062 | ALLOW_EMPTY:${PN}-qca = "1" |
| 1067 | # -qca-misc is a catch all package that includes all the qca | ||
| 1068 | # firmwares that are not already included in other -qca- packages. | ||
| 1069 | ALLOW_EMPTY:${PN}-qca-misc = "1" | ||
| 1070 | 1063 | ||
| 1071 | RDEPENDS:${PN}-ar3k += "${PN}-ar3k-license ${PN}-atheros-license" | 1064 | RDEPENDS:${PN}-ar3k += "${PN}-ar3k-license ${PN}-atheros-license" |
| 1072 | RDEPENDS:${PN}-ath10k += "${PN}-ath10k-license" | 1065 | RDEPENDS:${PN}-ath10k += "${PN}-ath10k-license" |
| @@ -1103,7 +1096,6 @@ RDEPENDS:${PN}-qca-wcn399x += "${PN}-ath10k-license" | |||
| 1103 | RDEPENDS:${PN}-qca-wcn6750 += "${PN}-ath10k-license" | 1096 | RDEPENDS:${PN}-qca-wcn6750 += "${PN}-ath10k-license" |
| 1104 | RDEPENDS:${PN}-qca-qca2066 += "${PN}-ath10k-license" | 1097 | RDEPENDS:${PN}-qca-qca2066 += "${PN}-ath10k-license" |
| 1105 | RDEPENDS:${PN}-qca-wcn7850 += "${PN}-qcom-license" | 1098 | RDEPENDS:${PN}-qca-wcn7850 += "${PN}-qcom-license" |
| 1106 | RDEPENDS:${PN}-qca-misc += "${PN}-ath10k-license ${PN}-qcom-license" | ||
| 1107 | # For ralink | 1099 | # For ralink |
| 1108 | LICENSE:${PN}-ralink = "Firmware-ralink-firmware" | 1100 | LICENSE:${PN}-ralink = "Firmware-ralink-firmware" |
| 1109 | LICENSE:${PN}-ralink-license = "Firmware-ralink-firmware" | 1101 | LICENSE:${PN}-ralink-license = "Firmware-ralink-firmware" |
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.16.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.17.bb index c3c77f8719..b4bf1126ab 100644 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.16.bb +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.17.bb | |||
| @@ -8,5 +8,5 @@ SRC_URI:append:libc-musl = "\ | |||
| 8 | 8 | ||
| 9 | LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" | 9 | LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" |
| 10 | 10 | ||
| 11 | SRC_URI[sha256sum] = "1a4be2fe6b5246aa4ac8987a8a4af34c42a8dd7d08b46ab48516bcc1befbcd83" | 11 | SRC_URI[sha256sum] = "9b607166a1c999d8326098121222feb080a20a3253975fcdfa2de96ba7f757a7" |
| 12 | 12 | ||
diff --git a/meta/recipes-kernel/linux/kernel-devsrc.bb b/meta/recipes-kernel/linux/kernel-devsrc.bb index 04dd683dde..411c99ba30 100644 --- a/meta/recipes-kernel/linux/kernel-devsrc.bb +++ b/meta/recipes-kernel/linux/kernel-devsrc.bb | |||
| @@ -400,7 +400,7 @@ do_install() { | |||
| 400 | for ss in $(find $kerneldir/build/scripts -type f -name '*'); do | 400 | for ss in $(find $kerneldir/build/scripts -type f -name '*'); do |
| 401 | sed -i 's,/usr/bin/python2,/usr/bin/env python3,' "$ss" | 401 | sed -i 's,/usr/bin/python2,/usr/bin/env python3,' "$ss" |
| 402 | sed -i 's,/usr/bin/env python2,/usr/bin/env python3,' "$ss" | 402 | sed -i 's,/usr/bin/env python2,/usr/bin/env python3,' "$ss" |
| 403 | sed -i 's,/usr/bin/python,/usr/bin/env python3,' "$ss" | 403 | sed -i 's,/usr/bin/python$,/usr/bin/env python3,' "$ss" |
| 404 | done | 404 | done |
| 405 | 405 | ||
| 406 | chown -R root:root ${D} | 406 | chown -R root:root ${D} |
diff --git a/meta/recipes-support/lz4/lz4/CVE-2025-62813.patch b/meta/recipes-support/lz4/lz4/CVE-2025-62813.patch new file mode 100644 index 0000000000..4fa0373ff7 --- /dev/null +++ b/meta/recipes-support/lz4/lz4/CVE-2025-62813.patch | |||
| @@ -0,0 +1,69 @@ | |||
| 1 | From f64efec011c058bd70348576438abac222fe6c82 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: louislafosse <louis.lafosse@epitech.eu> | ||
| 3 | Date: Mon, 31 Mar 2025 20:48:52 +0200 | ||
| 4 | Subject: [PATCH] fix(null) : improve error handlings when passing a null | ||
| 5 | pointer to some functions from lz4frame | ||
| 6 | |||
| 7 | CVE: CVE-2025-62813 | ||
| 8 | Upstream-Status: Backport [https://github.com/lz4/lz4/commit/f64efec011c058bd70348576438abac222fe6c82] | ||
| 9 | Signed-off-by: Peter Marko <peter.marko@siemens.com> | ||
| 10 | --- | ||
| 11 | lib/lz4frame.c | 15 +++++++++++++-- | ||
| 12 | tests/frametest.c | 9 ++++++--- | ||
| 13 | 2 files changed, 19 insertions(+), 5 deletions(-) | ||
| 14 | |||
| 15 | diff --git a/lib/lz4frame.c b/lib/lz4frame.c | ||
| 16 | index 85daca7b..c9e4a3cf 100644 | ||
| 17 | --- a/lib/lz4frame.c | ||
| 18 | +++ b/lib/lz4frame.c | ||
| 19 | @@ -539,9 +539,16 @@ LZ4F_CDict* | ||
| 20 | LZ4F_createCDict_advanced(LZ4F_CustomMem cmem, const void* dictBuffer, size_t dictSize) | ||
| 21 | { | ||
| 22 | const char* dictStart = (const char*)dictBuffer; | ||
| 23 | - LZ4F_CDict* const cdict = (LZ4F_CDict*)LZ4F_malloc(sizeof(*cdict), cmem); | ||
| 24 | + LZ4F_CDict* cdict = NULL; | ||
| 25 | + | ||
| 26 | DEBUGLOG(4, "LZ4F_createCDict_advanced"); | ||
| 27 | - if (!cdict) return NULL; | ||
| 28 | + | ||
| 29 | + if (!dictStart) | ||
| 30 | + return NULL; | ||
| 31 | + cdict = (LZ4F_CDict*)LZ4F_malloc(sizeof(*cdict), cmem); | ||
| 32 | + if (!cdict) | ||
| 33 | + return NULL; | ||
| 34 | + | ||
| 35 | cdict->cmem = cmem; | ||
| 36 | if (dictSize > 64 KB) { | ||
| 37 | dictStart += dictSize - 64 KB; | ||
| 38 | @@ -1486,6 +1493,10 @@ LZ4F_errorCode_t LZ4F_getFrameInfo(LZ4F_dctx* dctx, | ||
| 39 | LZ4F_frameInfo_t* frameInfoPtr, | ||
| 40 | const void* srcBuffer, size_t* srcSizePtr) | ||
| 41 | { | ||
| 42 | + assert(dctx != NULL); | ||
| 43 | + RETURN_ERROR_IF(frameInfoPtr == NULL, parameter_null); | ||
| 44 | + RETURN_ERROR_IF(srcSizePtr == NULL, parameter_null); | ||
| 45 | + | ||
| 46 | LZ4F_STATIC_ASSERT(dstage_getFrameHeader < dstage_storeFrameHeader); | ||
| 47 | if (dctx->dStage > dstage_storeFrameHeader) { | ||
| 48 | /* frameInfo already decoded */ | ||
| 49 | diff --git a/tests/frametest.c b/tests/frametest.c | ||
| 50 | index de0fe643..90247547 100644 | ||
| 51 | --- a/tests/frametest.c | ||
| 52 | +++ b/tests/frametest.c | ||
| 53 | @@ -714,10 +714,13 @@ static int unitTests(U32 seed, double compressibility) | ||
| 54 | size_t const srcSize = 65 KB; /* must be > 64 KB to avoid short-size optimizations */ | ||
| 55 | size_t const dstCapacity = LZ4F_compressFrameBound(srcSize, NULL); | ||
| 56 | size_t cSizeNoDict, cSizeWithDict; | ||
| 57 | - LZ4F_CDict* const cdict = LZ4F_createCDict(CNBuffer, dictSize); | ||
| 58 | - if (cdict == NULL) goto _output_error; | ||
| 59 | - CHECK( LZ4F_createCompressionContext(&cctx, LZ4F_VERSION) ); | ||
| 60 | + LZ4F_CDict* cdict = NULL; | ||
| 61 | |||
| 62 | + CHECK( LZ4F_createCompressionContext(&cctx, LZ4F_VERSION) ); | ||
| 63 | + cdict = LZ4F_createCDict(CNBuffer, dictSize); | ||
| 64 | + if (cdict == NULL) | ||
| 65 | + goto _output_error; | ||
| 66 | + | ||
| 67 | DISPLAYLEVEL(3, "Testing LZ4F_createCDict_advanced : "); | ||
| 68 | { LZ4F_CDict* const cda = LZ4F_createCDict_advanced(lz4f_cmem_test, CNBuffer, dictSize); | ||
| 69 | if (cda == NULL) goto _output_error; | ||
diff --git a/meta/recipes-support/lz4/lz4_1.10.0.bb b/meta/recipes-support/lz4/lz4_1.10.0.bb index 9bd3cfc27b..f2a86036b5 100644 --- a/meta/recipes-support/lz4/lz4_1.10.0.bb +++ b/meta/recipes-support/lz4/lz4_1.10.0.bb | |||
| @@ -14,7 +14,9 @@ SRCREV = "ebb370ca83af193212df4dcbadcc5d87bc0de2f0" | |||
| 14 | 14 | ||
| 15 | SRC_URI = "git://github.com/lz4/lz4.git;branch=release;protocol=https \ | 15 | SRC_URI = "git://github.com/lz4/lz4.git;branch=release;protocol=https \ |
| 16 | file://reproducibility.patch \ | 16 | file://reproducibility.patch \ |
| 17 | file://run-ptest" | 17 | file://run-ptest \ |
| 18 | file://CVE-2025-62813.patch \ | ||
| 19 | " | ||
| 18 | UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)" | 20 | UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)" |
| 19 | 21 | ||
| 20 | inherit ptest | 22 | inherit ptest |
diff --git a/scripts/lib/wic/ksparser.py b/scripts/lib/wic/ksparser.py index 48b5b09ddd..4ccd70dc55 100644 --- a/scripts/lib/wic/ksparser.py +++ b/scripts/lib/wic/ksparser.py | |||
| @@ -16,6 +16,7 @@ import os | |||
| 16 | import shlex | 16 | import shlex |
| 17 | import logging | 17 | import logging |
| 18 | import re | 18 | import re |
| 19 | import uuid | ||
| 19 | 20 | ||
| 20 | from argparse import ArgumentParser, ArgumentError, ArgumentTypeError | 21 | from argparse import ArgumentParser, ArgumentError, ArgumentTypeError |
| 21 | 22 | ||
| @@ -196,7 +197,7 @@ class KickStart(): | |||
| 196 | bootloader.add_argument('--configfile') | 197 | bootloader.add_argument('--configfile') |
| 197 | bootloader.add_argument('--ptable', choices=('msdos', 'gpt', 'gpt-hybrid'), | 198 | bootloader.add_argument('--ptable', choices=('msdos', 'gpt', 'gpt-hybrid'), |
| 198 | default='msdos') | 199 | default='msdos') |
| 199 | bootloader.add_argument('--diskid', type=lambda x: int(x, 0)) | 200 | bootloader.add_argument('--diskid') |
| 200 | bootloader.add_argument('--timeout', type=int) | 201 | bootloader.add_argument('--timeout', type=int) |
| 201 | bootloader.add_argument('--source') | 202 | bootloader.add_argument('--source') |
| 202 | 203 | ||
| @@ -297,6 +298,24 @@ class KickStart(): | |||
| 297 | if append_var: | 298 | if append_var: |
| 298 | self.bootloader.append = ' '.join(filter(None, \ | 299 | self.bootloader.append = ' '.join(filter(None, \ |
| 299 | (self.bootloader.append, append_var))) | 300 | (self.bootloader.append, append_var))) |
| 301 | if parsed.diskid: | ||
| 302 | if parsed.ptable == "msdos": | ||
| 303 | try: | ||
| 304 | self.bootloader.diskid = int(parsed.diskid, 0) | ||
| 305 | except ValueError: | ||
| 306 | err = "with --ptbale msdos only 32bit integers " \ | ||
| 307 | "are allowed for --diskid. %s could not " \ | ||
| 308 | "be parsed" % self.ptable | ||
| 309 | raise KickStartError(err) | ||
| 310 | else: | ||
| 311 | try: | ||
| 312 | self.bootloader.diskid = uuid.UUID(parsed.diskid) | ||
| 313 | except ValueError: | ||
| 314 | err = "with --ptable %s only valid uuids are " \ | ||
| 315 | "allowed for --diskid. %s could not be " \ | ||
| 316 | "parsed" % (parsed.ptable, parsed.diskid) | ||
| 317 | raise KickStartError(err) | ||
| 318 | |||
| 300 | else: | 319 | else: |
| 301 | err = "%s:%d: more than one bootloader specified" \ | 320 | err = "%s:%d: more than one bootloader specified" \ |
| 302 | % (confpath, lineno) | 321 | % (confpath, lineno) |
diff --git a/scripts/lib/wic/plugins/imager/direct.py b/scripts/lib/wic/plugins/imager/direct.py index f40f033a3d..ad922cfbf1 100644 --- a/scripts/lib/wic/plugins/imager/direct.py +++ b/scripts/lib/wic/plugins/imager/direct.py | |||
| @@ -315,7 +315,14 @@ class PartitionedImage(): | |||
| 315 | # all partitions (in bytes) | 315 | # all partitions (in bytes) |
| 316 | self.ptable_format = ptable_format # Partition table format | 316 | self.ptable_format = ptable_format # Partition table format |
| 317 | # Disk system identifier | 317 | # Disk system identifier |
| 318 | if disk_id: | 318 | if disk_id and ptable_format in ('gpt', 'gpt-hybrid'): |
| 319 | self.disk_guid = disk_id | ||
| 320 | elif os.getenv('SOURCE_DATE_EPOCH'): | ||
| 321 | self.disk_guid = uuid.UUID(int=int(os.getenv('SOURCE_DATE_EPOCH'))) | ||
| 322 | else: | ||
| 323 | self.disk_guid = uuid.uuid4() | ||
| 324 | |||
| 325 | if disk_id and ptable_format == 'msdos': | ||
| 319 | self.identifier = disk_id | 326 | self.identifier = disk_id |
| 320 | elif os.getenv('SOURCE_DATE_EPOCH'): | 327 | elif os.getenv('SOURCE_DATE_EPOCH'): |
| 321 | self.identifier = random.Random(int(os.getenv('SOURCE_DATE_EPOCH'))).randint(1, 0xffffffff) | 328 | self.identifier = random.Random(int(os.getenv('SOURCE_DATE_EPOCH'))).randint(1, 0xffffffff) |
| @@ -545,11 +552,6 @@ class PartitionedImage(): | |||
| 545 | 552 | ||
| 546 | def _write_disk_guid(self): | 553 | def _write_disk_guid(self): |
| 547 | if self.ptable_format in ('gpt', 'gpt-hybrid'): | 554 | if self.ptable_format in ('gpt', 'gpt-hybrid'): |
| 548 | if os.getenv('SOURCE_DATE_EPOCH'): | ||
| 549 | self.disk_guid = uuid.UUID(int=int(os.getenv('SOURCE_DATE_EPOCH'))) | ||
| 550 | else: | ||
| 551 | self.disk_guid = uuid.uuid4() | ||
| 552 | |||
| 553 | logger.debug("Set disk guid %s", self.disk_guid) | 555 | logger.debug("Set disk guid %s", self.disk_guid) |
| 554 | sfdisk_cmd = "sfdisk --sector-size %s --disk-id %s %s" % \ | 556 | sfdisk_cmd = "sfdisk --sector-size %s --disk-id %s %s" % \ |
| 555 | (self.sector_size, self.path, self.disk_guid) | 557 | (self.sector_size, self.path, self.disk_guid) |
