summaryrefslogtreecommitdiff
path: root/poky
diff options
context:
space:
mode:
authorPatrick Williams <patrick@stwcx.xyz>2024-04-17 00:28:03 +0300
committerPatrick Williams <patrick@stwcx.xyz>2024-04-17 00:35:03 +0300
commit2f814a6d8285b35e9fb74e3ce9ce1c44b7e4f763 (patch)
treedd79e93858470af04df47c0953528bf612e8ffcb /poky
parentf0053a50e6a423e12b68673c89b53938346a3af6 (diff)
downloadopenbmc-2f814a6d8285b35e9fb74e3ce9ce1c44b7e4f763.tar.xz
poky: reset subtree on master HEAD(a88251b3e7)
As part of the last subtree update, I used master-next as the subtree basis because there was a fix we needed in order to get QEMU to pass. I didn't realize that master-next deviated (because they use to just have short-term patches in it). Reset the content to the same fix but from the master branch. Change-Id: Ic7d2f0ac42e9da3eb263586b26ba56d8798d5bcf Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Diffstat (limited to 'poky')
-rwxr-xr-xpoky/bitbake/bin/bitbake2
-rw-r--r--poky/bitbake/lib/bb/__init__.py2
-rw-r--r--poky/bitbake/lib/bb/siggen.py6
-rw-r--r--poky/bitbake/lib/hashserv/client.py39
-rw-r--r--poky/documentation/dev-manual/custom-distribution.rst34
-rw-r--r--poky/documentation/dev-manual/disk-space.rst2
-rw-r--r--poky/documentation/migration-guides/migration-5.0.rst84
-rw-r--r--poky/documentation/migration-guides/release-notes-5.0.rst664
-rw-r--r--poky/documentation/ref-manual/classes.rst31
-rw-r--r--poky/documentation/ref-manual/qa-checks.rst8
-rw-r--r--poky/documentation/ref-manual/variables.rst6
-rw-r--r--poky/meta-poky/classes/poky-bleeding.bbclass4
-rw-r--r--poky/meta-poky/conf/distro/poky.conf4
-rw-r--r--poky/meta-selftest/conf/layer.conf2
-rw-r--r--poky/meta-skeleton/conf/layer.conf2
-rw-r--r--poky/meta/classes-global/sstate.bbclass2
-rw-r--r--poky/meta/conf/abi_version.conf2
-rw-r--r--poky/meta/conf/layer.conf4
-rw-r--r--poky/meta/lib/oe/sstatesig.py5
-rw-r--r--poky/meta/recipes-connectivity/openssh/openssh_9.7p1.bb1
-rw-r--r--poky/meta/recipes-connectivity/openssl/openssl/CVE-2024-2511.patch120
-rw-r--r--poky/meta/recipes-connectivity/openssl/openssl_3.2.1.bb1
-rw-r--r--poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb2
-rw-r--r--poky/meta/recipes-core/kbd/kbd/0001-Remove-non-free-Agafari-fonts.patch73
-rw-r--r--poky/meta/recipes-core/kbd/kbd_2.6.4.bb28
-rw-r--r--poky/meta/recipes-core/meta/buildtools-tarball.bb2
-rw-r--r--poky/meta/recipes-devtools/python/python-testtools.inc27
-rw-r--r--poky/meta/recipes-devtools/python/python3-jsonschema-specifications_2023.12.1.bb2
-rw-r--r--poky/meta/recipes-devtools/python/python3-referencing_0.34.0.bb2
-rw-r--r--poky/meta/recipes-devtools/python/python3-testtools_2.7.1.bb21
-rw-r--r--poky/meta/recipes-devtools/python/python3/0001-test_xml_etree.py-Fix-for-Expat-2.6.0-with-reparse-d.patch55
-rw-r--r--poky/meta/recipes-devtools/python/python3_3.12.3.bb (renamed from poky/meta/recipes-devtools/python/python3_3.12.2.bb)3
-rw-r--r--poky/scripts/lib/build_perf/html/measurement_chart.html116
-rw-r--r--poky/scripts/lib/build_perf/html/report.html96
-rw-r--r--poky/scripts/lib/build_perf/report.py4
-rwxr-xr-xpoky/scripts/oe-build-perf-report6
-rwxr-xr-xpoky/scripts/oe-setup-build11
37 files changed, 1160 insertions, 313 deletions
diff --git a/poky/bitbake/bin/bitbake b/poky/bitbake/bin/bitbake
index f2d168c522..382983e087 100755
--- a/poky/bitbake/bin/bitbake
+++ b/poky/bitbake/bin/bitbake
@@ -27,7 +27,7 @@ from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException
bb.utils.check_system_locale()
-__version__ = "2.7.3"
+__version__ = "2.9.0"
if __name__ == "__main__":
if __version__ != bb.__version__:
diff --git a/poky/bitbake/lib/bb/__init__.py b/poky/bitbake/lib/bb/__init__.py
index 768cce84e9..15013540c2 100644
--- a/poky/bitbake/lib/bb/__init__.py
+++ b/poky/bitbake/lib/bb/__init__.py
@@ -9,7 +9,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
-__version__ = "2.7.3"
+__version__ = "2.9.0"
import sys
if sys.version_info < (3, 8, 0):
diff --git a/poky/bitbake/lib/bb/siggen.py b/poky/bitbake/lib/bb/siggen.py
index 0421885306..8ab08ec961 100644
--- a/poky/bitbake/lib/bb/siggen.py
+++ b/poky/bitbake/lib/bb/siggen.py
@@ -582,7 +582,11 @@ class SignatureGeneratorUniHashMixIn(object):
yield
finally:
- os.environ = orig_env
+ for k, v in self.env.items():
+ if k in orig_env:
+ os.environ[k] = orig_env[k]
+ else:
+ del os.environ[k]
@contextmanager
def client(self):
diff --git a/poky/bitbake/lib/hashserv/client.py b/poky/bitbake/lib/hashserv/client.py
index b269879ecf..0b254beddd 100644
--- a/poky/bitbake/lib/hashserv/client.py
+++ b/poky/bitbake/lib/hashserv/client.py
@@ -27,9 +27,7 @@ class AsyncClient(bb.asyncrpc.AsyncClient):
async def setup_connection(self):
await super().setup_connection()
- cur_mode = self.mode
self.mode = self.MODE_NORMAL
- await self._set_mode(cur_mode)
if self.username:
# Save off become user temporarily because auth() resets it
become = self.saved_become_user
@@ -38,13 +36,20 @@ class AsyncClient(bb.asyncrpc.AsyncClient):
if become:
await self.become_user(become)
- async def send_stream(self, msg):
+ async def send_stream(self, mode, msg):
async def proc():
+ await self._set_mode(mode)
await self.socket.send(msg)
return await self.socket.recv()
return await self._send_wrapper(proc)
+ async def invoke(self, *args, **kwargs):
+ # It's OK if connection errors cause a failure here, because the mode
+ # is also reset to normal on a new connection
+ await self._set_mode(self.MODE_NORMAL)
+ return await super().invoke(*args, **kwargs)
+
async def _set_mode(self, new_mode):
async def stream_to_normal():
await self.socket.send("END")
@@ -84,14 +89,12 @@ class AsyncClient(bb.asyncrpc.AsyncClient):
self.mode = new_mode
async def get_unihash(self, method, taskhash):
- await self._set_mode(self.MODE_GET_STREAM)
- r = await self.send_stream("%s %s" % (method, taskhash))
+ r = await self.send_stream(self.MODE_GET_STREAM, "%s %s" % (method, taskhash))
if not r:
return None
return r
async def report_unihash(self, taskhash, method, outhash, unihash, extra={}):
- await self._set_mode(self.MODE_NORMAL)
m = extra.copy()
m["taskhash"] = taskhash
m["method"] = method
@@ -100,7 +103,6 @@ class AsyncClient(bb.asyncrpc.AsyncClient):
return await self.invoke({"report": m})
async def report_unihash_equiv(self, taskhash, method, unihash, extra={}):
- await self._set_mode(self.MODE_NORMAL)
m = extra.copy()
m["taskhash"] = taskhash
m["method"] = method
@@ -108,18 +110,15 @@ class AsyncClient(bb.asyncrpc.AsyncClient):
return await self.invoke({"report-equiv": m})
async def get_taskhash(self, method, taskhash, all_properties=False):
- await self._set_mode(self.MODE_NORMAL)
return await self.invoke(
{"get": {"taskhash": taskhash, "method": method, "all": all_properties}}
)
async def unihash_exists(self, unihash):
- await self._set_mode(self.MODE_EXIST_STREAM)
- r = await self.send_stream(unihash)
+ r = await self.send_stream(self.MODE_EXIST_STREAM, unihash)
return r == "true"
async def get_outhash(self, method, outhash, taskhash, with_unihash=True):
- await self._set_mode(self.MODE_NORMAL)
return await self.invoke(
{
"get-outhash": {
@@ -132,27 +131,21 @@ class AsyncClient(bb.asyncrpc.AsyncClient):
)
async def get_stats(self):
- await self._set_mode(self.MODE_NORMAL)
return await self.invoke({"get-stats": None})
async def reset_stats(self):
- await self._set_mode(self.MODE_NORMAL)
return await self.invoke({"reset-stats": None})
async def backfill_wait(self):
- await self._set_mode(self.MODE_NORMAL)
return (await self.invoke({"backfill-wait": None}))["tasks"]
async def remove(self, where):
- await self._set_mode(self.MODE_NORMAL)
return await self.invoke({"remove": {"where": where}})
async def clean_unused(self, max_age):
- await self._set_mode(self.MODE_NORMAL)
return await self.invoke({"clean-unused": {"max_age_seconds": max_age}})
async def auth(self, username, token):
- await self._set_mode(self.MODE_NORMAL)
result = await self.invoke({"auth": {"username": username, "token": token}})
self.username = username
self.password = token
@@ -160,7 +153,6 @@ class AsyncClient(bb.asyncrpc.AsyncClient):
return result
async def refresh_token(self, username=None):
- await self._set_mode(self.MODE_NORMAL)
m = {}
if username:
m["username"] = username
@@ -174,34 +166,28 @@ class AsyncClient(bb.asyncrpc.AsyncClient):
return result
async def set_user_perms(self, username, permissions):
- await self._set_mode(self.MODE_NORMAL)
return await self.invoke(
{"set-user-perms": {"username": username, "permissions": permissions}}
)
async def get_user(self, username=None):
- await self._set_mode(self.MODE_NORMAL)
m = {}
if username:
m["username"] = username
return await self.invoke({"get-user": m})
async def get_all_users(self):
- await self._set_mode(self.MODE_NORMAL)
return (await self.invoke({"get-all-users": {}}))["users"]
async def new_user(self, username, permissions):
- await self._set_mode(self.MODE_NORMAL)
return await self.invoke(
{"new-user": {"username": username, "permissions": permissions}}
)
async def delete_user(self, username):
- await self._set_mode(self.MODE_NORMAL)
return await self.invoke({"delete-user": {"username": username}})
async def become_user(self, username):
- await self._set_mode(self.MODE_NORMAL)
result = await self.invoke({"become-user": {"username": username}})
if username == self.username:
self.saved_become_user = None
@@ -210,15 +196,12 @@ class AsyncClient(bb.asyncrpc.AsyncClient):
return result
async def get_db_usage(self):
- await self._set_mode(self.MODE_NORMAL)
return (await self.invoke({"get-db-usage": {}}))["usage"]
async def get_db_query_columns(self):
- await self._set_mode(self.MODE_NORMAL)
return (await self.invoke({"get-db-query-columns": {}}))["columns"]
async def gc_status(self):
- await self._set_mode(self.MODE_NORMAL)
return await self.invoke({"gc-status": {}})
async def gc_mark(self, mark, where):
@@ -231,7 +214,6 @@ class AsyncClient(bb.asyncrpc.AsyncClient):
kept. In addition, any new entries added to the database after this
command will be automatically marked with "mark"
"""
- await self._set_mode(self.MODE_NORMAL)
return await self.invoke({"gc-mark": {"mark": mark, "where": where}})
async def gc_sweep(self, mark):
@@ -242,7 +224,6 @@ class AsyncClient(bb.asyncrpc.AsyncClient):
It is recommended to clean unused outhash entries after running this to
cleanup any dangling outhashes
"""
- await self._set_mode(self.MODE_NORMAL)
return await self.invoke({"gc-sweep": {"mark": mark}})
diff --git a/poky/documentation/dev-manual/custom-distribution.rst b/poky/documentation/dev-manual/custom-distribution.rst
index 47faed0d04..0bc386d606 100644
--- a/poky/documentation/dev-manual/custom-distribution.rst
+++ b/poky/documentation/dev-manual/custom-distribution.rst
@@ -4,10 +4,16 @@ Creating Your Own Distribution
******************************
When you build an image using the Yocto Project and do not alter any
-distribution :term:`Metadata`, you are
-creating a Poky distribution. If you wish to gain more control over
-package alternative selections, compile-time options, and other
-low-level configurations, you can create your own distribution.
+distribution :term:`Metadata`, you are using the Poky distribution.
+Poky is explicitly a *reference* distribution for testing and
+development purposes. It enables most hardware and software features
+so that they can be tested, but this also means that from a security
+point of view the attack surface is very large. Additionally, at some
+point it is likely that you will want to gain more control over package
+alternative selections, compile-time options, and other low-level
+configurations. For both of these reasons, if you are using the Yocto
+Project for production use then you are strongly encouraged to create
+your own distribution.
To create your own distribution, the basic steps consist of creating
your own distribution layer, creating your own distribution
@@ -107,3 +113,23 @@ layer. The following steps provide some more detail:
For information on append files, see the
":ref:`dev-manual/layers:appending other layers metadata with your layer`"
section.
+
+Copying and modifying the Poky distribution
+===========================================
+
+Instead of creating a custom distribution from scratch as per above, you may
+wish to start your custom distribution configuration by copying the Poky
+distribution provided within the ``meta-poky`` layer and then modifying it.
+This is fine, however if you do this you should keep the following in mind:
+
+- Every reference to Poky needs to be updated in your copy so that it
+ will still apply. This includes override usage within files (e.g. ``:poky``)
+ and in directory names. This is a good opportunity to evaluate each one of
+ these customizations to see if they are needed for your use case.
+
+- Unless you also intend to use them, the ``poky-tiny``, ``poky-altcfg`` and
+ ``poky-bleeding`` variants and any references to them can be removed.
+
+- More generally, the Poky distribution configuration enables a lot more
+ than you likely need for your production use case. You should evaluate *every*
+ configuration choice made in your copy to determine if it is needed.
diff --git a/poky/documentation/dev-manual/disk-space.rst b/poky/documentation/dev-manual/disk-space.rst
index 6d1638a302..efca82601d 100644
--- a/poky/documentation/dev-manual/disk-space.rst
+++ b/poky/documentation/dev-manual/disk-space.rst
@@ -49,7 +49,7 @@ requires a full build environment to be available and doesn't work well
covering multiple releases. It won't work either on limited environments
such as BSD based NAS::
- sstate-cache-management.sh --remove-duplicated --cache-dir=build/sstate-cache
+ sstate-cache-management.py --remove-duplicated --cache-dir=sstate-cache
This command will ask you to confirm the deletions it identifies.
Run ``sstate-cache-management.sh`` for more details about this script.
diff --git a/poky/documentation/migration-guides/migration-5.0.rst b/poky/documentation/migration-guides/migration-5.0.rst
index 888a1c60d4..cf413300c2 100644
--- a/poky/documentation/migration-guides/migration-5.0.rst
+++ b/poky/documentation/migration-guides/migration-5.0.rst
@@ -80,7 +80,8 @@ Recipe changes
Deprecated variables
~~~~~~~~~~~~~~~~~~~~
-No variables have been deprecated in this release.
+- ``CVE_CHECK_IGNORE`` should be replaced with :term:`CVE_STATUS`
+
.. _migration-5.0-removed-variables:
@@ -89,13 +90,14 @@ Removed variables
The following variables have been removed:
-- ``DEPLOY_DIR_TAR``.
-- ``PYTHON_PN``: Python 2 has been removed, leaving Python 3 as the sole
- major version. Therefore, an abstraction to differentiate both versions is
+- ``DEPLOY_DIR_TAR``: no longer needed since the package_tar class was removed in 4.2.
+- ``PYTHON_PN``: Python 2 has previously been removed, leaving Python 3 as the sole
+ major version. Therefore, this abstraction to differentiate both versions is
no longer needed.
-- ``oldincludedir``.
+- ``oldincludedir``
- ``USE_L10N``: previously deprecated, and now removed.
-- ``CVE_SOCKET_TIMEOUT``.
+- ``CVE_SOCKET_TIMEOUT``
+- ``SERIAL_CONSOLES_CHECK`` - use :term:`SERIAL_CONSOLES` instead as all consoles specified in the latter are checked for their existence before a ``getty`` is started.
.. _migration-5.0-removed-recipes:
@@ -105,9 +107,10 @@ Removed recipes
The following recipes have been removed in this release:
- ``libcroco``: deprecated and archived by the Gnome Project.
+- ``liberror-perl``: unmaintained and no longer needed - moved to meta-perl.
- ``linux-yocto``: version 6.1 (version 6.6 provided instead).
-- ``zvariant``: fails to build with newer Rust.
- ``systemtap-uprobes``: obsolete.
+- ``zvariant``: fails to build with newer Rust.
.. _migration-5.0-removed-classes:
@@ -125,10 +128,75 @@ In ``tune-core2``, the cpu models ``n270`` and ``core2duo`` are no longer
passed to QEMU, since its documentation recommends not using them with ``-cpu``
option. Therefore, from now on, ``Nehalem`` model is used instead.
+
+ipk packaging changes
+~~~~~~~~~~~~~~~~~~~~~
+
+ipk packaging (using ``opkg``) now uses ``zstd`` compression instead of ``xz``
+for better compression and performance. This does mean that ``.ipk`` packages
+built using the 5.0 release requires Opkg built with zstd enabled --- naturally
+this is the case in 5.0, but at least by default these packages will not be
+usable on older systems where Opkg does not have zstd enabled at build time.
+
+Additionally, the internal dependency solver in Opkg is now deprecated --- it
+is still available in this release but will trigger a warning if selected.
+The default has been the external ``libsolv`` solver for some time, but if you
+have explicitly removed that from :term:`PACKAGECONFIG` for Opkg to
+select the internal solver, you should plan to switch to ``libsolv`` in the
+near future (by including ``libsolv`` your custom :term:`PACKAGECONFIG` value
+for Opkg, or reverting to the default value).
+
+
+motd message when using ``DISTRO = "poky"``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The default ``poky`` :term:`DISTRO` is explicitly a *reference* distribution
+for testing and development purposes. It enables most hardware and software
+features so that they can be tested, but this also means that
+from a security point of view the attack surface is very large.
+
+We encourage anyone using the Yocto Project for production use to create
+their own distribution and not use Poky. To encourage this behaviour
+further, in 5.0 a warning has been added to ``/etc/motd`` when Poky is used
+so that the developer will see it when they log in. If you are creating your
+own distribution this message will not show up.
+
+For information on how to create your own distribution, see
+":ref:`dev-manual/custom-distribution:creating your own distribution`".
+
.. _migration-5.0-misc-changes:
Miscellaneous changes
~~~~~~~~~~~~~~~~~~~~~
-- ``bitbake-whatchanged`` script was removed.
+- ``bitbake-whatchanged`` script was removed as it was broken and unmaintained.
+
+- ``scripts/sstate-cache-management.sh`` has been replaced by
+ ``scripts/sstate-cache-management.py``, a more performant Python-based version.
+
+- The ``bmap-tools`` recipe has been renamed to ``bmaptool``.
+
+- ``gpgme`` has had Python binding support disabled since upstream does not
+ support Python 3.12 yet. This will be fixed in future once it is fixed upstream.)
+
+- A warning will now be shown if the ``virtual/`` prefix is used in runtime
+ contexts (:term:`RDEPENDS` / :term:`RPROVIDES`) ---
+ See :ref:`virtual-slash <qa-check-virtual-slash>` for details.
+
+- ``recipetool`` now prefixes the names of recipes created for Python modules
+ with ``python3-``.
+
+- The :ref:`ref-classes-cve-check` class no longer produces a warning for
+ remote patches --- it only logs a note and does not try to fetch the patch
+ in order to scan it for issues or CVE numbers. However, CVE number
+ references in remote patch file names will now be picked up.
+
+- The values of :term:`PE` and :term:`PR` have been dropped from
+ ``-f{file,macro,debug}-prefix-map``, in order to avoid unnecessary churn
+ in debugging symbol paths when the version is bumped. This is unlikely to
+ cause issues, but if you are paying attention to the debugging source path
+ (e.g. in recipes that need to manipulate these files during packaging) then
+ you will notice the difference. A new :term:`TARGET_DBGSRC_DIR` variable is
+ provided to make this easier.
+
- ``ccache`` no longer supports FORTRAN.
diff --git a/poky/documentation/migration-guides/release-notes-5.0.rst b/poky/documentation/migration-guides/release-notes-5.0.rst
index b5fba13e6c..4bd9125d17 100644
--- a/poky/documentation/migration-guides/release-notes-5.0.rst
+++ b/poky/documentation/migration-guides/release-notes-5.0.rst
@@ -23,6 +23,8 @@ New Features / Enhancements in 5.0
- :term:`EFI_UKI_PATH`, :term:`EFI_UKI_DIR`: define the location of UKI
image in the EFI System partition.
+ - :term:`TARGET_DBGSRC_DIR`: specifies the target path to debug source files
+
- Architecture-specific enhancements:
- ``genericarm64``: a new :term:`MACHINE` to represent a 64-bit General Arm
@@ -33,6 +35,8 @@ New Features / Enhancements in 5.0
- ``arch-armv9``: remove CRC and SVE tunes, since FEAT_CRC32 is now mandatory
and SVE/SVE2 are enabled by default in GCC's ``-march=armv9-a``.
+ - ``arm/armv*``: add all of the additional Arm tunes in GCC 13.2.0
+
- Kernel-related enhancements:
- The default kernel is the current LTS (6.6).
@@ -145,6 +149,10 @@ New Features / Enhancements in 5.0
- ``nativesdk``: prevent :term:`MACHINE_FEATURES` and :term:`DISTRO_FEATURES`
from being backfilled.
+ - Support for ``riscv64`` as an SDK host architecture
+
+ - Extend recipes to ``nativesdk``: ``acpica``, ``libpcap``, ``python3-setuptools-rust``
+
- Testing:
- Add an optional ``unimplemented-ptest`` QA warning to detect upstream
@@ -155,15 +163,30 @@ New Features / Enhancements in 5.0
- ``oeqa``, ``oe-selftest``: add test cases for Maturin (SDK and runtime).
-- Utility script changes:
+ - Enable ptests for ``python3-attrs``, ``python3-pyyaml``, ``xz``
- - New ``recipetool/create_go.py`` script added to support Go recipe creation
+- Utility script changes:
- ``oe-init-build-env`` can generate a initial configuration (``.vscode``)
for VSCode and its "Yocto Project BitBake" extension.
+ - The ``sstate-cache-management`` script has been rewritten in python for better performance and maintainability
+
+ - ``bitbake-layers``: added an option to update the reference of repositories in layer setup
+
- BitBake improvements:
+ - New ``inherit_defer`` statement which works as
+ :ref:`inherit <bitbake:bitbake-user-manual/bitbake-user-manual-metadata:\`\`inherit\`\` directive>`
+ does, except that it is only evaluated at the end of parsing
+ --- recommended where a conditional expression is used, e.g.::
+
+ inherit_defer ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3targetconfig', '', d)}
+
+ This allows conditional expressions to be evaluated 'late' meaning changes
+ to the variable after the line is parsed will take effect - with inherit this
+ is not the case.
+
- Add support for :term:`BB_LOADFACTOR_MAX`, so Bitbake can stop running
extra tasks if the system load is too high, especially in distributions
where ``/proc/pressure`` is disabled.
@@ -179,10 +202,52 @@ New Features / Enhancements in 5.0
- ``bitbake.conf``: add ``runtimedir`` to represent the path to the runtime
state directory (i.e., ``/run``).
+ - Allow to disable colored text output through the
+ `NO_OUTPUT <https://no-color.org/>`__ environment variable.
+
+ - ``git-make-shallow`` script: add support for Git's ``safe.bareRepository=explicit``
+ configuration setting.
+
+- devtool improvements:
+
+ - Introduce a new ``ide-sdk`` plugin to generate a configuration to use
+ the eSDK through an IDE.
+
+ - Add ``--no-pypi`` option for Python projects that are not hosted on PyPI.
+
+ - Add support for Git submodules.
+
+ - ``ide``: ``vscode``: generate files from recipe sysroots and debug the
+ root filesystem in read-only mode to avoid confusion.
+
+ - ``modify``: add support for multiple sources in :term:`SRC_URI`.
+
+ - Support plugins within plugins.
+
+- recipetool improvements:
+
+ - ``appendsrcfile(s)``: add a mode to update the recipe itself.
+
+ - ``appendsrcfile(s)``: add ``--dry-run`` mode.
+
+ - ``create``: add handler to create Go recipes.
+
+ - ``create``: improve identification of licenses.
+
+ - ``create``: add support for modern Python PEP-517 build systems including
+ hatchling, maturin, meson-python.
+
+ - ``create``: add PyPi support.
+
+ - ``create``: prefix created Python recipes with ``python3-``.
+
- Packaging changes:
- ``package_rpm``: the RPM package compressor's mode can now be overriden.
+ - ipk packaging (using ``opkg``) now uses ``zstd`` compression instead of
+ ``xz`` for better compression and performance.
+
- Security improvements:
- Improve incremental CVE database download from NVD. Rejected CVEs are
@@ -211,6 +276,11 @@ New Features / Enhancements in 5.0
- Systemd's following :term:`PACKAGECONFIG` options were added:
``cryptsetup-plugins``, ``no-ntp-fallback``, and ``p11kit``.
+ - New PACKAGECONFIG options added to ``libarchive``, ``libinput``,
+ ``libunwind``, ``mesa``, ``mesa-gl``, ``openssh``, ``perf``,
+ ``python3-pyyaml``, ``qemu``, ``rpm``, ``shadow``, ``strace``,
+ ``syslinux``, ``systemd``, ``vte``, ``webkitgtk``, ``xserver-xorg``.
+
- ``systemd-boot`` can, from now on, be compiled as ``native``, thus
providing ``ukify`` tool to build UKI images.
@@ -223,34 +293,614 @@ New Features / Enhancements in 5.0
- Disable strace support of bluetooth by default.
- - ``openssh`` now has a Systemd service: ``sshd.service``.
+ - ``openssh`` now has a systemd service: ``sshd.service``.
+
+ - The :ref:`ref-classes-python_mesonpy` class was added (moved in from
+ ``meta-python``) to support Python package builds using the meson-python
+ PEP-517 build backend.
+
+ - Support for unpacking ``.7z`` archives in :term:`SRC_URI` using ``p7zip``.
+
+ - Add minimal VS Code configuration to avoid VS Code's indexer from choking
+ on build directories.
+
Known Issues in 5.0
~~~~~~~~~~~~~~~~~~~
-- N/A
+- ``gpgme`` has had Python binding support disabled since upstream does not yet support Python 3.12.
+
Recipe License changes in 5.0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The following corrections have been made to the :term:`LICENSE` values set by recipes:
-- ``systemd``: make the scope of ``LGPL`` more accurate (``LGPL-2.1`` -> ``LGPL-2.1-or-later``)
-- ``libsystemd``: set its own :term:`LICENSE` value (``LGPL-2.1-or-later``) to add more granularity
+- ``elfutils``: split license for libraries & backend and utilities.
+- ``ghostscript``: correct :term:`LICENSE` to ``AGPL-3.0-or-later``.
+- ``libsystemd``: set its own :term:`LICENSE` value (``LGPL-2.1-or-later``) to add more granularity.
+- ``libtest-warnings-perl``: update :term:`LICENSE` ``Artistic-1.0`` to ``Artistic-1.0-Perl``.
+- ``linux-firmware``: set package :term:`LICENSE` appropriately for ``carl9170``, ``rockchip`` and ``powerpr``.
+- ``newlib``: add license ``Apache-2.0-with-LLVM-exception``.
+- ``python3-poetry-core``: add license ``BSD-3-Clause`` for ``fastjsonschema``.
+- ``systemd``: make the scope of ``LGPL`` more accurate (``LGPL-2.1`` -> ``LGPL-2.1-or-later``).
+- ``util-linux``: add ``GPL-1.0-or-later`` license for fdisk and ``MIT`` license for ``flock``.
+- ``zstd``: set to dual-licensed ``BSD-3-Clause`` or ``GPL-2.0-only``.
Security Fixes in 5.0
~~~~~~~~~~~~~~~~~~~~~
+- avahi: :cve:`2023-1981`, :cve:`2023-38469`, :cve:`2023-38470`, :cve:`2023-38471`, :cve:`2023-38469`, :cve:`2023-38470`, :cve:`2023-38471`, :cve:`2023-38472`, :cve:`2023-38473`
+- bind: :cve:`2023-4408`, :cve:`2023-5517`, :cve:`2023-5679`, :cve:`2023-50387`
+- bluez5: :cve:`2023-45866`
+- coreutils: :cve:`2024-0684`
+- cups: :cve:`2023-4504`
+- curl: :cve:`2023-46218`
+- expat: :cve:`2024-28757`
+- gcc: :cve:`2023-4039`
+- glibc: :cve:`2023-5156`, :cve:`2023-0687`
+- gnutls: :cve:`2024-0553`, :cve:`2024-0567`, :cve:`2024-28834`, :cve:`2024-28835`
+- go: :cve:`2023-45288`
+- grub: :cve:`2023-4692`, :cve:`2023-4693`
+- grub2: :cve:`2023-4001` (ignored), :cve:`2024-1048` (ignored)
+- libgit2: :cve:`2024-24575`, :cve:`2024-24577`
+- libsndfile1: :cve:`2022-33065`
+- libssh2: :cve:`2023-48795`
+- libuv: :cve:`2024-24806`
+- libxml2: :cve:`2023-45322` (ignored)
+- linux-yocto/6.6: :cve:`2020-16119`
+- openssh: :cve:`2023-48795`, :cve:`2023-51384`, :cve:`2023-51385`
+- openssl: :cve:`2023-5363`, :cve:`2023-5678`, :cve:`2023-6129`, :cve_mitre:`2023-6237`, :cve:`2024-0727`
+- perl: :cve:`2023-47100`
+- pixman: :cve:`2023-37769` (ignored)
+- python3-cryptography{-vectors}: :cve:`2023-49083`, :cve:`2024-26130`
+- python3-urllib3: :cve:`2023-45803`
+- shadow: :cve:`2023-4641`
+- sudo: :cve:`2023-42456`
+- tiff: :cve:`2023-6228`, :cve:`2023-6277`, :cve:`2023-52355`, :cve:`2023-52356`
+- vim: :cve:`2023-46246`, :cve:`2023-48231`, :cve:`2023-48232`, :cve:`2023-48233`, :cve:`2023-48234`, :cve:`2023-48235`, :cve:`2023-48236`, :cve:`2023-48237`, :cve:`2024-22667`
+- wpa-supplicant: :cve:`2023-52160`
+- xserver-xorg: :cve:`2023-5574`, :cve:`2023-6816`, :cve:`2024-0229`, :cve:`2024-0408`, :cve:`2024-0409`, :cve:`2024-21885`, :cve:`2024-21886`
+- xwayland: :cve:`2023-5367`, :cve:`2024-0408`, :cve:`2024-0409`, :cve:`2023-6816`, :cve:`2024-0229`, :cve:`2024-21885`, :cve:`2024-21886`
+- zlib: :cve:`2023-45853` (ignored), :cve:`2023-6992` (ignored)
+
+
Recipe Upgrades in 5.0
~~~~~~~~~~~~~~~~~~~~~~
-- go: update 1.20.10 -> 1.22.1
+- acl 2.3.1 -> 2.3.2
+- acpica 20230628 -> 20240322
+- alsa-lib 1.2.10 -> 1.2.11
+- alsa-tools 1.2.5 -> 1.2.11
+- alsa-ucm-conf 1.2.10 -> 1.2.11
+- alsa-utils 1.2.10 -> 1.2.11
+- appstream 0.16.3 -> 1.0.2
+- autoconf 2.72c -> 2.72e
+- bash 5.2.15 -> 5.2.21
+- bash-completion 2.11 -> 2.12.0
+- binutils 2.41 -> 2.42
+- bluez5 5.69 -> 5.72
+- boost 1.83.0 -> 1.84.0
+- boost-build-native 1.83.0 -> 1.84.0
+- btrfs-tools 6.5.1 -> 6.7.1
+- cairo 1.16.0 -> 1.18.0
+- cargo 1.70.0 -> 1.75.0
+- cargo-c-native 0.9.18 -> 0.9.30+cargo-0.77.0
+- ccache 4.8.3 -> 4.9.1
+- cmake 3.27.7 -> 3.28.3
+- cmake-native 3.27.7 -> 3.28.3
+- createrepo-c 1.0.0 -> 1.0.4
+- cronie 1.6.1 -> 1.7.1
+- cross-localedef-native 2.38+git -> 2.39+git
+- cups 2.4.6 -> 2.4.7
+- curl 8.4.0 -> 8.7.1
+- dbus-wait 0.1+git (6cc6077a36fe…) -> 0.1+git (64bc7c8fae61…)
+- debianutils 5.13 -> 5.16
+- desktop-file-utils 0.26 -> 0.27
+- dhcpcd 10.0.2 -> 10.0.6
+- diffoscope 249 -> 259
+- diffstat 1.65 -> 1.66
+- dnf 4.17.0 -> 4.19.0
+- dos2unix 7.5.1 -> 7.5.2
+- ed 1.19 -> 1.20.1
+- efivar 38+39+git -> 39+39+git
+- elfutils 0.189 -> 0.191
+- ell 0.60 -> 0.63
+- enchant2 2.6.2 -> 2.6.7
+- epiphany 44.6 -> 46.0
+- erofs-utils 1.6 -> 1.7.1
+- ethtool 6.5 -> 6.7
+- eudev 3.2.12 -> 3.2.14
+- expat 2.5.0 -> 2.6.2
+- ffmpeg 6.0 -> 6.1.1
+- fontconfig 2.14.2 -> 2.15.0
+- gawk 5.2.2 -> 5.3.0
+- gcr 4.1.0 -> 4.2.0
+- gdb 13.2 -> 14.2
+- gettext 0.22 -> 0.22.5
+- gettext-minimal-native 0.22 -> 0.22.5
+- gi-docgen 2023.1 -> 2023.3
+- git 2.42.0 -> 2.44.0
+- glib-2.0 2.78.3 -> 2.78.4
+- glib-networking 2.76.1 -> 2.78.1
+- glibc 2.38+git -> 2.39+git
+- glibc-locale 2.38 -> 2.39+git
+- glibc-mtrace 2.38 -> 2.39+git
+- glibc-scripts 2.38 -> 2.39+git
+- glibc-testsuite 2.38+git -> 2.39+git
+- glibc-y2038-tests 2.38+git -> 2.39+git
+- glslang 1.3.261.1 -> 1.3.275.0
+- gnu-config 20230216+git -> 20240101+git
+- gnupg 2.4.3 -> 2.4.4
+- gnutls 3.8.3 -> 3.8.4
+- go 1.20.12 -> 1.22.2
+- go-binary-native 1.20.12 -> 1.22.2
+- go-native 1.20.12 -> 1.22.2
+- go-runtime 1.20.12 -> 1.22.2
+- gpgme 1.22.0 -> 1.23.2
+- grub 2.06 -> 2.12
+- grub-efi 2.06 -> 2.12
+- gsettings-desktop-schemas 44.0 -> 46.0
+- gst-devtools 1.22.9 -> 1.22.11
+- gstreamer1.0 1.22.9 -> 1.22.11
+- gstreamer1.0-libav 1.22.9 -> 1.22.11
+- gstreamer1.0-omx 1.22.9 -> 1.22.11
+- gstreamer1.0-plugins-bad 1.22.9 -> 1.22.11
+- gstreamer1.0-plugins-base 1.22.9 -> 1.22.11
+- gstreamer1.0-plugins-good 1.22.9 -> 1.22.11
+- gstreamer1.0-plugins-ugly 1.22.9 -> 1.22.11
+- gstreamer1.0-python 1.22.9 -> 1.22.11
+- gstreamer1.0-rtsp-server 1.22.9 -> 1.22.11
+- gstreamer1.0-vaapi 1.22.9 -> 1.22.11
+- gtk+3 3.24.38 -> 3.24.41
+- gtk4 4.12.3 -> 4.14.1
+- harfbuzz 8.2.2 -> 8.3.0
+- hwlatdetect 2.5 -> 2.6
+- icu 73-2 -> 74-1
+- inetutils 2.4 -> 2.5
+- init-system-helpers 1.65.2 -> 1.66
+- iproute2 6.5.0 -> 6.7.0
+- iptables 1.8.9 -> 1.8.10
+- iputils 20221126 -> 20240117
+- iso-codes 4.15.0 -> 4.16.0
+- iw 5.19 -> 6.7
+- json-glib 1.6.6 -> 1.8.0
+- kbd 2.6.3 -> 2.6.4
+- kexec-tools 2.0.27 -> 2.0.28
+- kmod 30 -> 31
+- kmscube git -> 0.0.1+git
+- libadwaita 1.4.2 -> 1.5.0
+- libbsd 0.11.7 -> 0.12.1
+- libcap-ng 0.8.3 -> 0.8.4
+- libcap-ng-python 0.8.3 -> 0.8.4
+- libcomps 0.1.19 -> 0.1.20
+- libdnf 0.71.0 -> 0.73.0
+- libdrm 2.4.116 -> 2.4.120
+- libffi 3.4.4 -> 3.4.6
+- libgit2 1.7.1 -> 1.7.2
+- libgloss 4.3.0+git -> 4.4.0+git
+- libgpg-error 1.47 -> 1.48
+- libhandy 1.8.2 -> 1.8.3
+- libical 3.0.16 -> 3.0.17
+- libidn2 2.3.4 -> 2.3.7
+- libinput 1.24.0 -> 1.25.0
+- libksba 1.6.4 -> 1.6.6
+- libmicrohttpd 0.9.77 -> 1.0.1
+- libnl 3.8.0 -> 3.9.0
+- libnotify 0.8.2 -> 0.8.3
+- libpciaccess 0.17 -> 0.18
+- libpcre2 10.42 -> 10.43
+- libpng 1.6.40 -> 1.6.42
+- libproxy 0.5.3 -> 0.5.4
+- libpsl 0.21.2 -> 0.21.5
+- librepo 1.16.0 -> 1.17.0
+- librsvg 2.56.3 -> 2.57.1
+- libsdl2 2.28.4 -> 2.30.0
+- libseccomp 2.5.4 -> 2.5.5
+- libsecret 0.21.1 -> 0.21.4
+- libsolv 0.7.26 -> 0.7.28
+- libsoup 3.4.2 -> 3.4.4
+- libstd-rs 1.70.0 -> 1.75.0
+- libtest-warnings-perl 0.031 -> 0.033
+- libtirpc 1.3.3 -> 1.3.4
+- libubootenv 0.3.4 -> 0.3.5
+- libunistring 1.1 -> 1.2
+- liburi-perl 5.21 -> 5.27
+- libusb1 1.0.26 -> 1.0.27
+- libuv 1.46.0 -> 1.48.0
+- libva 2.19.0 -> 2.20.0
+- libva-initial 2.19.0 -> 2.20.0
+- libwpe 1.14.1 -> 1.14.2
+- libxext 1.3.5 -> 1.3.6
+- libxkbcommon 1.5.0 -> 1.6.0
+- libxkbfile 1.1.2 -> 1.1.3
+- libxml-parser-perl 2.46 -> 2.47
+- libxml2 2.11.7 -> 2.12.5
+- libxmlb 0.3.14 -> 0.3.15
+- libxrandr 1.5.3 -> 1.5.4
+- libxvmc 1.0.13 -> 1.0.14
+- lighttpd 1.4.71 -> 1.4.74
+- linux-firmware 20240220 -> 20240312
+- linux-libc-headers 6.5 -> 6.6
+- linux-yocto 6.1.78+git, 6.5.13+git -> 6.6.23+git
+- linux-yocto-dev 6.6+git -> 6.9+git
+- linux-yocto-rt 6.1.78+git, 6.5.13+git -> 6.6.23+git
+- linux-yocto-tiny 6.1.78+git, 6.5.13+git -> 6.6.23+git
+- llvm 17.0.3 -> 18.1.2
+- lsof 4.98.0 -> 4.99.3
+- ltp 20230516 -> 20240129
+- lttng-modules 2.13.10 -> 2.13.12
+- lttng-ust 2.13.6 -> 2.13.7
+- lzip 1.23 -> 1.24
+- makedepend 1.0.8 -> 1.0.9
+- man-db 2.11.2 -> 2.12.0
+- man-pages 6.05.01 -> 6.06
+- mc 4.8.30 -> 4.8.31
+- mesa 23.2.1 -> 24.0.2
+- mesa-gl 23.2.1 -> 24.0.2
+- meson 1.2.2 -> 1.3.1
+- minicom 2.8 -> 2.9
+- mmc-utils 0.1+git (613495ecaca9…) -> 0.1+git (b5ca140312d2…)
+- mpg123 1.31.3 -> 1.32.5
+- newlib 4.3.0+git -> 4.4.0+git
+- nghttp2 1.57.0 -> 1.61.0
+- numactl 2.0.16 -> 2.0.18
+- ofono 2.1 -> 2.4
+- opensbi 1.2 -> 1.4
+- openssh 9.5p1 -> 9.6p1
+- openssl 3.1.5 -> 3.2.1
+- opkg 0.6.2 -> 0.6.3
+- opkg-utils 0.6.2 -> 0.6.3
+- orc 0.4.34 -> 0.4.38
+- ovmf edk2-stable202308 -> edk2-stable202402
+- p11-kit 0.25.0 -> 0.25.3
+- pango 1.51.0 -> 1.52.0
+- pciutils 3.10.0 -> 3.11.1
+- piglit 1.0+gitr (71c21b1157c4…) -> 1.0+gitr (22eaf6a91cfd…)
+- pkgconf 2.0.3 -> 2.1.1
+- psplash 0.1+git (44afb7506d43…) -> 0.1+git (ecc191375669…)
+- ptest-runner 2.4.2+git -> 2.4.3+git
+- pulseaudio 16.1 -> 17.0
+- puzzles 0.0+git (2d9e414ee316…) -> 0.0+git (80aac3104096…)
+- python3 3.11.5 -> 3.12.2
+- python3-alabaster 0.7.13 -> 0.7.16
+- python3-attrs 23.1.0 -> 23.2.0
+- python3-babel 2.12.1 -> 2.14.0
+- python3-bcrypt 4.0.1 -> 4.1.2
+- python3-beartype 0.15.0 -> 0.17.2
+- python3-build 1.0.3 -> 1.1.1
+- python3-certifi 2023.7.22 -> 2024.2.2
+- python3-cffi 1.15.1 -> 1.16.0
+- python3-cryptography 41.0.4 -> 42.0.5
+- python3-cryptography-vectors 41.0.4 -> 42.0.5
+- python3-cython 0.29.36 -> 3.0.8
+- python3-dbusmock 0.29.1 -> 0.31.1
+- python3-dtschema 2023.7 -> 2024.2
+- python3-git 3.1.36 -> 3.1.42
+- python3-gitdb 4.0.10 -> 4.0.11
+- python3-hatch-fancy-pypi-readme 23.1.0 -> 24.1.0
+- python3-hatch-vcs 0.3.0 -> 0.4.0
+- python3-hatchling 1.18.0 -> 1.21.1
+- python3-hypothesis 6.86.2 -> 6.98.15
+- python3-idna 3.4 -> 3.6
+- python3-importlib-metadata 6.8.0 -> 7.0.1
+- python3-iso8601 2.0.0 -> 2.1.0
+- python3-jsonschema 4.17.3 -> 4.21.1
+- python3-license-expression 30.1.1 -> 30.2.0
+- python3-lxml 4.9.3 -> 5.0.0
+- python3-mako 1.2.4 -> 1.3.2
+- python3-markdown 3.4.4 -> 3.5.2
+- python3-markupsafe 2.1.3 -> 2.1.5
+- python3-more-itertools 10.1.0 -> 10.2.0
+- python3-numpy 1.26.0 -> 1.26.4
+- python3-packaging 23.1 -> 23.2
+- python3-pathspec 0.11.2 -> 0.12.1
+- python3-pbr 5.11.1 -> 6.0.0
+- python3-pip 23.2.1 -> 24.0
+- python3-pluggy 1.3.0 -> 1.4.0
+- python3-poetry-core 1.7.0 -> 1.9.0
+- python3-psutil 5.9.5 -> 5.9.8
+- python3-pyasn1 0.5.0 -> 0.5.1
+- python3-pycairo 1.24.0 -> 1.26.0
+- python3-pycryptodome 3.19.0 -> 3.20.0
+- python3-pycryptodomex 3.19.0 -> 3.20.0
+- python3-pygments 2.16.1 -> 2.17.2
+- python3-pyopenssl 23.2.0 -> 24.0.0
+- python3-pyrsistent 0.19.3 -> 0.20.0
+- python3-pytest 7.4.2 -> 8.0.2
+- python3-pytest-runner 6.0.0 -> 6.0.1
+- python3-pytz 2023.3 -> 2024.1
+- python3-ruamel-yaml 0.17.32 -> 0.18.6
+- python3-scons 4.5.2 -> 4.6.0
+- python3-setuptools 68.2.2 -> 69.1.1
+- python3-setuptools-rust 1.7.0 -> 1.9.0
+- python3-setuptools-scm 7.1.0 -> 8.0.4
+- python3-spdx-tools 0.8.1 -> 0.8.2
+- python3-sphinx-rtd-theme 1.3.0 -> 2.0.0
+- python3-sphinxcontrib-applehelp 1.0.4 -> 1.0.8
+- python3-sphinxcontrib-devhelp 1.0.2 -> 1.0.6
+- python3-sphinxcontrib-htmlhelp 2.0.1 -> 2.0.5
+- python3-sphinxcontrib-qthelp 1.0.3 -> 1.0.7
+- python3-sphinxcontrib-serializinghtml 1.1.5 -> 1.1.10
+- python3-subunit 1.4.2 -> 1.4.4
+- python3-testtools 2.6.0 -> 2.7.1
+- python3-trove-classifiers 2023.9.19 -> 2024.2.23
+- python3-typing-extensions 4.8.0 -> 4.10.0
+- python3-unittest-automake-output 0.1 -> 0.2
+- python3-urllib3 2.0.7 -> 2.2.1
+- python3-wcwidth 0.2.6 -> 0.2.13
+- python3-wheel 0.41.2 -> 0.42.0
+- qemu 8.1.4 -> 8.2.1
+- qemu-native 8.1.4 -> 8.2.1
+- qemu-system-native 8.1.4 -> 8.2.1
+- repo 2.36.1 -> 2.42
+- resolvconf 1.91 -> 1.92
+- rpm 4.18.1 -> 4.19.1
+- rt-tests 2.5 -> 2.6
+- rust 1.70.0 -> 1.75.0
+- rust-cross-canadian 1.70.0 -> 1.75.0
+- rust-llvm 1.70.0 -> 1.75.0
+- shaderc 2023.6 -> 2023.8
+- shadow 4.13 -> 4.14.2
+- shared-mime-info 2.2 -> 2.4
+- socat 1.7.4.4 -> 1.8.0.0
+- spirv-headers 1.3.261.1 -> 1.3.275.0
+- spirv-tools 1.3.261.1 -> 1.3.275.0
+- sqlite3 3.43.2 -> 3.45.1
+- strace 6.5 -> 6.7
+- stress-ng 0.16.05 -> 0.17.05
+- subversion 1.14.2 -> 1.14.3
+- swig 4.1.1 -> 4.2.1
+- sysstat 12.7.4 -> 12.7.5
+- systemd 254.4 -> 255.4
+- systemd-boot 254.4 -> 255.4
+- systemd-bootchart 234 -> 235
+- systemtap 4.9 -> 5.0
+- systemtap-native 4.9 -> 5.0
+- taglib 1.13.1 -> 2.0
+- ttyrun 2.29.0 -> 2.31.0
+- u-boot 2023.10 -> 2024.01
+- u-boot-tools 2023.10 -> 2024.01
+- update-rc.d 0.8 (8636cf478d42…) -> 0.8 (b8f950105010…)
+- usbutils 015 -> 017
+- util-linux 2.39.2 -> 2.39.3
+- util-linux-libuuid 2.39.2 -> 2.39.3
+- vala 0.56.13 -> 0.56.15
+- valgrind 3.21.0 -> 3.22.0
+- vim 9.0.2190 -> 9.1.0114
+- vim-tiny 9.0.2190 -> 9.1.0114
+- virglrenderer 0.10.4 -> 1.0.1
+- vte 0.72.2 -> 0.74.2
+- vulkan-headers 1.3.261.1 -> 1.3.275.0
+- vulkan-loader 1.3.261.1 -> 1.3.275.0
+- vulkan-tools 1.3.261.1 -> 1.3.275.0
+- vulkan-validation-layers 1.3.261.1 -> 1.3.275.0
+- wayland-protocols 1.32 -> 1.33
+- webkitgtk 2.40.5 -> 2.44.0
+- weston 12.0.2 -> 13.0.0
+- xkbcomp 1.4.6 -> 1.4.7
+- xkeyboard-config 2.39 -> 2.41
+- xprop 1.2.6 -> 1.2.7
+- xwayland 23.2.4 -> 23.2.5
+- xz 5.4.4 -> 5.4.6
+- zlib 1.3 -> 1.3.1
+
Contributors to 5.0
~~~~~~~~~~~~~~~~~~~
Thanks to the following people who contributed to this release:
+- Adam Johnston
+- Adithya Balakumar
+- Adrian Freihofer
+- Alassane Yattara
+- Alejandro Hernandez Samaniego
+- Aleksey Smirnov
+- Alexander Kanavin
+- Alexander Lussier-Cullen
+- Alexander Sverdlin
+- Alexandre Belloni
+- Alexandre Truong
+- Alex Bennée
+- Alexis Lothoré
+- Alex Kiernan
+- Alex Stewart
+- André Draszik
+- Anibal Limon
+- Anuj Mittal
+- Archana Polampalli
+- Arne Schwerdt
+- Bartosz Golaszewski
+- Baruch Siach
+- Bastian Krause
+- BELHADJ SALEM Talel
+- BELOUARGA Mohamed
+- Bruce Ashfield
+- Changhyeok Bae
+- Changqing Li
+- Charlie Johnston
+- Chen Qi
+- Chi Xu
+- Chris Laplante
+- Christian Taedcke
+- Christoph Vogtländer
+- Claus Stovgaard
+- Clay Chang
+- Clément Péron
+- Colin McAllister
+- Corentin Guillevic
+- Daniel Ammann
+- david d zuhn
+- David Reyna
+- Deepthi Hemraj
+- Denys Dmytriyenko
+- Derek Erdmann
+- Desone Burns
+- Dhairya Nagodra
+- Dmitry Baryshkov
+- Eero Aaltonen
+- Eilís 'pidge' Ní Fhlannagáin
+- Emil Kronborg
+- Enguerrand de Ribaucourt
+- Enrico Jörns
+- Enrico Scholz
+- Etienne Cordonnier
+- Fabien Mahot
+- Fabio Estevam
+- Fahad Arslan
+- Felix Moessbauer
+- Florian Wickert
+- Geoff Parker
+- Glenn Strauss
+- Harish Sadineni
+- Hongxu Jia
+- Ilya A. Kriveshko
+- Jamin Lin
+- Jan Vermaete
+- Jason Andryuk
+- Javier Tia
+- Jeremy A. Puhlman
+- Jérémy Rosen
+- Jermain Horsman
+- Jiang Kai
+- Joakim Tjernlund
+- Joao Marcos Costa
+- Joe Slater
+- Johan Bezem
+- Johannes Schneider
+- Jonathan GUILLOT
+- Jon Mason
+- Jörg Sommer
+- Jose Quaresma
+- Joshua Watt
+- Julien Stephan
+- Justin Bronder
+- Kai Kang
+- Kareem Zarka
+- Kevin Hao
+- Khem Raj
+- Konrad Weihmann
+- Lee Chee Yang
+- Lei Maohui
+- lixiaoyong
+- Logan Gunthorpe
+- Luca Ceresoli
+- luca fancellu
+- Lucas Stach
+- Ludovic Jozeau
+- Lukas Funke
+- Maanya Goenka
+- Malte Schmidt
+- Marcel Ziswiler
+- Marco Felsch
+- Marcus Folkesson
+- Marek Vasut
+- Mark Asselstine
+- Mark Hatle
+- Markus Fuchs
+- Markus Volk
+- Marlon Rodriguez Garcia
+- Marta Rybczynska
+- Martin Hundebøll
+- Martin Jansa
+- Massimiliano Minella
+- Maxin B. John
+- Max Krummenacher
+- Meenali Gupta
+- Michael Halstead
+- Michael Opdenacker
+- Michal Sieron
+- Mikko Rapeli
+- Ming Liu
+- Mingli Yu
+- Munehisa Kamata
+- Nick Owens
+- Niko Mauno
+- Ola x Nilsson
+- Oleh Matiusha
+- Patrick Williams
+- Paul Barker
+- Paul Eggleton
+- Paul Gortmaker
+- Pavel Zhukov
+- Peter A. Bigot
+- Peter Kjellerstedt
+- Peter Marko
+- Petr Vorel
+- Philip Balister
+- Philip Lorenz
+- Philippe Rivest
+- Piotr Łobacz
+- Priyal Doshi
+- Quentin Schulz
+- Ragesh Nair
+- Randolph Sapp
+- Randy MacLeod
+- Rasmus Villemoes
+- Renat Khalikov
+- Richard Haar
+- Richard Purdie
+- Robert Berger
+- Robert Joslyn
+- Robert P. J. Day
+- Robert Yang
+- Rodrigo M. Duarte
+- Ross Burton
+- Rouven Czerwinski
+- Ryan Eatmon
+- Sam Van Den Berge
+- Saul Wold
+- Sava Jakovljev
+- Sean Nyekjaer
+- Sergei Zhmylev
+- Shinji Matsunaga
+- Shubham Kulkarni
+- Simone Weiß
+- Siong W.LIM
+- Soumya Sambu
+- Sourav Kumar Pramanik
+- Stefan Herbrechtsmeier
+- Stéphane Veyret
+- Steve Sakoman
+- Sundeep KOKKONDA
+- Thomas Perrot
+- Thomas Wolber
+- Timon Bergelt
+- Tim Orling
+- Timotheus Giuliani
+- Tobias Hagelborn
+- Tom Hochstein
+- Tom Rini
+- Toni Lammi
+- Trevor Gamblin
+- Trevor Woerner
+- Ulrich Ölmann
+- Valek Andrej
+- venkata pyla
+- Victor Kamensky
+- Vijay Anusuri
+- Vikas Katariya
+- Vincent Davis Jr
+- Viswanath Kraleti
+- Vyacheslav Yurkov
+- Wang Mingyu
+- William A. Kennington III
+- William Hauser
+- William Lyu
+- Xiangyu Chen
+- Xiaotian Wu
+- Yang Xu
+- Yannick Rodriguez
+- Yash Shinde
+- Yi Zhao
+- Yoann Congal
+- Yogesh Tyagi
+- Yogita Urade
+- Zahir Hussain
+- Zang Ruochen
+- Zoltan Boszormenyi
+
Repositories / Downloads for Yocto-5.0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/poky/documentation/ref-manual/classes.rst b/poky/documentation/ref-manual/classes.rst
index 1d01456ece..9520d0bf7c 100644
--- a/poky/documentation/ref-manual/classes.rst
+++ b/poky/documentation/ref-manual/classes.rst
@@ -564,6 +564,13 @@ The ``Patched`` state of a CVE issue is detected from patch files with the forma
``CVE-ID.patch``, e.g. ``CVE-2019-20633.patch``, in the :term:`SRC_URI` and using
CVE metadata of format ``CVE: CVE-ID`` in the commit message of the patch file.
+.. note::
+
+ Commit message metadata (``CVE: CVE-ID`` in a patch header) will not be scanned
+ in any patches that are remote, i.e. that are anything other than local files
+ referenced via ``file://`` in SRC_URI. However, a ``CVE-ID`` in a remote patch
+ file name itself will be registered.
+
If the recipe adds ``CVE-ID`` as flag of the :term:`CVE_STATUS` variable with status
mapped to ``Ignored``, then the CVE state is reported as ``Ignored``::
@@ -1582,6 +1589,12 @@ The tests you can list with the :term:`WARN_QA` and
This is only relevant when you are using runtime package management
on your target system.
+- ``virtual-slash:`` Checks to see if ``virtual/`` is being used in
+ :term:`RDEPENDS` or :term:`RPROVIDES`, which is not good practice ---
+ ``virtual/`` is a convention intended for use in the build context
+ (i.e. :term:`PROVIDES` and :term:`DEPENDS`) rather than the runtime
+ context.
+
- ``xorg-driver-abi:`` Checks that all packages containing Xorg
drivers have ABI dependencies. The ``xserver-xorg`` recipe provides
driver ABI names. All drivers should depend on the ABI versions that
@@ -2374,6 +2387,24 @@ Python modules built with ``flit_core.buildapi`` are pure Python (no
Internally this uses the :ref:`ref-classes-python_pep517` class.
+.. _ref-classes-python_maturin:
+
+``python_maturin``
+==================
+
+The :ref:`ref-classes-python_maturin` class provides support for python-maturin, a replacement
+for setuptools_rust and another "backend" for building Python Wheels.
+
+.. _ref-classes-python_mesonpy:
+
+``python_mesonpy``
+==================
+
+The :ref:`ref-classes-python_mesonpy` class enables building Python modules which use the
+meson-python build system.
+
+Internally this uses the :ref:`ref-classes-python_pep517` class.
+
.. _ref-classes-python_pep517:
``python_pep517``
diff --git a/poky/documentation/ref-manual/qa-checks.rst b/poky/documentation/ref-manual/qa-checks.rst
index 58526a0e57..53b1836e74 100644
--- a/poky/documentation/ref-manual/qa-checks.rst
+++ b/poky/documentation/ref-manual/qa-checks.rst
@@ -799,6 +799,14 @@ Errors and Warnings
section in the Yocto Project Development Tasks Manual. See also the
":ref:`ref-classes-ptest`" section.
+.. _qa-check-virtual-slash:
+
+- ``<variable> is set to <value> but the substring 'virtual/' holds no meaning in this context. It only works for build time dependencies, not runtime ones. It is suggested to use 'VIRTUAL-RUNTIME_' variables instead.``
+
+ ``virtual/`` is a convention intended for use in the build context
+ (i.e. :term:`PROVIDES` and :term:`DEPENDS`) rather than the runtime
+ context (i.e. :term:`RPROVIDES` and :term:`RDEPENDS`). Use
+ :term:`VIRTUAL-RUNTIME` variables instead for the latter.
Configuring and Disabling QA Checks
diff --git a/poky/documentation/ref-manual/variables.rst b/poky/documentation/ref-manual/variables.rst
index 0dc881ed51..9cdcc1b61b 100644
--- a/poky/documentation/ref-manual/variables.rst
+++ b/poky/documentation/ref-manual/variables.rst
@@ -4048,7 +4048,7 @@ system and gives an overview of their function and contents.
The default value of the variable is set as follows in the
``meta/conf/distro/defaultsetup.conf`` file::
- INHERIT_DISTRO ?= "debian devshell sstate license"
+ INHERIT_DISTRO ?= "debian devshell sstate license remove-libtool create-spdx"
:term:`INHIBIT_DEFAULT_DEPS`
Prevents the default dependencies, namely the C compiler and standard
@@ -8813,6 +8813,10 @@ system and gives an overview of their function and contents.
value so that executables built using the SDK also have the flags
applied.
+ :term:`TARGET_DBGSRC_DIR`
+ Specifies the target path to debug source files. The default is
+ ``/usr/src/debug/${PN}/${PV}``.
+
:term:`TARGET_FPU`
Specifies the method for handling FPU code. For FPU-less targets,
which include most ARM CPUs, the variable must be set to "soft". If
diff --git a/poky/meta-poky/classes/poky-bleeding.bbclass b/poky/meta-poky/classes/poky-bleeding.bbclass
index e5f30687e4..3bfdcf1454 100644
--- a/poky/meta-poky/classes/poky-bleeding.bbclass
+++ b/poky/meta-poky/classes/poky-bleeding.bbclass
@@ -1,5 +1,5 @@
#
-# AUTOREV and PV containing SRCPV needs to be set early, before any anonymous python
+# AUTOREV and PV containing '+git' needs to be set early, before any anonymous python
# expands anything containing PV, else the parse process won't trigger the fetcher to
# cache the needed version data
#
@@ -13,7 +13,7 @@ python pokybleeding_version_handler () {
bb.warn("Here 5 %s %s" % (d.getVar("PN"), bpn))
d.setVar("SRCREV", "${AUTOREV}")
if "+git" not in d.getVar("PV"):
- d.appendVar("PV", "+git${SRCPV}")
+ d.appendVar("PV", "+git")
}
addhandler pokybleeding_version_handler
diff --git a/poky/meta-poky/conf/distro/poky.conf b/poky/meta-poky/conf/distro/poky.conf
index 8b061cf25c..5285753c31 100644
--- a/poky/meta-poky/conf/distro/poky.conf
+++ b/poky/meta-poky/conf/distro/poky.conf
@@ -1,7 +1,7 @@
DISTRO = "poky"
DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
-DISTRO_VERSION = "4.3+snapshot-${METADATA_REVISION}"
-DISTRO_CODENAME = "scarthgap"
+DISTRO_VERSION = "5.0+snapshot-${METADATA_REVISION}"
+DISTRO_CODENAME = "styhead"
SDK_VENDOR = "-pokysdk"
SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}"
SDK_VERSION[vardepvalue] = "${SDK_VERSION}"
diff --git a/poky/meta-selftest/conf/layer.conf b/poky/meta-selftest/conf/layer.conf
index 48ca8464f9..763ea011d4 100644
--- a/poky/meta-selftest/conf/layer.conf
+++ b/poky/meta-selftest/conf/layer.conf
@@ -11,4 +11,4 @@ BBFILE_PRIORITY_selftest = "5"
addpylib ${LAYERDIR}/lib oeqa
-LAYERSERIES_COMPAT_selftest = "scarthgap"
+LAYERSERIES_COMPAT_selftest = "styhead"
diff --git a/poky/meta-skeleton/conf/layer.conf b/poky/meta-skeleton/conf/layer.conf
index 0414fb51b6..963d2d5ce9 100644
--- a/poky/meta-skeleton/conf/layer.conf
+++ b/poky/meta-skeleton/conf/layer.conf
@@ -14,4 +14,4 @@ LAYERVERSION_skeleton = "1"
LAYERDEPENDS_skeleton = "core"
-LAYERSERIES_COMPAT_skeleton = "scarthgap"
+LAYERSERIES_COMPAT_skeleton = "styhead"
diff --git a/poky/meta/classes-global/sstate.bbclass b/poky/meta/classes-global/sstate.bbclass
index 96655ff24f..04539bbb99 100644
--- a/poky/meta/classes-global/sstate.bbclass
+++ b/poky/meta/classes-global/sstate.bbclass
@@ -4,7 +4,7 @@
# SPDX-License-Identifier: MIT
#
-SSTATE_VERSION = "11"
+SSTATE_VERSION = "12"
SSTATE_ZSTD_CLEVEL ??= "8"
diff --git a/poky/meta/conf/abi_version.conf b/poky/meta/conf/abi_version.conf
index b6643ea60b..13c2c45b42 100644
--- a/poky/meta/conf/abi_version.conf
+++ b/poky/meta/conf/abi_version.conf
@@ -12,4 +12,4 @@ OELAYOUT_ABI = "15"
# a reset of the equivalence, for example when reproducibility issues break the
# existing match data. Distros can also append to this value for the same effect.
#
-HASHEQUIV_HASH_VERSION = "15"
+HASHEQUIV_HASH_VERSION = "16"
diff --git a/poky/meta/conf/layer.conf b/poky/meta/conf/layer.conf
index efbf2610f9..f2bca0aa5b 100644
--- a/poky/meta/conf/layer.conf
+++ b/poky/meta/conf/layer.conf
@@ -7,12 +7,12 @@ BBFILE_COLLECTIONS += "core"
BBFILE_PATTERN_core = "^${LAYERDIR}/"
BBFILE_PRIORITY_core = "5"
-LAYERSERIES_CORENAMES = "scarthgap"
+LAYERSERIES_CORENAMES = "scarthgap styhead"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_core = "15"
-LAYERSERIES_COMPAT_core = "scarthgap"
+LAYERSERIES_COMPAT_core = "styhead"
BBLAYERS_LAYERINDEX_NAME_core = "openembedded-core"
diff --git a/poky/meta/lib/oe/sstatesig.py b/poky/meta/lib/oe/sstatesig.py
index 5950b3e0e6..a46e5502ab 100644
--- a/poky/meta/lib/oe/sstatesig.py
+++ b/poky/meta/lib/oe/sstatesig.py
@@ -431,10 +431,7 @@ def find_siginfo(pn, taskname, taskhashlist, d):
actual_hashval = get_hashval(fullpath)
if actual_hashval in hashfiles:
continue
- try:
- hashfiles[actual_hashval] = {'path':fullpath, 'sstate':True, 'time':get_time(fullpath)}
- except FileNotFoundError:
- bb.warn("Could not obtain mtime for {}".format(fullpath))
+ hashfiles[actual_hashval] = {'path':fullpath, 'sstate':True, 'time':get_time(fullpath)}
return hashfiles
diff --git a/poky/meta/recipes-connectivity/openssh/openssh_9.7p1.bb b/poky/meta/recipes-connectivity/openssh/openssh_9.7p1.bb
index 3b0b47097c..d1468c59fc 100644
--- a/poky/meta/recipes-connectivity/openssh/openssh_9.7p1.bb
+++ b/poky/meta/recipes-connectivity/openssh/openssh_9.7p1.bb
@@ -58,6 +58,7 @@ DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)
# systemd-sshd-socket-mode means installing sshd.socket
# and systemd-sshd-service-mode corresponding to sshd.service
PACKAGECONFIG ??= "systemd-sshd-socket-mode"
+PACKAGECONFIG[fido2] = "--with-security-key-builtin,--disable-security-key,libfido2"
PACKAGECONFIG[kerberos] = "--with-kerberos5,--without-kerberos5,krb5"
PACKAGECONFIG[ldns] = "--with-ldns,--without-ldns,ldns"
PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit"
diff --git a/poky/meta/recipes-connectivity/openssl/openssl/CVE-2024-2511.patch b/poky/meta/recipes-connectivity/openssl/openssl/CVE-2024-2511.patch
new file mode 100644
index 0000000000..8772f716d5
--- /dev/null
+++ b/poky/meta/recipes-connectivity/openssl/openssl/CVE-2024-2511.patch
@@ -0,0 +1,120 @@
+From e9d7083e241670332e0443da0f0d4ffb52829f08 Mon Sep 17 00:00:00 2001
+From: Matt Caswell <matt@openssl.org>
+Date: Tue, 5 Mar 2024 15:43:53 +0000
+Subject: [PATCH] Fix unconstrained session cache growth in TLSv1.3
+
+In TLSv1.3 we create a new session object for each ticket that we send.
+We do this by duplicating the original session. If SSL_OP_NO_TICKET is in
+use then the new session will be added to the session cache. However, if
+early data is not in use (and therefore anti-replay protection is being
+used), then multiple threads could be resuming from the same session
+simultaneously. If this happens and a problem occurs on one of the threads,
+then the original session object could be marked as not_resumable. When we
+duplicate the session object this not_resumable status gets copied into the
+new session object. The new session object is then added to the session
+cache even though it is not_resumable.
+
+Subsequently, another bug means that the session_id_length is set to 0 for
+sessions that are marked as not_resumable - even though that session is
+still in the cache. Once this happens the session can never be removed from
+the cache. When that object gets to be the session cache tail object the
+cache never shrinks again and grows indefinitely.
+
+CVE-2024-2511
+
+Reviewed-by: Neil Horman <nhorman@openssl.org>
+Reviewed-by: Tomas Mraz <tomas@openssl.org>
+(Merged from https://github.com/openssl/openssl/pull/24043)
+
+CVE: CVE-2024-2511
+Upstream-Status: Backport [https://github.com/openssl/openssl/commit/e9d7083e241670332e0443da0f0d4ffb52829f08]
+Signed-off-by: Peter Marko <peter.marko@siemens.com>
+---
+ ssl/ssl_lib.c | 5 +++--
+ ssl/ssl_sess.c | 28 ++++++++++++++++++++++------
+ ssl/statem/statem_srvr.c | 5 ++---
+ 3 files changed, 27 insertions(+), 11 deletions(-)
+
+diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c
+index 4afb43bc86e54..c51529ddab5bb 100644
+--- a/ssl/ssl_lib.c
++++ b/ssl/ssl_lib.c
+@@ -4457,9 +4457,10 @@ void ssl_update_cache(SSL_CONNECTION *s, int mode)
+
+ /*
+ * If the session_id_length is 0, we are not supposed to cache it, and it
+- * would be rather hard to do anyway :-)
++ * would be rather hard to do anyway :-). Also if the session has already
++ * been marked as not_resumable we should not cache it for later reuse.
+ */
+- if (s->session->session_id_length == 0)
++ if (s->session->session_id_length == 0 || s->session->not_resumable)
+ return;
+
+ /*
+diff --git a/ssl/ssl_sess.c b/ssl/ssl_sess.c
+index 3dcc4d81e5bc6..1fa6d17c46863 100644
+--- a/ssl/ssl_sess.c
++++ b/ssl/ssl_sess.c
+@@ -127,16 +127,11 @@ SSL_SESSION *SSL_SESSION_new(void)
+ return ss;
+ }
+
+-SSL_SESSION *SSL_SESSION_dup(const SSL_SESSION *src)
+-{
+- return ssl_session_dup(src, 1);
+-}
+-
+ /*
+ * Create a new SSL_SESSION and duplicate the contents of |src| into it. If
+ * ticket == 0 then no ticket information is duplicated, otherwise it is.
+ */
+-SSL_SESSION *ssl_session_dup(const SSL_SESSION *src, int ticket)
++static SSL_SESSION *ssl_session_dup_intern(const SSL_SESSION *src, int ticket)
+ {
+ SSL_SESSION *dest;
+
+@@ -265,6 +260,27 @@ SSL_SESSION *ssl_session_dup(const SSL_SESSION *src, int ticket)
+ return NULL;
+ }
+
++SSL_SESSION *SSL_SESSION_dup(const SSL_SESSION *src)
++{
++ return ssl_session_dup_intern(src, 1);
++}
++
++/*
++ * Used internally when duplicating a session which might be already shared.
++ * We will have resumed the original session. Subsequently we might have marked
++ * it as non-resumable (e.g. in another thread) - but this copy should be ok to
++ * resume from.
++ */
++SSL_SESSION *ssl_session_dup(const SSL_SESSION *src, int ticket)
++{
++ SSL_SESSION *sess = ssl_session_dup_intern(src, ticket);
++
++ if (sess != NULL)
++ sess->not_resumable = 0;
++
++ return sess;
++}
++
+ const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, unsigned int *len)
+ {
+ if (len)
+diff --git a/ssl/statem/statem_srvr.c b/ssl/statem/statem_srvr.c
+index 853af8c0aa9f9..d5f0ab091dacc 100644
+--- a/ssl/statem/statem_srvr.c
++++ b/ssl/statem/statem_srvr.c
+@@ -2445,9 +2445,8 @@ CON_FUNC_RETURN tls_construct_server_hello(SSL_CONNECTION *s, WPACKET *pkt)
+ * so the following won't overwrite an ID that we're supposed
+ * to send back.
+ */
+- if (s->session->not_resumable ||
+- (!(SSL_CONNECTION_GET_CTX(s)->session_cache_mode & SSL_SESS_CACHE_SERVER)
+- && !s->hit))
++ if (!(SSL_CONNECTION_GET_CTX(s)->session_cache_mode & SSL_SESS_CACHE_SERVER)
++ && !s->hit)
+ s->session->session_id_length = 0;
+
+ if (usetls13) {
diff --git a/poky/meta/recipes-connectivity/openssl/openssl_3.2.1.bb b/poky/meta/recipes-connectivity/openssl/openssl_3.2.1.bb
index c7134c54db..d37b68abbb 100644
--- a/poky/meta/recipes-connectivity/openssl/openssl_3.2.1.bb
+++ b/poky/meta/recipes-connectivity/openssl/openssl_3.2.1.bb
@@ -13,6 +13,7 @@ SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \
file://0001-Configure-do-not-tweak-mips-cflags.patch \
file://0001-Added-handshake-history-reporting-when-test-fails.patch \
file://bti.patch \
+ file://CVE-2024-2511.patch \
"
SRC_URI:append:class-nativesdk = " \
diff --git a/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb b/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
index 6e222dfaa7..4cf55519cc 100644
--- a/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
+++ b/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
@@ -26,7 +26,7 @@ inherit core-image setuptools3 features_check
REQUIRED_DISTRO_FEATURES += "xattr"
-SRCREV ?= "cf69c6843fb62ab2ebee361f3d1a1141f1a6b01a"
+SRCREV ?= "17723c6e34096a53fb186cc70cfc604bb30da8b9"
SRC_URI = "git://git.yoctoproject.org/poky;branch=master \
file://Yocto_Build_Appliance.vmx \
file://Yocto_Build_Appliance.vmxf \
diff --git a/poky/meta/recipes-core/kbd/kbd/0001-Remove-non-free-Agafari-fonts.patch b/poky/meta/recipes-core/kbd/kbd/0001-Remove-non-free-Agafari-fonts.patch
new file mode 100644
index 0000000000..de279b55f9
--- /dev/null
+++ b/poky/meta/recipes-core/kbd/kbd/0001-Remove-non-free-Agafari-fonts.patch
@@ -0,0 +1,73 @@
+From b757e6842f9631757f0d1a6b3833aabffa9ffeee Mon Sep 17 00:00:00 2001
+From: Alexey Gladkov <legion@kernel.org>
+Date: Thu, 29 Feb 2024 17:38:37 +0100
+Subject: [PATCH] Remove non-free Agafari fonts
+
+Based on legal analysis, we are removing non-free fonts for now. If we
+can change the license of these fonts, we will return them back.
+
+From: Stanislav Brabec <sbrabec@suse.com>
+Date: Wed, 28 Feb 2024 16:47:54 +0100
+Subject: kbd: Legal problems of Agafari fonts
+
+ The data/consolefonts/README.Ethiopic contains a notice:
+ Agafari:
+ Donated by the Ethiopian Science and Technology Commission
+ <ncic@padis.gn.apc.org> or <ncic@telecom.net.et> and may be redistributed
+ for non-commercial use under Unix environments only.
+
+ According to our legal review, it makes impossible to distribute these
+ fonts as part of any commercial products, and even makes it impossible to
+ distribute kbd sources as part of any commercial product services.
+
+ Additionally, it makes the whole kbd package incompatible with GPL, so the
+ COPYING file (created during build of the tarball) cannot declare GPL
+ version 2. It also violates section 6 of GPL (no further restrictions).
+
+ That is why several GNU/Linux distributions exclude Agafari from the
+ release. To be on a safe side, SUSE even decided to repack any source
+ tarballs before putting it to their servers.
+
+ This was probably reported to the former kbd maintainer about 20 years ago,
+ but nothing changed over years.
+
+ That is why I recommend removing Agafari fonts and removing the reference
+ to them from README.Ethiopic. Alternatively, you can ask the Ethiopian
+ Science and Technology Commission for re-licensing.
+
+Signed-off-by: Alexey Gladkov <legion@kernel.org>
+
+Upstream-Status: Backport [https://github.com/legionus/kbd/commit/b757e6842f9631757f0d1a6b3833aabffa9ffeee]
+
+[do_configure prepend added to remove binary files]
+
+Signed-off-by: Peter Marko <peter.marko@siemens.com>
+---
+ data/consolefonts/Agafari-12.psfu | Bin 7989 -> 0 bytes
+ data/consolefonts/Agafari-14.psfu | Bin 9013 -> 0 bytes
+ data/consolefonts/Agafari-16.psfu | Bin 10037 -> 0 bytes
+ data/consolefonts/README.Ethiopic | 5 -----
+ 4 files changed, 5 deletions(-)
+ delete mode 100644 data/consolefonts/Agafari-12.psfu
+ delete mode 100644 data/consolefonts/Agafari-14.psfu
+ delete mode 100644 data/consolefonts/Agafari-16.psfu
+
+diff --git a/data/consolefonts/README.Ethiopic b/data/consolefonts/README.Ethiopic
+index 7502722..2810797 100644
+--- a/data/consolefonts/README.Ethiopic
++++ b/data/consolefonts/README.Ethiopic
+@@ -14,11 +14,6 @@ Ethiopic fonts:
+ restrictions below:
+
+
+-Agafari:
+- Donated by the Ethiopian Science and Technology Commission
+- <ncic@padis.gn.apc.org> or <ncic@telecom.net.et> and may be redistributed
+- for non-commercial use under Unix environments only.
+-
+ Goha and GohaClassic:
+ Donated by Yitna Firdyiwek <ybf2u@virgina.edu> of GohaTibeb Associates
+ and may be redistributed without restriction under the GNU GPL 2.0.
+--
+2.30.2
+
diff --git a/poky/meta/recipes-core/kbd/kbd_2.6.4.bb b/poky/meta/recipes-core/kbd/kbd_2.6.4.bb
index 790055aa96..2331b51e59 100644
--- a/poky/meta/recipes-core/kbd/kbd_2.6.4.bb
+++ b/poky/meta/recipes-core/kbd/kbd_2.6.4.bb
@@ -1,9 +1,19 @@
SUMMARY = "Keytable files and keyboard utilities"
HOMEPAGE = "http://www.kbd-project.org/"
DESCRIPTION = "The kbd project contains tools for managing Linux console (Linux console, virtual terminals, keyboard, etc.) – mainly, what they do is loading console fonts and keyboard maps."
-# everything minus console-fonts is GPL-2.0-or-later
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+# consolefonts and keymaps contain also some public domain and author notice licenses
+LICENSE = "GPL-2.0-or-later & LGPL-2.0-or-later & GPL-3.0-or-later"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://data/keymaps/pine/en.map;beginline=2;endline=15;md5=20914a59c0546a7b77ebf959bc88ad5d \
+"
+LICENSE:${PN} = "GPL-2.0-or-later & LGPL-2.0-or-later"
+LICENSE:${PN}-consolefonts = "GPL-2.0-or-later"
+LICENSE:${PN}-consoletrans = "GPL-2.0-or-later"
+LICENSE:${PN}-keymaps-pine = "GPL-3.0-or-later"
+LICENSE:${PN}-keymaps = "GPL-2.0-or-later"
+LICENSE:${PN}-unimaps = "GPL-2.0-or-later"
inherit autotools gettext pkgconfig
@@ -14,6 +24,7 @@ RPROVIDES:${PN} = "console-tools"
RCONFLICTS:${PN} = "console-tools"
SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/${BP}.tar.xz \
+ file://0001-Remove-non-free-Agafari-fonts.patch \
"
SRC_URI[sha256sum] = "519f8d087aecca7e0a33cd084bef92c066eb19731666653dcc70c9d71aa40926"
@@ -24,13 +35,22 @@ PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
PACKAGECONFIG[pam] = "--enable-vlock, --disable-vlock, libpam,"
-PACKAGES += "${PN}-consolefonts ${PN}-keymaps ${PN}-unimaps ${PN}-consoletrans"
+PACKAGES += "${PN}-consolefonts ${PN}-keymaps-pine ${PN}-keymaps ${PN}-unimaps ${PN}-consoletrans"
FILES:${PN}-consolefonts = "${datadir}/consolefonts"
FILES:${PN}-consoletrans = "${datadir}/consoletrans"
+FILES:${PN}-keymaps-pine = "${datadir}/keymaps/pine"
FILES:${PN}-keymaps = "${datadir}/keymaps"
FILES:${PN}-unimaps = "${datadir}/unimaps"
+RRECOMMENDS:${PN}-keymaps = "${PN}-keymaps-pine"
+
+# remove this when upgrading to newer version which has integrated
+# https://github.com/legionus/kbd/commit/b757e6842f9631757f0d1a6b3833aabffa9ffeee
+do_configure:prepend() {
+ rm -rf ${S}/data/consolefonts/Agafari-1*
+}
+
do_install:append () {
if [ "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'yes', 'no', d)}" = "yes" ] \
&& [ -f ${D}${sysconfdir}/pam.d/vlock ]; then
diff --git a/poky/meta/recipes-core/meta/buildtools-tarball.bb b/poky/meta/recipes-core/meta/buildtools-tarball.bb
index a5f6bb7aac..92fbda335d 100644
--- a/poky/meta/recipes-core/meta/buildtools-tarball.bb
+++ b/poky/meta/recipes-core/meta/buildtools-tarball.bb
@@ -11,6 +11,8 @@ TOOLCHAIN_HOST_TASK ?= "\
nativesdk-python3-git \
nativesdk-python3-jinja2 \
nativesdk-python3-testtools \
+ nativesdk-python3-pip \
+ nativesdk-python3-setuptools \
nativesdk-python3-subunit \
nativesdk-python3-pyyaml \
nativesdk-python3-websockets \
diff --git a/poky/meta/recipes-devtools/python/python-testtools.inc b/poky/meta/recipes-devtools/python/python-testtools.inc
deleted file mode 100644
index e9dd97ec1c..0000000000
--- a/poky/meta/recipes-devtools/python/python-testtools.inc
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Extensions to the Python standard library unit testing framework"
-HOMEPAGE = "https://pypi.org/project/testtools/"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e2c9d3e8ba7141c83bfef190e0b9379a"
-
-inherit pypi
-
-SRC_URI[sha256sum] = "df6de96010e29ee21f637a147eabf30d50b25e3841dd1d68f93ee89ce77e366c"
-
-DEPENDS += " \
- python3-pbr \
- "
-
-# Satisfy setup.py 'setup_requires'
-DEPENDS += " \
- python3-pbr-native \
- "
-
-RDEPENDS:${PN} += "\
- python3-doctest \
- python3-extras \
- python3-pbr \
- python3-six \
- "
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-jsonschema-specifications_2023.12.1.bb b/poky/meta/recipes-devtools/python/python3-jsonschema-specifications_2023.12.1.bb
index eb63509fce..4ee0dd9b12 100644
--- a/poky/meta/recipes-devtools/python/python3-jsonschema-specifications_2023.12.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-jsonschema-specifications_2023.12.1.bb
@@ -11,6 +11,6 @@ inherit pypi python_hatchling
PYPI_PACKAGE = "jsonschema_specifications"
-DEPENDS += "${PYTHON_PN}-hatch-vcs-native"
+DEPENDS += "python3-hatch-vcs-native"
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-referencing_0.34.0.bb b/poky/meta/recipes-devtools/python/python3-referencing_0.34.0.bb
index 9388fca376..6fbd10d9cf 100644
--- a/poky/meta/recipes-devtools/python/python3-referencing_0.34.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-referencing_0.34.0.bb
@@ -7,7 +7,7 @@ SRC_URI[sha256sum] = "5773bd84ef41799a5a8ca72dc34590c041eb01bf9aa02632b4a973fb01
inherit pypi python_hatchling
-DEPENDS += "${PYTHON_PN}-hatch-vcs-native"
+DEPENDS += "python3-hatch-vcs-native"
RDEPENDS:${PN} += "python3-rpds-py"
diff --git a/poky/meta/recipes-devtools/python/python3-testtools_2.7.1.bb b/poky/meta/recipes-devtools/python/python3-testtools_2.7.1.bb
index 79e46a02de..cc7e055632 100644
--- a/poky/meta/recipes-devtools/python/python3-testtools_2.7.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-testtools_2.7.1.bb
@@ -1,3 +1,20 @@
-inherit setuptools3
-require python-testtools.inc
+SUMMARY = "Extensions to the Python standard library unit testing framework"
+HOMEPAGE = "https://pypi.org/project/testtools/"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e2c9d3e8ba7141c83bfef190e0b9379a"
+
+DEPENDS += "python3-hatch-vcs-native"
+
+inherit pypi python_hatchling
+
+SRC_URI[sha256sum] = "df6de96010e29ee21f637a147eabf30d50b25e3841dd1d68f93ee89ce77e366c"
+
+RDEPENDS:${PN} += "\
+ python3-doctest \
+ python3-extras \
+ python3-six \
+ "
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3/0001-test_xml_etree.py-Fix-for-Expat-2.6.0-with-reparse-d.patch b/poky/meta/recipes-devtools/python/python3/0001-test_xml_etree.py-Fix-for-Expat-2.6.0-with-reparse-d.patch
deleted file mode 100644
index 598ef08cc4..0000000000
--- a/poky/meta/recipes-devtools/python/python3/0001-test_xml_etree.py-Fix-for-Expat-2.6.0-with-reparse-d.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From d07ca7fbd874e230dec4d4c6d650a66ea2a9008e Mon Sep 17 00:00:00 2001
-From: Sebastian Pipping <sebastian@pipping.org>
-Date: Wed, 7 Feb 2024 15:32:45 +0100
-Subject: [PATCH] test_xml_etree.py: Fix for Expat >=2.6.0 with reparse
- deferral
-
-Upstream-Status: Submitted [https://github.com/python/cpython/pull/115138]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Lib/test/test_xml_etree.py | 10 ++++++----
- .../2024-02-07-15-49-37.gh-issue-115133.WBajNr.rst | 1 +
- 2 files changed, 7 insertions(+), 4 deletions(-)
- create mode 100644 Misc/NEWS.d/next/Tests/2024-02-07-15-49-37.gh-issue-115133.WBajNr.rst
-
-diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py
-index b50898f..4578367 100644
---- a/Lib/test/test_xml_etree.py
-+++ b/Lib/test/test_xml_etree.py
-@@ -1403,6 +1403,7 @@ class XMLPullParserTest(unittest.TestCase):
- def test_simple_xml(self):
- for chunk_size in (None, 1, 5):
- with self.subTest(chunk_size=chunk_size):
-+ expected_events = []
- parser = ET.XMLPullParser()
- self.assert_event_tags(parser, [])
- self._feed(parser, "<!-- comment -->\n", chunk_size)
-@@ -1412,16 +1413,17 @@ class XMLPullParserTest(unittest.TestCase):
- chunk_size)
- self.assert_event_tags(parser, [])
- self._feed(parser, ">\n", chunk_size)
-- self.assert_event_tags(parser, [('end', 'element')])
-+ expected_events += [('end', 'element')]
- self._feed(parser, "<element>text</element>tail\n", chunk_size)
- self._feed(parser, "<empty-element/>\n", chunk_size)
-- self.assert_event_tags(parser, [
-+ expected_events += [
- ('end', 'element'),
- ('end', 'empty-element'),
-- ])
-+ ]
- self._feed(parser, "</root>\n", chunk_size)
-- self.assert_event_tags(parser, [('end', 'root')])
-+ expected_events += [('end', 'root')]
- self.assertIsNone(parser.close())
-+ self.assert_event_tags(parser, expected_events)
-
- def test_feed_while_iterating(self):
- parser = ET.XMLPullParser()
-diff --git a/Misc/NEWS.d/next/Tests/2024-02-07-15-49-37.gh-issue-115133.WBajNr.rst b/Misc/NEWS.d/next/Tests/2024-02-07-15-49-37.gh-issue-115133.WBajNr.rst
-new file mode 100644
-index 0000000..4dc9c13
---- /dev/null
-+++ b/Misc/NEWS.d/next/Tests/2024-02-07-15-49-37.gh-issue-115133.WBajNr.rst
-@@ -0,0 +1 @@
-+Fix etree XMLPullParser tests for Expat >=2.6.0 with reparse deferral
diff --git a/poky/meta/recipes-devtools/python/python3_3.12.2.bb b/poky/meta/recipes-devtools/python/python3_3.12.3.bb
index f837f05af4..b49a58a101 100644
--- a/poky/meta/recipes-devtools/python/python3_3.12.2.bb
+++ b/poky/meta/recipes-devtools/python/python3_3.12.3.bb
@@ -30,14 +30,13 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
file://0001-skip-no_stdout_fileno-test-due-to-load-variability.patch \
file://0001-test_storlines-skip-due-to-load-variability.patch \
file://0001-gh-114492-Initialize-struct-termios-before-calling-t.patch \
- file://0001-test_xml_etree.py-Fix-for-Expat-2.6.0-with-reparse-d.patch \
"
SRC_URI:append:class-native = " \
file://0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch \
"
-SRC_URI[sha256sum] = "be28112dac813d2053545c14bf13a16401a21877f1a69eb6ea5d84c4a0f3d870"
+SRC_URI[sha256sum] = "56bfef1fdfc1221ce6720e43a661e3eb41785dd914ce99698d8c7896af4bdaa1"
# exclude pre-releases for both python 2.x and 3.x
UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
diff --git a/poky/scripts/lib/build_perf/html/measurement_chart.html b/poky/scripts/lib/build_perf/html/measurement_chart.html
index 9acb3785e2..65f1a227ad 100644
--- a/poky/scripts/lib/build_perf/html/measurement_chart.html
+++ b/poky/scripts/lib/build_perf/html/measurement_chart.html
@@ -1,76 +1,50 @@
-<script type="module">
- // Get raw data
- const rawData = [
- {% for sample in measurement.samples %}
- [{{ sample.commit_num }}, {{ sample.mean.gv_value() }}, {{ sample.start_time }}],
- {% endfor %}
- ];
+<script type="text/javascript">
+ chartsDrawing += 1;
+ google.charts.setOnLoadCallback(drawChart_{{ chart_elem_id }});
+ function drawChart_{{ chart_elem_id }}() {
+ var data = new google.visualization.DataTable();
- const convertToMinute = (time) => {
- return time[0]*60 + time[1] + time[2]/60 + time[3]/3600;
- }
+ // Chart options
+ var options = {
+ theme : 'material',
+ legend: 'none',
+ hAxis: { format: '', title: 'Commit number',
+ minValue: {{ chart_opts.haxis.min }},
+ maxValue: {{ chart_opts.haxis.max }} },
+ {% if measurement.type == 'time' %}
+ vAxis: { format: 'h:mm:ss' },
+ {% else %}
+ vAxis: { format: '' },
+ {% endif %}
+ pointSize: 5,
+ chartArea: { left: 80, right: 15 },
+ };
- // Convert raw data to the format: [time, value]
- const data = rawData.map(([commit, value, time]) => {
- return [
- // The Date object takes values in milliseconds rather than seconds. So to use a Unix timestamp we have to multiply it by 1000.
- new Date(time * 1000).getTime(),
- // Assuming the array values are duration in the format [hours, minutes, seconds, milliseconds]
- Array.isArray(value) ? convertToMinute(value) : value
- ]
- });
+ // Define data columns
+ data.addColumn('number', 'Commit');
+ data.addColumn('{{ measurement.value_type.gv_data_type }}',
+ '{{ measurement.value_type.quantity }}');
+ // Add data rows
+ data.addRows([
+ {% for sample in measurement.samples %}
+ [{{ sample.commit_num }}, {{ sample.mean.gv_value() }}],
+ {% endfor %}
+ ]);
- // Set chart options
- const option = {
- tooltip: {
- trigger: 'axis',
- valueFormatter: (value) => {
- const hours = Math.floor(value/60)
- const minutes = Math.floor(value % 60)
- const seconds = Math.floor((value * 60) % 60)
- return hours + ':' + minutes + ':' + seconds
- }
- },
- xAxis: {
- type: 'time',
- },
- yAxis: {
- name: '{{ measurement.value_type.quantity }}' == 'time' ? 'Duration in minutes' : 'Disk size in MB',
- type: 'value',
- min: function(value) {
- return Math.round(value.min - 0.5);
- },
- max: function(value) {
- return Math.round(value.max + 0.5);
- }
- },
- dataZoom: [
- {
- type: 'slider',
- xAxisIndex: 0,
- filterMode: 'none'
- },
- ],
- series: [
- {
- name: '{{ measurement.value_type.quantity }}',
- type: 'line',
- smooth: true,
- symbol: 'none',
- data: data
- }
- ]
- };
-
- // Draw chart
- const chart_div = document.getElementById('{{ chart_elem_id }}');
- const measurement_chart= echarts.init(chart_div, null, {
- height: 320
- });
- // Change chart size with browser resize
- window.addEventListener('resize', function() {
- measurement_chart.resize();
- });
- measurement_chart.setOption(option);
+ // Finally, draw the chart
+ chart_div = document.getElementById('{{ chart_elem_id }}');
+ var chart = new google.visualization.LineChart(chart_div);
+ google.visualization.events.addListener(chart, 'ready', function () {
+ //chart_div = document.getElementById('{{ chart_elem_id }}');
+ //chart_div.innerHTML = '<img src="' + chart.getImageURI() + '">';
+ png_div = document.getElementById('{{ chart_elem_id }}_png');
+ png_div.outerHTML = '<a id="{{ chart_elem_id }}_png" href="' + chart.getImageURI() + '">PNG</a>';
+ console.log("CHART READY: {{ chart_elem_id }}");
+ chartsDrawing -= 1;
+ if (chartsDrawing == 0)
+ console.log("ALL CHARTS READY");
+ });
+ chart.draw(data, options);
+}
</script>
diff --git a/poky/scripts/lib/build_perf/html/report.html b/poky/scripts/lib/build_perf/html/report.html
index 4cd240760a..d1ba6f2578 100644
--- a/poky/scripts/lib/build_perf/html/report.html
+++ b/poky/scripts/lib/build_perf/html/report.html
@@ -3,7 +3,11 @@
<head>
{# Scripts, for visualization#}
<!--START-OF-SCRIPTS-->
-<script src=" https://cdn.jsdelivr.net/npm/echarts@5.5.0/dist/echarts.min.js "></script>
+<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
+<script type="text/javascript">
+google.charts.load('current', {'packages':['corechart']});
+var chartsDrawing = 0;
+</script>
{# Render measurement result charts #}
{% for test in test_data %}
@@ -24,15 +28,23 @@
text-align: left;
border-collapse: collapse;
}
+.meta-table tr:nth-child(even){background-color: #f2f2f2}
+meta-table th, .meta-table td {
+ padding: 4px;
+}
.summary {
+ margin: 0;
font-size: 14px;
text-align: left;
border-collapse: collapse;
}
+summary th, .meta-table td {
+ padding: 4px;
+}
.measurement {
padding: 8px 0px 8px 8px;
border: 2px solid #f0f0f0;
- margin: 1.5rem 0;
+ margin-bottom: 10px;
}
.details {
margin: 0;
@@ -52,58 +64,18 @@
background-color: #f0f0f0;
margin-left: 10px;
}
-.card-container {
- border-bottom-width: 1px;
- padding: 1.25rem 3rem;
- box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
- border-radius: 0.25rem;
-}
-body {
- font-family: 'Helvetica', sans-serif;
- margin: 3rem 8rem;
-}
-h1 {
- text-align: center;
+hr {
+ color: #f0f0f0;
}
h2 {
- font-size: 1.5rem;
+ font-size: 20px;
margin-bottom: 0px;
color: #707070;
- padding-top: 1.5rem;
}
h3 {
- font-size: 1.3rem;
+ font-size: 16px;
margin: 0px;
color: #707070;
- padding: 1.5rem 0;
-}
-h4 {
- font-size: 14px;
- font-weight: lighter;
- line-height: 1.2rem;
- margin: auto;
- padding-top: 1rem;
-}
-table {
- margin-top: 1.5rem;
- line-height: 2rem;
-}
-tr {
- border-bottom: 1px solid #e5e7eb;
-}
-tr:first-child {
- border-bottom: 1px solid #9ca3af;
-}
-tr:last-child {
- border-bottom: none;
-}
-a {
- text-decoration: none;
- font-weight: bold;
- color: #0000EE;
-}
-a:hover {
- color: #8080ff;
}
</style>
@@ -111,14 +83,13 @@ a:hover {
</head>
{% macro poky_link(commit) -%}
- <a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?id={{ commit }}">{{ commit[0:11] }}</a>
+ <a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?id={{ commit }}">{{ commit[0:11] }}</a>
{%- endmacro %}
-<body><div>
- <h1 style="text-align: center;">Performance Test Report</h1>
+<body><div style="width: 700px">
{# Test metadata #}
<h2>General</h2>
- <h4>The table provides an overview of the comparison between two selected commits from the same branch.</h4>
+ <hr>
<table class="meta-table" style="width: 100%">
<tr>
<th></th>
@@ -141,21 +112,19 @@ a:hover {
{# Test result summary #}
<h2>Test result summary</h2>
- <h4>The test summary presents a thorough breakdown of each test conducted on the branch, including details such as build time and disk space consumption. Additionally, it gives insights into the average time taken for test execution, along with absolute and relative values for a better understanding.</h4>
+ <hr>
<table class="summary" style="width: 100%">
- <tr>
- <th>Test name</th>
- <th>Measurement description</th>
- <th>Mean value</th>
- <th>Absolute difference</th>
- <th>Relative difference</th>
- </tr>
{% for test in test_data %}
+ {% if loop.index is even %}
+ {% set row_style = 'style="background-color: #f2f2f2"' %}
+ {% else %}
+ {% set row_style = 'style="background-color: #ffffff"' %}
+ {% endif %}
{% if test.status == 'SUCCESS' %}
{% for measurement in test.measurements %}
<tr {{ row_style }}>
{% if loop.index == 1 %}
- <td><a href=#{{test.name}}>{{ test.name }}: {{ test.description }}</a></td>
+ <td>{{ test.name }}: {{ test.description }}</td>
{% else %}
{# add empty cell in place of the test name#}
<td></td>
@@ -184,12 +153,10 @@ a:hover {
</table>
{# Detailed test results #}
- <h2>Test details</h2>
- <h4>The following section provides details of each test, accompanied by charts representing build time and disk usage over time or by commit number.</h4>
{% for test in test_data %}
- <h3 style="color: #000;" id={{test.name}}>{{ test.name }}: {{ test.description }}</h3>
+ <h2>{{ test.name }}: {{ test.description }}</h2>
+ <hr>
{% if test.status == 'SUCCESS' %}
- <div class="card-container">
{% for measurement in test.measurements %}
<div class="measurement">
<h3>{{ measurement.description }}</h3>
@@ -308,8 +275,7 @@ a:hover {
{% endif %}
{% endif %}
</div>
- {% endfor %}
- </div>
+ {% endfor %}
{# Unsuccessful test #}
{% else %}
<span style="font-size: 150%; font-weight: bold; color: red;">{{ test.status }}
diff --git a/poky/scripts/lib/build_perf/report.py b/poky/scripts/lib/build_perf/report.py
index 82c56830d7..ab77424cc7 100644
--- a/poky/scripts/lib/build_perf/report.py
+++ b/poky/scripts/lib/build_perf/report.py
@@ -294,7 +294,7 @@ class SizeVal(MeasurementVal):
return "null"
return self / 1024
-def measurement_stats(meas, prefix='', time=0):
+def measurement_stats(meas, prefix=''):
"""Get statistics of a measurement"""
if not meas:
return {prefix + 'sample_cnt': 0,
@@ -319,7 +319,6 @@ def measurement_stats(meas, prefix='', time=0):
stats['quantity'] = val_cls.quantity
stats[prefix + 'sample_cnt'] = len(values)
- start_time = time # Add start time for both type sysres and disk usage
mean_val = val_cls(mean(values))
min_val = val_cls(min(values))
max_val = val_cls(max(values))
@@ -335,7 +334,6 @@ def measurement_stats(meas, prefix='', time=0):
stats[prefix + 'max'] = max_val
stats[prefix + 'minus'] = val_cls(mean_val - min_val)
stats[prefix + 'plus'] = val_cls(max_val - mean_val)
- stats[prefix + 'start_time'] = start_time
return stats
diff --git a/poky/scripts/oe-build-perf-report b/poky/scripts/oe-build-perf-report
index 266700d294..7812ea4540 100755
--- a/poky/scripts/oe-build-perf-report
+++ b/poky/scripts/oe-build-perf-report
@@ -336,9 +336,7 @@ def print_html_report(data, id_comp, buildstats):
test_i = test_data['tests'][test]
meas_i = test_i['measurements'][meas]
commit_num = get_data_item(meta, 'layers.meta.commit_count')
- # Add start_time for both test measurement types of sysres and disk usage
- start_time = test_i['start_time'][0]
- samples.append(measurement_stats(meas_i, '', start_time))
+ samples.append(measurement_stats(meas_i))
samples[-1]['commit_num'] = commit_num
absdiff = samples[-1]['val_cls'](samples[-1]['mean'] - samples[id_comp]['mean'])
@@ -475,7 +473,7 @@ Examine build performance test results from a Git repository"""
group.add_argument('--branch', '-B', default='master', help="Branch to find commit in")
group.add_argument('--branch2', help="Branch to find comparision revisions in")
group.add_argument('--machine', default='qemux86')
- group.add_argument('--history-length', default=300, type=int,
+ group.add_argument('--history-length', default=25, type=int,
help="Number of tested revisions to plot in html report")
group.add_argument('--commit',
help="Revision to search for")
diff --git a/poky/scripts/oe-setup-build b/poky/scripts/oe-setup-build
index c0476992a2..5364f2b481 100755
--- a/poky/scripts/oe-setup-build
+++ b/poky/scripts/oe-setup-build
@@ -91,16 +91,7 @@ def setup_build_env(args):
builddir = args.b if args.b else template["buildpath"]
no_shell = args.no_shell
coredir = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), '..'))
- cmd_base = ". {} {}".format(os.path.join(coredir, 'oe-init-build-env'), os.path.abspath(builddir))
-
- initbuild = os.path.join(builddir, 'init-build-env')
- if not os.path.exists(initbuild):
- os.makedirs(builddir, exist_ok=True)
- with open(initbuild, 'w') as f:
- f.write(cmd_base)
- print("\nRun '. {}' to initialize the build in a current shell session.\n".format(initbuild))
-
- cmd = "TEMPLATECONF={} {}".format(template["templatepath"], cmd_base)
+ cmd = "TEMPLATECONF={} . {} {}".format(template["templatepath"], os.path.join(coredir, 'oe-init-build-env'), builddir)
if not no_shell:
cmd = cmd + " && {}".format(os.environ['SHELL'])
print("Running:", cmd)