summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-gnome/recipes-gnome/libtimezonemap/files/0001-configure.ac-correct-the-version.patch29
-rw-r--r--meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb3
-rw-r--r--meta-initramfs/recipes-devtools/dracut/dracut_106.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/aom/aom_3.12.1.bb1
-rw-r--r--meta-multimedia/recipes-multimedia/pipewire/pipewire_1.4.4.bb (renamed from meta-multimedia/recipes-multimedia/pipewire/pipewire_1.4.3.bb)2
-rw-r--r--meta-networking/classes/waf-samba.bbclass4
-rw-r--r--meta-oe/classes/check-version-mismatch.bbclass3
-rw-r--r--meta-oe/classes/discoverable-disk-image.bbclass132
-rw-r--r--meta-oe/classes/signing.bbclass158
-rw-r--r--meta-oe/classes/sysext-image.bbclass76
-rw-r--r--meta-oe/conf/version-check.conf6
-rw-r--r--meta-oe/recipes-core/systemd/systemd-repart-native_257.6.bb59
-rw-r--r--meta-oe/recipes-devtools/mpich/mpich_4.3.0.bb4
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs_22.16.0.bb6
-rw-r--r--meta-oe/recipes-extended/icewm/icewm_3.7.4.bb4
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.2.8/0001-hiredis-use-default-CC-if-it-is-set.patch (renamed from meta-oe/recipes-extended/redis/redis-7.2.7/0001-hiredis-use-default-CC-if-it-is-set.patch)0
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.2.8/0002-lua-update-Makefile-to-use-environment-build-setting.patch (renamed from meta-oe/recipes-extended/redis/redis-7.2.7/0002-lua-update-Makefile-to-use-environment-build-setting.patch)0
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.2.8/0003-hack-to-force-use-of-libc-malloc.patch (renamed from meta-oe/recipes-extended/redis/redis-7.2.7/0003-hack-to-force-use-of-libc-malloc.patch)0
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.2.8/0004-src-Do-not-reset-FINAL_LIBS.patch (renamed from meta-oe/recipes-extended/redis/redis-7.2.7/0004-src-Do-not-reset-FINAL_LIBS.patch)0
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.2.8/0005-Define-_GNU_SOURCE-to-get-PTHREAD_MUTEX_INITIALIZER.patch (renamed from meta-oe/recipes-extended/redis/redis-7.2.7/0005-Define-_GNU_SOURCE-to-get-PTHREAD_MUTEX_INITIALIZER.patch)0
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.2.8/0006-Define-correct-gregs-for-RISCV32.patch (renamed from meta-oe/recipes-extended/redis/redis-7.2.7/0006-Define-correct-gregs-for-RISCV32.patch)0
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.2.8/init-redis-server (renamed from meta-oe/recipes-extended/redis/redis-7.2.7/init-redis-server)0
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.2.8/redis.conf (renamed from meta-oe/recipes-extended/redis/redis-7.2.7/redis.conf)0
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.2.8/redis.service (renamed from meta-oe/recipes-extended/redis/redis-7.2.7/redis.service)0
-rw-r--r--meta-oe/recipes-extended/redis/redis_7.2.8.bb (renamed from meta-oe/recipes-extended/redis/redis_7.2.7.bb)2
-rw-r--r--meta-oe/recipes-graphics/graphviz/graphviz_12.2.1.bb6
-rw-r--r--meta-oe/recipes-support/bvi/bvi_1.4.2.bb4
-rw-r--r--meta-oe/recipes-support/espeak/espeak_1.48.04.bb4
-rw-r--r--meta-oe/recipes-support/hdf5/hdf5_1.14.4-3.bb4
-rw-r--r--meta-oe/recipes-support/libserialmodule/libserialmodule_1.0.8.bb (renamed from meta-oe/recipes-support/libserialmodule/libserialmodule_1.0.7.bb)2
-rw-r--r--meta-oe/recipes-support/uim/uim_1.9.0.bb12
-rw-r--r--meta-oe/recipes-support/unixodbc/unixodbc_2.3.12.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-charset-normalizer/0001-pyproject.toml-Relax-version-for-mypy.patch25
-rw-r--r--meta-python/recipes-devtools/python/python3-charset-normalizer_3.4.2.bb (renamed from meta-python/recipes-devtools/python/python3-charset-normalizer_3.4.1.bb)3
-rw-r--r--meta-python/recipes-devtools/python/python3-libevdev_0.12.bb (renamed from meta-python/recipes-devtools/python/python3-libevdev_0.11.bb)2
-rw-r--r--meta-python/recipes-devtools/python/python3-portion_2.6.1.bb (renamed from meta-python/recipes-devtools/python/python3-portion_2.6.0.bb)4
-rw-r--r--meta-python/recipes-devtools/python/python3-typer_0.16.0.bb (renamed from meta-python/recipes-devtools/python/python3-typer_0.15.4.bb)4
37 files changed, 467 insertions, 98 deletions
diff --git a/meta-gnome/recipes-gnome/libtimezonemap/files/0001-configure.ac-correct-the-version.patch b/meta-gnome/recipes-gnome/libtimezonemap/files/0001-configure.ac-correct-the-version.patch
new file mode 100644
index 0000000000..0538bc3e5c
--- /dev/null
+++ b/meta-gnome/recipes-gnome/libtimezonemap/files/0001-configure.ac-correct-the-version.patch
@@ -0,0 +1,29 @@
1From 915bc44d9f243075d084238c72089a346036388c Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com>
3Date: Thu, 29 May 2025 10:08:21 +0800
4Subject: [PATCH] configure.ac: correct the version
5
6The source is here:
7https://salsa.debian.org/cinnamon-team/libtimezonemap
8
9Upstream-Status: Pending [ register account rejected ]
10
11Signed-off-by: Changqing Li <changqing.li@windriver.com>
12---
13 configure.ac | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/configure.ac b/configure.ac
17index 3f74dae..24eb0e5 100644
18--- a/configure.ac
19+++ b/configure.ac
20@@ -1,5 +1,5 @@
21 AC_INIT([libtimezonemap],
22- [0.4.4],
23+ [0.4.6],
24 [http://bugs.launchpad.net/libtimezonemap],
25 [libtimezonemap],
26 [http://launchpad.net/libtimezonemap])
27--
282.34.1
29
diff --git a/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb b/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb
index bafe7af040..3f37890e8d 100644
--- a/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb
+++ b/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb
@@ -4,7 +4,8 @@ SECTION = "devel/lib"
4LICENSE = "GPL-3.0-only" 4LICENSE = "GPL-3.0-only"
5LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" 5LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
6 6
7SRC_URI = "${DEBIAN_MIRROR}/main/libt/${BPN}/${BPN}_${PV}.orig.tar.gz;downloadfilename=${BP}.tar.gz" 7SRC_URI = "${DEBIAN_MIRROR}/main/libt/${BPN}/${BPN}_${PV}.orig.tar.gz;downloadfilename=${BP}.tar.gz \
8 file://0001-configure.ac-correct-the-version.patch"
8SRC_URI[sha256sum] = "0d634cc2476d8f57d1ee1864bd4f442180ae4bf040a9ae4bf73b66bbd85d7195" 9SRC_URI[sha256sum] = "0d634cc2476d8f57d1ee1864bd4f442180ae4bf040a9ae4bf73b66bbd85d7195"
9 10
10DEPENDS = "gtk+3 gdk-pixbuf libsoup-2.4 json-glib gnome-common-native" 11DEPENDS = "gtk+3 gdk-pixbuf libsoup-2.4 json-glib gnome-common-native"
diff --git a/meta-initramfs/recipes-devtools/dracut/dracut_106.bb b/meta-initramfs/recipes-devtools/dracut/dracut_106.bb
index b70ee4baeb..871119521f 100644
--- a/meta-initramfs/recipes-devtools/dracut/dracut_106.bb
+++ b/meta-initramfs/recipes-devtools/dracut/dracut_106.bb
@@ -35,7 +35,7 @@ EXTRA_OECONF = "--prefix=${prefix} \
35PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" 35PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
36PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,,,systemd" 36PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,,,systemd"
37 37
38EXTRA_OEMAKE += 'libdir=${nonarch_libdir} LDLIBS="${LDLIBS}" enable_test=no' 38EXTRA_OEMAKE += 'libdir=${nonarch_libdir} LDLIBS="${LDLIBS}" enable_test=no DRACUT_FULL_VERSION=${PV}'
39 39
40CFLAGS:append = " -fPIC" 40CFLAGS:append = " -fPIC"
41LDLIBS:append:libc-musl = " -lfts" 41LDLIBS:append:libc-musl = " -lfts"
diff --git a/meta-multimedia/recipes-multimedia/aom/aom_3.12.1.bb b/meta-multimedia/recipes-multimedia/aom/aom_3.12.1.bb
index 681ebb4d3d..94e3f4f14f 100644
--- a/meta-multimedia/recipes-multimedia/aom/aom_3.12.1.bb
+++ b/meta-multimedia/recipes-multimedia/aom/aom_3.12.1.bb
@@ -21,6 +21,7 @@ EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=1 -DENABLE_TESTS=0 \
21CMAKE_VERBOSE = "VERBOSE=1" 21CMAKE_VERBOSE = "VERBOSE=1"
22CFLAGS:append:libc-musl = " -D_GNU_SOURCE" 22CFLAGS:append:libc-musl = " -D_GNU_SOURCE"
23EXTRA_OECMAKE:append:arm = " -DENABLE_NEON=OFF" 23EXTRA_OECMAKE:append:arm = " -DENABLE_NEON=OFF"
24EXTRA_OECMAKE:append:riscv32 = " -DENABLE_RVV=OFF"
24 25
25do_generate_toolchain_file:append() { 26do_generate_toolchain_file:append() {
26 echo "set(AOM_AS_FLAGS --debug-prefix-map ${S}=${TARGET_DBGSRC_DIR})" >> ${WORKDIR}/toolchain.cmake 27 echo "set(AOM_AS_FLAGS --debug-prefix-map ${S}=${TARGET_DBGSRC_DIR})" >> ${WORKDIR}/toolchain.cmake
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.4.3.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.4.4.bb
index 5fe8a1c105..5eefb07532 100644
--- a/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.4.3.bb
+++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.4.4.bb
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = " \
12 12
13DEPENDS = "dbus ncurses" 13DEPENDS = "dbus ncurses"
14 14
15SRCREV = "331d5e03516a99c56b3064dbbbd639a3ae848d36" 15SRCREV = "3f79bcae5d4415f82907b49221ca05241a7f263c"
16BRANCH = "${@oe.utils.trim_version('${PV}', 2)}" 16BRANCH = "${@oe.utils.trim_version('${PV}', 2)}"
17SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=${BRANCH};protocol=https" 17SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=${BRANCH};protocol=https"
18 18
diff --git a/meta-networking/classes/waf-samba.bbclass b/meta-networking/classes/waf-samba.bbclass
index 49d64b096f..cb78ce6b0d 100644
--- a/meta-networking/classes/waf-samba.bbclass
+++ b/meta-networking/classes/waf-samba.bbclass
@@ -1,7 +1,7 @@
1# waf is a build system which is used by samba related project. 1# waf is a build system which is used by samba related project.
2# Obtain details from https://wiki.samba.org/index.php/Waf 2# Obtain details from https://wiki.samba.org/index.php/Waf
3# 3#
4inherit python3native 4inherit qemu python3native
5 5
6DEPENDS += "qemu-native libxslt-native docbook-xsl-stylesheets-native python3" 6DEPENDS += "qemu-native libxslt-native docbook-xsl-stylesheets-native python3"
7 7
@@ -77,7 +77,7 @@ do_configure() {
77 echo 'Checking uname release type: "${OLDEST_KERNEL}"' >> ${CROSS_ANSWERS} 77 echo 'Checking uname release type: "${OLDEST_KERNEL}"' >> ${CROSS_ANSWERS}
78 cat ${WAF_CROSS_ANSWERS_PATH}/cross-answers-${TARGET_ARCH}.txt >> ${CROSS_ANSWERS} 78 cat ${WAF_CROSS_ANSWERS_PATH}/cross-answers-${TARGET_ARCH}.txt >> ${CROSS_ANSWERS}
79 79
80 qemu_binary="${@oe.qemu.qemu_target_binary(d)}" 80 qemu_binary="${@qemu_target_binary(d)}"
81 if [ "${qemu_binary}" = "qemu-allarch" ]; then 81 if [ "${qemu_binary}" = "qemu-allarch" ]; then
82 qemu_binary="qemuwrapper" 82 qemu_binary="qemuwrapper"
83 fi 83 fi
diff --git a/meta-oe/classes/check-version-mismatch.bbclass b/meta-oe/classes/check-version-mismatch.bbclass
index e83cfec756..f735280d7a 100644
--- a/meta-oe/classes/check-version-mismatch.bbclass
+++ b/meta-oe/classes/check-version-mismatch.bbclass
@@ -1,3 +1,6 @@
1QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS:tune-%s" % d.getVar('TUNE_PKGARCH')) or ""}"
2QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS:tune-${TUNE_PKGARCH}"
3
1ENABLE_VERSION_MISMATCH_CHECK ?= "${@'1' if bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d) else '0'}" 4ENABLE_VERSION_MISMATCH_CHECK ?= "${@'1' if bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d) else '0'}"
2DEBUG_VERSION_MISMATCH_CHECK ?= "1" 5DEBUG_VERSION_MISMATCH_CHECK ?= "1"
3CHECK_VERSION_PV ?= "" 6CHECK_VERSION_PV ?= ""
diff --git a/meta-oe/classes/discoverable-disk-image.bbclass b/meta-oe/classes/discoverable-disk-image.bbclass
new file mode 100644
index 0000000000..e601bf452f
--- /dev/null
+++ b/meta-oe/classes/discoverable-disk-image.bbclass
@@ -0,0 +1,132 @@
1##
2# Copyright OpenEmbedded Contributors
3#
4# SPDX-License-Identifier: MIT
5#
6#
7# Discoverable Disk Image (DDI)
8#
9# "DDIs (Discoverable Disk Images) are self-describing file system
10# images that follow the DPS ( Discoverable Partitions Specification),
11# wrapped in a GPT partition table, that may contain root (or /usr/)
12# filesystems for bootable OS images, system extensions, configuration
13# extensions, portable services, containers and more, and shall be
14# protected by signed dm-verity all combined into one. They are
15# designed to be composable and stackable, and provide security by
16# default."
17# https://uapi-group.org/specifications/specs/discoverable_disk_image/
18# https://uapi-group.org/specifications/specs/discoverable_partitions_specification/
19# https://www.freedesktop.org/software/systemd/man/latest/systemd.image-policy.html
20
21# To be able to use discoverable-disk-images with a
22# root-verity-sig or usr-verity-sig configuration:
23# - systemd needs to include the PACKAGECONFIG 'cryptsetup', and
24# - the kernel needs the following features enabled:
25# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG=y
26# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG_PLATFORM_KEYRING=y
27# CONFIG_EROFS_FS=y
28# CONFIG_EROFS_FS_XATTR=y
29# CONFIG_EROFS_FS_ZIP=y
30# CONFIG_EROFS_FS_ZIP_LZMA=y
31# CONFIG_INTEGRITY_SIGNATURE=y
32# CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
33# CONFIG_INTEGRITY_PLATFORM_KEYRING=y
34# CONFIG_SYSTEM_BLACKLIST_KEYRING=y
35# CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
36# CONFIG_SIGNATURE=y
37
38# To sign DDIs, a key and certificate need to be provided by setting
39# the variables:
40# REPART_PRIVATE_KEY
41# private key so sign the verity-hash
42# REPART_PRIVATE_KEY_SOURCE
43# optional, can be "engine:pkcs11" when using a (soft)hsm
44# REPART_CERTIFICATE
45# corresponding public certificate, in .pem format
46#
47
48# For signature verification, systemd-sysext expects the matching
49# certificate to reside in /etc/verity.d as PEM formated .crt file.
50#
51# To enforce loading of only signed extension images, an appropriate
52# image policy has to be passed to systemd-sysext, e.g.:
53# systemd-sysext --image-policy='root=signed+absent:usr=signed+absent:=unused+absent' merge
54
55# 'systemd-dissect' can be used to inspect, manually mount, ... a DDI.
56
57inherit image
58
59IMAGE_FSTYPES = "ddi"
60
61DEPENDS += " \
62 systemd-repart-native \
63 erofs-utils-native \
64 openssl-native \
65"
66
67# systemd-repart --make-ddi takes one of "sysext", "confext" or "portable",
68# which it then takes and looks up definitions in the host os; which we need
69# to divert to the sysroot-native by setting '--definitions=' instead.
70#
71REPART_DDI_TYPE ?= "sysext"
72
73REPART_DDI_EXTENSION ?= "ddi"
74
75# systemd-repart creates temporary directoryies under /var/tmp/.#repartXXXXXXX/,
76# to estimate partition size etc. Since files are copied there from the image/rootfs
77# folder - which are owned by pseudo-root - this temporary location has to be
78# added to the directories handled by pseudo; otherwise calls to e.g.
79# fchown(0,0) inside systemd git/src/shared/copy.c end up failing.
80PSEUDO_INCLUDE_PATHS .= ",/var/tmp/"
81
82oe_image_systemd_repart_make_ddi() {
83
84 local additional_args=""
85
86 if [ -n "${REPART_PRIVATE_KEY}" ]
87 then
88 if [ -n "${REPART_PRIVATE_KEY_SOURCE}" ]
89 then
90 additional_args="$additional_args --private-key-source=${REPART_PRIVATE_KEY_SOURCE}"
91 fi
92 additional_args="$additional_args --private-key=${REPART_PRIVATE_KEY}"
93 fi
94
95 if [ -n "${REPART_CERTIFICATE}" ]
96 then
97 additional_args="$additional_args --certificate=${REPART_CERTIFICATE}"
98 fi
99
100 # map architectures to systemd's expected values
101 local systemd_arch="${TARGET_ARCH}"
102 case "${systemd_arch}" in
103 aarch64)
104 systemd_arch=arm64
105 ;;
106 x86_64)
107 systemd_arch=x86-64
108 ;;
109 esac
110
111 # prepare system-repart configuration
112 mkdir -p ${B}/definitions.repart.d
113 cp ${STAGING_LIBDIR_NATIVE}/systemd/repart/definitions/${REPART_DDI_TYPE}.repart.d/* ${B}/definitions.repart.d/
114 # enable erofs compression
115 sed -i "/^Compression/d" ${B}/definitions.repart.d/10-root.conf
116 echo "Compression=lzma\nCompressionLevel=3" >> ${B}/definitions.repart.d/10-root.conf
117 # disable verity signature partition creation, if no key is provided
118 if [ -z "${REPART_PRIVATE_KEY}" ]; then
119 rm ${B}/definitions.repart.d/30-root-verity-sig.conf
120 fi
121
122 systemd-repart \
123 --definitions="${B}/definitions.repart.d/" \
124 --copy-source="${IMAGE_ROOTFS}" \
125 --empty=create --size=auto --dry-run=no --offline=yes \
126 --architecture="${systemd_arch}" \
127 --json=pretty --no-pager $additional_args \
128 "${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${REPART_DDI_EXTENSION}"
129}
130
131IMAGE_CMD:ddi = "oe_image_systemd_repart_make_ddi"
132do_image_ddi[deptask] += "do_unpack"
diff --git a/meta-oe/classes/signing.bbclass b/meta-oe/classes/signing.bbclass
index 8af7bbf8e0..c9759e9198 100644
--- a/meta-oe/classes/signing.bbclass
+++ b/meta-oe/classes/signing.bbclass
@@ -54,7 +54,7 @@
54SIGNING_PKCS11_URI ?= "" 54SIGNING_PKCS11_URI ?= ""
55SIGNING_PKCS11_MODULE ?= "" 55SIGNING_PKCS11_MODULE ?= ""
56 56
57DEPENDS += "softhsm-native libp11-native opensc-native openssl-native" 57DEPENDS += "softhsm-native libp11-native opensc-native openssl-native extract-cert-native"
58 58
59def signing_class_prepare(d): 59def signing_class_prepare(d):
60 import os.path 60 import os.path
@@ -123,58 +123,122 @@ signing_import_define_role() {
123 echo "_SIGNING_PKCS11_MODULE_${role}_=\"softhsm\"" >> $_SIGNING_ENV_FILE_ 123 echo "_SIGNING_PKCS11_MODULE_${role}_=\"softhsm\"" >> $_SIGNING_ENV_FILE_
124} 124}
125 125
126# signing_import_cert_from_der <role> <der> 126# signing_import_cert_from_der <cert_name> <der>
127# 127#
128# Import a certificate from DER file to a role. To be used 128# Import a certificate from DER file to a cert_name.
129# with SoftHSM. 129# Where the <cert_name> can either be a previously setup
130# signing_import_define_role linking the certificate to a signing key,
131# or a new identifier when dealing with a standalone certificate.
132#
133# To be used with SoftHSM.
130signing_import_cert_from_der() { 134signing_import_cert_from_der() {
131 local role="${1}" 135 local cert_name="${1}"
132 local der="${2}" 136 local der="${2}"
133 137
134 signing_pkcs11_tool --type cert --write-object "${der}" --label "${role}" 138 # check wether the cert_name/role needs to be defined first,
139 # or do so otherwise
140 local uri=$(siging_get_uri $cert_name)
141 if [ -z "$uri" ]; then
142 signing_import_define_role "$cert_name"
143 fi
144
145 signing_pkcs11_tool --type cert --write-object "${der}" --label "${cert_name}"
135} 146}
136 147
137# signing_import_cert_chain_from_pem <role> <pem> 148# signing_import_set_ca <cert_name> <ca_cert_name>
138# 149#
150# Link the certificate from <cert_name> to its issuer stored in
151# <ca_cert_name> By walking this linked list a CA-chain can later be
152# reconstructed from the involed roles.
153signing_import_set_ca() {
154 local cert_name="${1}"
155 local ca_cert_name="${2}"
156
157 echo "_SIGNING_CA_${cert_name}_=\"${ca_cert_name}\"" >> $_SIGNING_ENV_FILE_
158 echo "added link from ${cert_name} to ${ca_cert_name}"
159}
139 160
140# Import a certificate *chain* from a PEM file to a role. 161# signing_get_ca <cert_name>
141# (e.g. multiple ones concatenated in one file)
142# 162#
143# Due to limitations in the toolchain: 163# returns the <ca_cert_name> that has been set previously through
144# signing class -> softhsm -> 'extract-cert' 164# signing_import_set_ca; or the empty string if none was set
145# the input certificate is split into a sequentially numbered list of roles, 165signing_get_ca() {
146# starting at <role>_1 166 local cert_name="${1}"
167
168 eval local ca_cert_name="\$_SIGNING_CA_${cert_name}_"
169 echo "$ca_cert_name"
170}
171
172# signing_has_ca <cert_name>
147# 173#
148# (The limitations are the conversion step from x509 to a plain .der, and 174# check if the cert_name links to another cert_name that is its
149# extract-cert expecting a x509 and then producing only plain .der again) 175# certificate authority/issuer.
150signing_import_cert_chain_from_pem() { 176signing_has_ca() {
151 local role="${1}" 177 local ca_cert_name="$(signing_get_ca ${1})"
152 local pem="${2}" 178
153 local i=1 179 test -n "$ca_cert_name"
154 180 return $?
155 cat "${pem}" | \
156 while openssl x509 -inform pem -outform der -out ${B}/temp_${i}.der; do
157 signing_import_define_role "${role}_${i}"
158 signing_pkcs11_tool --type cert \
159 --write-object ${B}/temp_${i}.der \
160 --label "${role}_${i}"
161 rm ${B}/temp_${i}.der
162 echo "imported ${pem} under role: ${role}_${i}"
163 i=$(awk "BEGIN {print $i+1}")
164 done
165} 181}
166 182
167# signing_import_cert_from_pem <role> <pem> 183# signing_get_intermediate_certs <cert_name>
168# 184#
169# Import a certificate from PEM file to a role. To be used 185# return a list of role/name intermediary CA certificates for a given
170# with SoftHSM. 186# <cert_name> by walking the chain setup with signing_import_set_ca.
187#
188# The returned list will not include the the root CA, and can
189# potentially be empty.
190#
191# To be used with SoftHSM.
192signing_get_intermediate_certs() {
193 local cert_name="${1}"
194 local intermediary=""
195 while signing_has_ca "${cert_name}"; do
196 cert_name="$(signing_get_ca ${cert_name})"
197 if signing_has_ca "${cert_name}"; then
198 intermediary="${intermediary} ${cert_name}"
199 fi
200 done
201 echo "${intermediary}"
202}
203
204# signing_get_root_cert <cert_name>
205#
206# return the role/name of the CA root certificate for a given
207# <cert_name>, by walking the chain setup with signing_import_set_ca
208# all the way to the last in line that doesn't have a CA set - which
209# would be the root.
210#
211# To be used with SoftHSM.
212signing_get_root_cert() {
213 local cert_name="${1}"
214 while signing_has_ca "${cert_name}"; do
215 cert_name="$(signing_get_ca ${cert_name})"
216 done
217 echo "${cert_name}"
218}
219
220# signing_import_cert_from_pem <cert_name> <pem>
221#
222# Import a certificate from PEM file to a cert_name.
223# Where the <cert_name> can either be a previously setup
224# signing_import_define_role linking the certificate to a signing key,
225# or a new identifier when dealing with a standalone certificate.
226#
227# To be used with SoftHSM.
171signing_import_cert_from_pem() { 228signing_import_cert_from_pem() {
172 local role="${1}" 229 local cert_name="${1}"
173 local pem="${2}" 230 local pem="${2}"
174 231
232 # check wether the cert_name/role needs to be defined first,
233 # or do so otherwise
234 local uri=$(siging_get_uri $cert_name)
235 if [ -z "$uri" ]; then
236 signing_import_define_role "$cert_name"
237 fi
238
175 openssl x509 \ 239 openssl x509 \
176 -in "${pem}" -inform pem -outform der | 240 -in "${pem}" -inform pem -outform der |
177 signing_pkcs11_tool --type cert --write-object /proc/self/fd/0 --label "${role}" 241 signing_pkcs11_tool --type cert --write-object /proc/self/fd/0 --label "${cert_name}"
178} 242}
179 243
180# signing_import_pubkey_from_der <role> <der> 244# signing_import_pubkey_from_der <role> <der>
@@ -346,6 +410,30 @@ signing_get_module() {
346 fi 410 fi
347} 411}
348 412
413# signing_extract_cert_der <role> <der>
414#
415# Export a certificate attached to a role into a DER file.
416# To be used with SoftHSM.
417signing_extract_cert_der() {
418 local role="${1}"
419 local output="${2}"
420
421 extract-cert "$(signing_get_uri $role)" "${output}"
422}
423
424# signing_extract_cert_pem <role> <pem>
425#
426# Export a certificate attached to a role into a PEM file.
427# To be used with SoftHSM.
428signing_extract_cert_pem() {
429 local role="${1}"
430 local output="${2}"
431
432 extract-cert "$(signing_get_uri $role)" "${output}.tmp-der"
433 openssl x509 -inform der -in "${output}.tmp-der" -out "${output}"
434 rm "${output}.tmp-der"
435}
436
349python () { 437python () {
350 signing_class_prepare(d) 438 signing_class_prepare(d)
351} 439}
diff --git a/meta-oe/classes/sysext-image.bbclass b/meta-oe/classes/sysext-image.bbclass
new file mode 100644
index 0000000000..4d97b59ce3
--- /dev/null
+++ b/meta-oe/classes/sysext-image.bbclass
@@ -0,0 +1,76 @@
1#
2# Copyright OpenEmbedded Contributors
3#
4# SPDX-License-Identifier: MIT
5#
6
7# System extension images may – dynamically at runtime — extend the
8# /usr/ and /opt/ directory hierarchies with additional files. This is
9# particularly useful on immutable system images where a /usr/ and/or
10# /opt/ hierarchy residing on a read-only file system shall be
11# extended temporarily at runtime without making any persistent
12# modifications.
13
14# Example usage:
15## place a symlink into the systemd-sysext image search path:
16# $> mkdir /run/extensions
17# $> ln -s /tmp/extension-example.sysext.ddi /run/extensions/example.raw
18## list all available extensions:
19# $> systemd-sysext list
20## and enable the found extensions:
21# $> SYSTEMD_LOG_LEVEL=debug systemd-sysext merge
22
23# Note: PACKAGECONFIG:pn-systemd needs to include 'sysext'
24
25# systemd-sysext [1] has a simple mechanism for version compatibility:
26# the extension to be loaded has to contain a file named
27# /usr/lib/extension-release.d/extension-release.NAME
28# with "NAME" part *exactly* matching the filename of the extensions
29# raw-device filename/
30#
31# From the extension-release file the "ID" and "VERSION_ID" fields are
32# matched against same fields present in `os-release` and the extension
33# is "merged" only if values in both fields from both files are an
34# exact match.
35#
36# Link: https://www.freedesktop.org/software/systemd/man/latest/systemd-sysext.html
37
38inherit image
39
40# Include '.sysext' in the deployed image filename and symlink
41IMAGE_NAME = "${IMAGE_BASENAME}${IMAGE_MACHINE_SUFFIX}${IMAGE_VERSION_SUFFIX}.sysext"
42IMAGE_LINK_NAME = "${IMAGE_BASENAME}${IMAGE_MACHINE_SUFFIX}.sysext"
43EXTENSION_NAME = "${IMAGE_LINK_NAME}.${IMAGE_FSTYPES}"
44
45# Base extension identification fields
46EXTENSION_ID_FIELD ?= "${DISTRO}"
47EXTENSION_VERSION_FIELD ?= "${DISTRO_VERSION}"
48
49sysext_image_add_version_identifier_file() {
50 # Use matching based on Distro name and version
51 echo 'ID=${EXTENSION_ID_FIELD}' > ${WORKDIR}/extension-release.base
52 # os-release.bb does "sanitise_value(ver)", which needs to be done here too
53 echo 'VERSION_ID=${EXTENSION_VERSION_FIELD}' \
54 | sed 's,+,-,g;s, ,_,g' \
55 >> ${WORKDIR}/extension-release.base
56
57 # Instruct `systemd-sysext` to perform re-load once extension image is verified
58 echo 'EXTENSION_RELOAD_MANAGER=1' >> ${WORKDIR}/extension-release.base
59
60 install -d ${IMAGE_ROOTFS}${nonarch_libdir}/extension-release.d
61 install -m 0644 ${WORKDIR}/extension-release.base \
62 ${IMAGE_ROOTFS}${nonarch_libdir}/extension-release.d/extension-release.${EXTENSION_NAME}
63
64 # systemd-sysext expects an extension-release file of the exact same name as the image;
65 # by setting a xattr we allow renaming of the extension image file.
66 # (Kernel: this requires xattr support in the used filesystem)
67 setfattr -n user.extension-release.strict -v false \
68 ${IMAGE_ROOTFS}${nonarch_libdir}/extension-release.d/extension-release.${EXTENSION_NAME}
69}
70
71ROOTFS_POSTPROCESS_COMMAND += "sysext_image_add_version_identifier_file"
72
73# remove 'os-release' from the packages to be installed into the image.
74# systemd-sysext otherwise raises the error:
75# Extension contains '/usr/lib/os-release', which is not allowed, refusing.
76PACKAGE_EXCLUDE += "os-release"
diff --git a/meta-oe/conf/version-check.conf b/meta-oe/conf/version-check.conf
index dee5fe40d5..b41c9e8d22 100644
--- a/meta-oe/conf/version-check.conf
+++ b/meta-oe/conf/version-check.conf
@@ -29,3 +29,9 @@ CHECK_VERSION_PV:pn-sg3-utils = "%"
29CHECK_VERSION_PV:pn-netperf = "2.7.%" 29CHECK_VERSION_PV:pn-netperf = "2.7.%"
30CHECK_VERSION_PV:pn-bridge-utils = "1.7%" 30CHECK_VERSION_PV:pn-bridge-utils = "1.7%"
31CHECK_VERSION_PV:pn-turbostat = "2024.07.26" 31CHECK_VERSION_PV:pn-turbostat = "2024.07.26"
32CHECK_VERSION_PV:pn-bpftool = "%"
33CHECK_VERSION_PV:pn-libhugetlbfs = "%"
34CHECK_VERSION_PV:pn-pps-tools = '%'
35CHECK_VERSION_PV:pn-libusb-compat = "0.1.12"
36CHECK_VERSION_PV:pn-jemalloc = "${@d.getVar('PV').split('+')[0]}%"
37CHECK_VERSION_PV:pn-dialog = "${@d.getVar('PV').split('-')[0]}%"
diff --git a/meta-oe/recipes-core/systemd/systemd-repart-native_257.6.bb b/meta-oe/recipes-core/systemd/systemd-repart-native_257.6.bb
new file mode 100644
index 0000000000..15b60af02e
--- /dev/null
+++ b/meta-oe/recipes-core/systemd/systemd-repart-native_257.6.bb
@@ -0,0 +1,59 @@
1# SPDX-License-Identifier: MIT
2#
3# Copyright Leica Geosystems AG
4#
5
6SUMMARY = "systemd-repart"
7DESCRIPTION = "systemd-repart grows and adds partitions to a partition table, based on the configuration files described in repart.d(5), or generates a Discoverable Disk Image (DDI) for a system extension (sysext, see systemd-sysext(8))."
8HOMEPAGE = "http://www.freedesktop.org/wiki/Software/systemd"
9
10LICENSE = "GPL-2.0-only & LGPL-2.1-or-later"
11LICENSE:libsystemd = "LGPL-2.1-or-later"
12LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
13 file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
14
15SRCREV = "00a12c234e2506f5cab683460199575f13c454db"
16SRCBRANCH = "v257-stable"
17SRC_URI = "git://github.com/systemd/systemd.git;protocol=https;branch=${SRCBRANCH}"
18
19S = "${WORKDIR}/git"
20
21DEPENDS = " \
22 cryptsetup-native \
23 gperf-native \
24 libcap \
25 python3-jinja2-native \
26 util-linux \
27"
28
29inherit meson pkgconfig gettext native
30
31MESON_TARGET = "systemd-repart"
32
33# Helper variables to clarify locations. This mirrors the logic in systemd's
34# build system.
35rootprefix ?= "${root_prefix}"
36rootlibdir ?= "${base_libdir}"
37rootlibexecdir = "${rootprefix}/lib"
38
39EXTRA_OEMESON += "-Dnobody-user=nobody \
40 -Dnobody-group=nogroup \
41 -Drootlibdir=${rootlibdir} \
42 -Drootprefix=${rootprefix} \
43 -Ddefault-locale=C \
44 -Dmode=release \
45 -Dsystem-alloc-uid-min=101 \
46 -Dsystem-uid-max=999 \
47 -Dsystem-alloc-gid-min=101 \
48 -Dsystem-gid-max=999 \
49"
50
51do_install() {
52 install -d ${D}${bindir}/
53 install -m 0755 ${B}/systemd-repart ${D}${bindir}/systemd-repart
54 install -d ${D}${libdir}/
55 install -m 0644 ${B}/src/shared/libsystemd-shared-257.so ${D}${libdir}/libsystemd-shared-257.so
56
57 install -d ${D}${libdir}/systemd/repart/
58 cp -r ${S}/src/repart/definitions ${D}${libdir}/systemd/repart/
59}
diff --git a/meta-oe/recipes-devtools/mpich/mpich_4.3.0.bb b/meta-oe/recipes-devtools/mpich/mpich_4.3.0.bb
index af15ce61a3..6babba3de7 100644
--- a/meta-oe/recipes-devtools/mpich/mpich_4.3.0.bb
+++ b/meta-oe/recipes-devtools/mpich/mpich_4.3.0.bb
@@ -28,13 +28,13 @@ PACKAGECONFIG[fortran] = "--with-cross=${WORKDIR}/cross_values.txt --enable-fort
28LDFLAGS:append:x86-64 = " -lgcc" 28LDFLAGS:append:x86-64 = " -lgcc"
29LDFLAGS:append:x86 = " -lgcc" 29LDFLAGS:append:x86 = " -lgcc"
30 30
31inherit autotools gettext pkgconfig 31inherit autotools gettext pkgconfig qemu
32 32
33DEPENDS += "qemu-native" 33DEPENDS += "qemu-native"
34 34
35do_configure() { 35do_configure() {
36 if [ "${@bb.utils.contains('PACKAGECONFIG', 'fortran', '1', '', d)}" = "1" ]; then 36 if [ "${@bb.utils.contains('PACKAGECONFIG', 'fortran', '1', '', d)}" = "1" ]; then
37 qemu_binary="${@oe.qemu.qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}" 37 qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
38 cat > ${WORKDIR}/qemuwrapper << EOF 38 cat > ${WORKDIR}/qemuwrapper << EOF
39#!/bin/sh 39#!/bin/sh
40$qemu_binary "\$@" 40$qemu_binary "\$@"
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_22.16.0.bb b/meta-oe/recipes-devtools/nodejs/nodejs_22.16.0.bb
index c2bf3b6bd3..43d9b99fd8 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs_22.16.0.bb
+++ b/meta-oe/recipes-devtools/nodejs/nodejs_22.16.0.bb
@@ -9,7 +9,7 @@ DEPENDS = "openssl openssl-native file-replacement-native python3-packaging-nati
9DEPENDS:append:class-target = " qemu-native" 9DEPENDS:append:class-target = " qemu-native"
10DEPENDS:append:class-native = " c-ares-native" 10DEPENDS:append:class-native = " c-ares-native"
11 11
12inherit pkgconfig python3native ptest siteinfo 12inherit pkgconfig python3native qemu ptest siteinfo
13 13
14COMPATIBLE_MACHINE:armv4 = "(!.*armv4).*" 14COMPATIBLE_MACHINE:armv4 = "(!.*armv4).*"
15COMPATIBLE_MACHINE:armv5 = "(!.*armv5).*" 15COMPATIBLE_MACHINE:armv5 = "(!.*armv5).*"
@@ -107,8 +107,8 @@ python do_create_v8_qemu_wrapper () {
107 on the host.""" 107 on the host."""
108 qemu_libdirs = [d.expand('${STAGING_DIR_HOST}${libdir}'), 108 qemu_libdirs = [d.expand('${STAGING_DIR_HOST}${libdir}'),
109 d.expand('${STAGING_DIR_HOST}${base_libdir}')] 109 d.expand('${STAGING_DIR_HOST}${base_libdir}')]
110 qemu_cmd = oe.qemu.qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), 110 qemu_cmd = qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'),
111 qemu_libdirs) 111 qemu_libdirs)
112 112
113 if d.getVar("HOST_AND_TARGET_SAME_WIDTH") == "1": 113 if d.getVar("HOST_AND_TARGET_SAME_WIDTH") == "1":
114 qemu_cmd = "" 114 qemu_cmd = ""
diff --git a/meta-oe/recipes-extended/icewm/icewm_3.7.4.bb b/meta-oe/recipes-extended/icewm/icewm_3.7.4.bb
index 77160b5b51..fa76f2e34e 100644
--- a/meta-oe/recipes-extended/icewm/icewm_3.7.4.bb
+++ b/meta-oe/recipes-extended/icewm/icewm_3.7.4.bb
@@ -10,7 +10,7 @@ SRC_URI[sha256sum] = "e248e299616f417f5051423ea65a15668b71c1fdc9b5e477b47b1e80db
10UPSTREAM_CHECK_URI = "https://github.com/ice-wm/${BPN}/releases" 10UPSTREAM_CHECK_URI = "https://github.com/ice-wm/${BPN}/releases"
11UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)" 11UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
12 12
13inherit autotools pkgconfig gettext perlnative features_check update-alternatives 13inherit autotools pkgconfig gettext perlnative features_check qemu update-alternatives
14REQUIRED_DISTRO_FEATURES = "x11" 14REQUIRED_DISTRO_FEATURES = "x11"
15 15
16EXTRA_OECONF += "--with-libdir=${datadir}/icewm \ 16EXTRA_OECONF += "--with-libdir=${datadir}/icewm \
@@ -31,7 +31,7 @@ do_compile:prepend:class-target() {
31 cd ${B} 31 cd ${B}
32 oe_runmake -C src genpref 32 oe_runmake -C src genpref
33 33
34 qemu_binary="${@oe.qemu.qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}',['${B}/src/.libs','${STAGING_DIR_TARGET}/${libdir}','${STAGING_DIR_TARGET}/${base_libdir}'])}" 34 qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}',['${B}/src/.libs','${STAGING_DIR_TARGET}/${libdir}','${STAGING_DIR_TARGET}/${base_libdir}'])}"
35 cat >qemuwrapper <<EOF 35 cat >qemuwrapper <<EOF
36#!/bin/sh 36#!/bin/sh
37${qemu_binary} src/genpref "\$@" 37${qemu_binary} src/genpref "\$@"
diff --git a/meta-oe/recipes-extended/redis/redis-7.2.7/0001-hiredis-use-default-CC-if-it-is-set.patch b/meta-oe/recipes-extended/redis/redis-7.2.8/0001-hiredis-use-default-CC-if-it-is-set.patch
index 63bf403412..63bf403412 100644
--- a/meta-oe/recipes-extended/redis/redis-7.2.7/0001-hiredis-use-default-CC-if-it-is-set.patch
+++ b/meta-oe/recipes-extended/redis/redis-7.2.8/0001-hiredis-use-default-CC-if-it-is-set.patch
diff --git a/meta-oe/recipes-extended/redis/redis-7.2.7/0002-lua-update-Makefile-to-use-environment-build-setting.patch b/meta-oe/recipes-extended/redis/redis-7.2.8/0002-lua-update-Makefile-to-use-environment-build-setting.patch
index 46330f5064..46330f5064 100644
--- a/meta-oe/recipes-extended/redis/redis-7.2.7/0002-lua-update-Makefile-to-use-environment-build-setting.patch
+++ b/meta-oe/recipes-extended/redis/redis-7.2.8/0002-lua-update-Makefile-to-use-environment-build-setting.patch
diff --git a/meta-oe/recipes-extended/redis/redis-7.2.7/0003-hack-to-force-use-of-libc-malloc.patch b/meta-oe/recipes-extended/redis/redis-7.2.8/0003-hack-to-force-use-of-libc-malloc.patch
index 1f97f9783d..1f97f9783d 100644
--- a/meta-oe/recipes-extended/redis/redis-7.2.7/0003-hack-to-force-use-of-libc-malloc.patch
+++ b/meta-oe/recipes-extended/redis/redis-7.2.8/0003-hack-to-force-use-of-libc-malloc.patch
diff --git a/meta-oe/recipes-extended/redis/redis-7.2.7/0004-src-Do-not-reset-FINAL_LIBS.patch b/meta-oe/recipes-extended/redis/redis-7.2.8/0004-src-Do-not-reset-FINAL_LIBS.patch
index 974cf5169f..974cf5169f 100644
--- a/meta-oe/recipes-extended/redis/redis-7.2.7/0004-src-Do-not-reset-FINAL_LIBS.patch
+++ b/meta-oe/recipes-extended/redis/redis-7.2.8/0004-src-Do-not-reset-FINAL_LIBS.patch
diff --git a/meta-oe/recipes-extended/redis/redis-7.2.7/0005-Define-_GNU_SOURCE-to-get-PTHREAD_MUTEX_INITIALIZER.patch b/meta-oe/recipes-extended/redis/redis-7.2.8/0005-Define-_GNU_SOURCE-to-get-PTHREAD_MUTEX_INITIALIZER.patch
index 8e5f30993b..8e5f30993b 100644
--- a/meta-oe/recipes-extended/redis/redis-7.2.7/0005-Define-_GNU_SOURCE-to-get-PTHREAD_MUTEX_INITIALIZER.patch
+++ b/meta-oe/recipes-extended/redis/redis-7.2.8/0005-Define-_GNU_SOURCE-to-get-PTHREAD_MUTEX_INITIALIZER.patch
diff --git a/meta-oe/recipes-extended/redis/redis-7.2.7/0006-Define-correct-gregs-for-RISCV32.patch b/meta-oe/recipes-extended/redis/redis-7.2.8/0006-Define-correct-gregs-for-RISCV32.patch
index 7009048171..7009048171 100644
--- a/meta-oe/recipes-extended/redis/redis-7.2.7/0006-Define-correct-gregs-for-RISCV32.patch
+++ b/meta-oe/recipes-extended/redis/redis-7.2.8/0006-Define-correct-gregs-for-RISCV32.patch
diff --git a/meta-oe/recipes-extended/redis/redis-7.2.7/init-redis-server b/meta-oe/recipes-extended/redis/redis-7.2.8/init-redis-server
index c5f335f57d..c5f335f57d 100644
--- a/meta-oe/recipes-extended/redis/redis-7.2.7/init-redis-server
+++ b/meta-oe/recipes-extended/redis/redis-7.2.8/init-redis-server
diff --git a/meta-oe/recipes-extended/redis/redis-7.2.7/redis.conf b/meta-oe/recipes-extended/redis/redis-7.2.8/redis.conf
index 75037d6dc8..75037d6dc8 100644
--- a/meta-oe/recipes-extended/redis/redis-7.2.7/redis.conf
+++ b/meta-oe/recipes-extended/redis/redis-7.2.8/redis.conf
diff --git a/meta-oe/recipes-extended/redis/redis-7.2.7/redis.service b/meta-oe/recipes-extended/redis/redis-7.2.8/redis.service
index b7791d0df4..b7791d0df4 100644
--- a/meta-oe/recipes-extended/redis/redis-7.2.7/redis.service
+++ b/meta-oe/recipes-extended/redis/redis-7.2.8/redis.service
diff --git a/meta-oe/recipes-extended/redis/redis_7.2.7.bb b/meta-oe/recipes-extended/redis/redis_7.2.8.bb
index c688e92cca..3c4d84085b 100644
--- a/meta-oe/recipes-extended/redis/redis_7.2.7.bb
+++ b/meta-oe/recipes-extended/redis/redis_7.2.8.bb
@@ -18,7 +18,7 @@ SRC_URI = "http://download.redis.io/releases/${BP}.tar.gz \
18 file://0006-Define-correct-gregs-for-RISCV32.patch \ 18 file://0006-Define-correct-gregs-for-RISCV32.patch \
19 " 19 "
20 20
21SRC_URI[sha256sum] = "72c081e3b8cfae7144273d26d76736f08319000af46c01515cad5d29765cead5" 21SRC_URI[sha256sum] = "6be4fdfcdb2e5ac91454438246d00842d2671f792673390e742dfcaf1bf01574"
22 22
23RPROVIDES:${PN} = "virtual-redis" 23RPROVIDES:${PN} = "virtual-redis"
24 24
diff --git a/meta-oe/recipes-graphics/graphviz/graphviz_12.2.1.bb b/meta-oe/recipes-graphics/graphviz/graphviz_12.2.1.bb
index cb04a1b24a..cccbbe75f7 100644
--- a/meta-oe/recipes-graphics/graphviz/graphviz_12.2.1.bb
+++ b/meta-oe/recipes-graphics/graphviz/graphviz_12.2.1.bb
@@ -16,7 +16,7 @@ DEPENDS = " \
16DEPENDS:append:class-target = " ${BPN}-native" 16DEPENDS:append:class-target = " ${BPN}-native"
17DEPENDS:append:class-nativesdk = " ${BPN}-native" 17DEPENDS:append:class-nativesdk = " ${BPN}-native"
18 18
19inherit autotools-brokensep pkgconfig gettext 19inherit autotools-brokensep pkgconfig gettext qemu
20 20
21SRC_URI = "https://gitlab.com/api/v4/projects/4207231/packages/generic/${BPN}-releases/${PV}/${BP}.tar.xz \ 21SRC_URI = "https://gitlab.com/api/v4/projects/4207231/packages/generic/${BPN}-releases/${PV}/${BP}.tar.xz \
22 " 22 "
@@ -84,7 +84,7 @@ SYSROOT_PREPROCESS_FUNCS:append:class-native = " graphviz_sstate_postinst"
84pkg_postinst:${PN} () { 84pkg_postinst:${PN} () {
85 if [ -n "$D" ]; then 85 if [ -n "$D" ]; then
86 if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true', 'false', d)}; then 86 if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true', 'false', d)}; then
87 ${@oe.qemu.qemu_run_binary(d, '$D', '${bindir}/dot')} -c 87 ${@qemu_run_binary(d, '$D', '${bindir}/dot')} -c
88 fi 88 fi
89 else 89 else
90 dot -c 90 dot -c
@@ -96,7 +96,7 @@ pkg_postrm:${PN} () {
96 rmdir --ignore-fail-on-non-empty $D${libdir}/graphviz 96 rmdir --ignore-fail-on-non-empty $D${libdir}/graphviz
97} 97}
98 98
99PACKAGE_WRITE_DEPS += "qemuwrapper-cross" 99PACKAGE_WRITE_DEPS += "qemu-native"
100 100
101PACKAGES =+ "${PN}-python ${PN}-perl ${PN}-demo" 101PACKAGES =+ "${PN}-python ${PN}-perl ${PN}-demo"
102 102
diff --git a/meta-oe/recipes-support/bvi/bvi_1.4.2.bb b/meta-oe/recipes-support/bvi/bvi_1.4.2.bb
index b0081794d0..fb136e16a6 100644
--- a/meta-oe/recipes-support/bvi/bvi_1.4.2.bb
+++ b/meta-oe/recipes-support/bvi/bvi_1.4.2.bb
@@ -2,10 +2,10 @@ SUMMARY = "Binary VI editor"
2DESCRIPTION = "bvi is a visual editor for binary files." 2DESCRIPTION = "bvi is a visual editor for binary files."
3HOMEPAGE = "https://sourceforge.net/projects/bvi" 3HOMEPAGE = "https://sourceforge.net/projects/bvi"
4SECTION = "console/utils" 4SECTION = "console/utils"
5LICENSE = "GPL-3.0-only" 5LICENSE = "GPL-3.0-or-later"
6LIC_FILES_CHKSUM = "file://COPYING;md5=a36207309d382da27cd66fdaae922e3c" 6LIC_FILES_CHKSUM = "file://COPYING;md5=a36207309d382da27cd66fdaae922e3c"
7 7
8SRC_URI = "${SOURCEFORGE_MIRROR}/bvi/bvi-${PV}.src.tar.gz" 8SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.src.tar.gz"
9SRC_URI[sha256sum] = "4bba16c2b496963a9b939336c0abcc8d488664492080ae43a86da18cf4ce94f2" 9SRC_URI[sha256sum] = "4bba16c2b496963a9b939336c0abcc8d488664492080ae43a86da18cf4ce94f2"
10 10
11DEPENDS += "ncurses" 11DEPENDS += "ncurses"
diff --git a/meta-oe/recipes-support/espeak/espeak_1.48.04.bb b/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
index 363fffbc05..b4812d59d6 100644
--- a/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
+++ b/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
@@ -13,7 +13,7 @@ SRC_URI[sha256sum] = "bf9a17673adffcc28ff7ea18764f06136547e97bbd9edf2ec612f09b20
13S = "${WORKDIR}/espeak-${PV}-source" 13S = "${WORKDIR}/espeak-${PV}-source"
14 14
15DEPENDS = "portaudio-v19 qemu-helper-native" 15DEPENDS = "portaudio-v19 qemu-helper-native"
16inherit siteinfo 16inherit siteinfo qemu
17 17
18 18
19CXXFLAGS += "-DUSE_PORTAUDIO" 19CXXFLAGS += "-DUSE_PORTAUDIO"
@@ -31,7 +31,7 @@ do_compile() {
31 oe_runmake 31 oe_runmake
32 32
33 cd "${S}/platforms/big_endian" 33 cd "${S}/platforms/big_endian"
34 qemu_binary="${@oe.qemu.qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}', ['${S}/platforms/big_endian', '${STAGING_DIR_TARGET}${base_libdir}'])}" 34 qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}', ['${S}/platforms/big_endian', '${STAGING_DIR_TARGET}${base_libdir}'])}"
35 cat >qemuwrapper <<EOF 35 cat >qemuwrapper <<EOF
36#!/bin/sh 36#!/bin/sh
37$qemu_binary "\$@" 37$qemu_binary "\$@"
diff --git a/meta-oe/recipes-support/hdf5/hdf5_1.14.4-3.bb b/meta-oe/recipes-support/hdf5/hdf5_1.14.4-3.bb
index 4ffc875cec..f34e5f183d 100644
--- a/meta-oe/recipes-support/hdf5/hdf5_1.14.4-3.bb
+++ b/meta-oe/recipes-support/hdf5/hdf5_1.14.4-3.bb
@@ -7,7 +7,7 @@ SECTION = "libs"
7LICENSE = "HDF5" 7LICENSE = "HDF5"
8LIC_FILES_CHKSUM = "file://COPYING;md5=adebb1ecf1b3b80c13359e18ef67301e" 8LIC_FILES_CHKSUM = "file://COPYING;md5=adebb1ecf1b3b80c13359e18ef67301e"
9 9
10inherit cmake siteinfo multilib_header multilib_script 10inherit cmake siteinfo qemu multilib_header multilib_script
11 11
12DEPENDS += "qemu-native zlib" 12DEPENDS += "qemu-native zlib"
13 13
@@ -30,7 +30,7 @@ EXTRA_OECMAKE:prepend:class-target = "-DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}
30gen_emu() { 30gen_emu() {
31 # Write out a qemu wrapper that will be used by cmake 31 # Write out a qemu wrapper that will be used by cmake
32 # so that it can run target helper binaries through that. 32 # so that it can run target helper binaries through that.
33 qemu_binary="${@oe.qemu.qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}" 33 qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
34 cat > ${WORKDIR}/qemuwrapper << EOF 34 cat > ${WORKDIR}/qemuwrapper << EOF
35#!/bin/sh 35#!/bin/sh
36$qemu_binary "\$@" 36$qemu_binary "\$@"
diff --git a/meta-oe/recipes-support/libserialmodule/libserialmodule_1.0.7.bb b/meta-oe/recipes-support/libserialmodule/libserialmodule_1.0.8.bb
index ac5a3eaf09..7994907e13 100644
--- a/meta-oe/recipes-support/libserialmodule/libserialmodule_1.0.7.bb
+++ b/meta-oe/recipes-support/libserialmodule/libserialmodule_1.0.8.bb
@@ -6,7 +6,7 @@ LICENSE = "MIT"
6LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=22cdd382a6275cb4c2e75c517952ac7c" 6LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=22cdd382a6275cb4c2e75c517952ac7c"
7DEPENDS = "libsimplelog" 7DEPENDS = "libsimplelog"
8SRC_URI = "git://git@github.com/thuanalg/libserialmodule.git;branch=main;protocol=https;tag=v${PV}" 8SRC_URI = "git://git@github.com/thuanalg/libserialmodule.git;branch=main;protocol=https;tag=v${PV}"
9SRCREV = "b5a5a436900d0bd69f990ca062de916c65f7e2e0" 9SRCREV = "f89f98ff0c9d0aaee2624d40addb0687a74c5d81"
10S = "${WORKDIR}/git" 10S = "${WORKDIR}/git"
11inherit cmake 11inherit cmake
12EXTRA_OECMAKE = "-DUNIX_LINUX=1 -DMETA_OPENEMBEDDED=1" 12EXTRA_OECMAKE = "-DUNIX_LINUX=1 -DMETA_OPENEMBEDDED=1"
diff --git a/meta-oe/recipes-support/uim/uim_1.9.0.bb b/meta-oe/recipes-support/uim/uim_1.9.0.bb
index a7857b2487..cb3aee3f0d 100644
--- a/meta-oe/recipes-support/uim/uim_1.9.0.bb
+++ b/meta-oe/recipes-support/uim/uim_1.9.0.bb
@@ -25,7 +25,7 @@ LEAD_SONAME = "libuim.so.1"
25COMPATIBLE_HOST:riscv64 = "null" 25COMPATIBLE_HOST:riscv64 = "null"
26COMPATIBLE_HOST:riscv32 = "null" 26COMPATIBLE_HOST:riscv32 = "null"
27 27
28inherit features_check autotools pkgconfig gettext gtk-immodules-cache 28inherit features_check autotools pkgconfig gettext qemu gtk-immodules-cache
29 29
30REQUIRED_DISTRO_FEATURES = "x11" 30REQUIRED_DISTRO_FEATURES = "x11"
31 31
@@ -120,10 +120,10 @@ FILES:uim-skk = "${libdir}/uim/plugin/libuim-skk.* \
120 ${datadir}/uim/skk*.scm \ 120 ${datadir}/uim/skk*.scm \
121" 121"
122 122
123PACKAGE_WRITE_DEPS += "qemuwrapper-cross" 123PACKAGE_WRITE_DEPS += "qemu-native"
124pkg_postinst:uim-anthy() { 124pkg_postinst:uim-anthy() {
125 if test -n "$D"; then 125 if test -n "$D"; then
126 ${@oe.qemu.qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register anthy --path $D${datadir}/uim 126 ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register anthy --path $D${datadir}/uim
127 else 127 else
128 uim-module-manager --register anthy --path ${datadir}/uim 128 uim-module-manager --register anthy --path ${datadir}/uim
129 fi 129 fi
@@ -131,7 +131,7 @@ pkg_postinst:uim-anthy() {
131 131
132pkg_prerm:uim-anthy() { 132pkg_prerm:uim-anthy() {
133 if test -n "$D"; then 133 if test -n "$D"; then
134 ${@oe.qemu.qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister anthy 134 ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister anthy
135 else 135 else
136 uim-module-manager --path ${datadir}/uim --unregister anthy 136 uim-module-manager --path ${datadir}/uim --unregister anthy
137 fi 137 fi
@@ -139,7 +139,7 @@ pkg_prerm:uim-anthy() {
139 139
140pkg_postinst:uim-skk() { 140pkg_postinst:uim-skk() {
141 if test -n "$D"; then 141 if test -n "$D"; then
142 ${@oe.qemu.qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register skk --path $D${datadir}/uim 142 ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register skk --path $D${datadir}/uim
143 else 143 else
144 uim-module-manager --register skk --path ${datadir}/uim 144 uim-module-manager --register skk --path ${datadir}/uim
145 fi 145 fi
@@ -147,7 +147,7 @@ pkg_postinst:uim-skk() {
147 147
148pkg_postrm:uim-skk() { 148pkg_postrm:uim-skk() {
149 if test -n "$D"; then 149 if test -n "$D"; then
150 ${@oe.qemu.qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister skk 150 ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister skk
151 else 151 else
152 uim-module-manager --path ${datadir}/uim --unregister skk 152 uim-module-manager --path ${datadir}/uim --unregister skk
153 fi 153 fi
diff --git a/meta-oe/recipes-support/unixodbc/unixodbc_2.3.12.bb b/meta-oe/recipes-support/unixodbc/unixodbc_2.3.12.bb
index ce02535c95..0927f5c904 100644
--- a/meta-oe/recipes-support/unixodbc/unixodbc_2.3.12.bb
+++ b/meta-oe/recipes-support/unixodbc/unixodbc_2.3.12.bb
@@ -18,14 +18,14 @@ SRC_URI[sha256sum] = "f210501445ce21bf607ba51ef8c125e10e22dffdffec377646462df5f0
18UPSTREAM_CHECK_URI = "https://www.unixodbc.org/download.html" 18UPSTREAM_CHECK_URI = "https://www.unixodbc.org/download.html"
19UPSTREAM_CHECK_REGEX = "unixODBC-(?P<pver>\d+(\.\d+)+)\.tar" 19UPSTREAM_CHECK_REGEX = "unixODBC-(?P<pver>\d+(\.\d+)+)\.tar"
20 20
21inherit autotools-brokensep multilib_header 21inherit autotools-brokensep multilib_header qemu
22 22
23S = "${WORKDIR}/unixODBC-${PV}" 23S = "${WORKDIR}/unixODBC-${PV}"
24 24
25EXTRA_OEMAKE += "LIBS=-lltdl" 25EXTRA_OEMAKE += "LIBS=-lltdl"
26EXTRA_OECONF += "--enable-utf8ini" 26EXTRA_OECONF += "--enable-utf8ini"
27DEPENDS:append:class-target = "${@' qemu-native' if bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d) else ''}" 27DEPENDS:append:class-target = "${@' qemu-native' if bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d) else ''}"
28QEMU_WRAPPER = "${@oe.qemu.qemu_wrapper_cmdline(d, '${STAGING_DIR_HOST}', ['${STAGING_DIR_HOST}/${libdir}','${STAGING_DIR_HOST}/${base_libdir}'])}" 28QEMU_WRAPPER = "${@qemu_wrapper_cmdline(d, '${STAGING_DIR_HOST}', ['${STAGING_DIR_HOST}/${libdir}','${STAGING_DIR_HOST}/${base_libdir}'])}"
29 29
30do_configure:prepend() { 30do_configure:prepend() {
31 # old m4 files will cause libtool version don't match 31 # old m4 files will cause libtool version don't match
diff --git a/meta-python/recipes-devtools/python/python3-charset-normalizer/0001-pyproject.toml-Relax-version-for-mypy.patch b/meta-python/recipes-devtools/python/python3-charset-normalizer/0001-pyproject.toml-Relax-version-for-mypy.patch
deleted file mode 100644
index d544caaa17..0000000000
--- a/meta-python/recipes-devtools/python/python3-charset-normalizer/0001-pyproject.toml-Relax-version-for-mypy.patch
+++ /dev/null
@@ -1,25 +0,0 @@
1From 57b626d6d8c247c9203dde51a988b9401abe065c Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 9 Apr 2025 23:44:44 -0700
4Subject: [PATCH] pyproject.toml: Relax version for mypy
5
6It asks for mypy <= 1.14.0 but we have 1.15.x
7already in meta-python
8
9Upstream-Status: Pending
10Signed-off-by: Khem Raj <raj.khem@gmail.com>
11---
12 pyproject.toml | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/pyproject.toml b/pyproject.toml
16index bbb8227..ad42715 100644
17--- a/pyproject.toml
18+++ b/pyproject.toml
19@@ -1,5 +1,5 @@
20 [build-system]
21-requires = ["setuptools", "setuptools-scm", "mypy>=1.4.1,<=1.14.0"]
22+requires = ["setuptools", "setuptools-scm", "mypy>=1.4.1,<=1.16.0"]
23 build-backend = "setuptools.build_meta"
24
25 [project]
diff --git a/meta-python/recipes-devtools/python/python3-charset-normalizer_3.4.1.bb b/meta-python/recipes-devtools/python/python3-charset-normalizer_3.4.2.bb
index 4f9b09ef93..e62306fff3 100644
--- a/meta-python/recipes-devtools/python/python3-charset-normalizer_3.4.1.bb
+++ b/meta-python/recipes-devtools/python/python3-charset-normalizer_3.4.2.bb
@@ -3,8 +3,7 @@ HOMEPAGE = "https://github.com/ousret/charset_normalizer"
3LICENSE = "MIT" 3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=48178f3fc1374ad7e830412f812bde05" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=48178f3fc1374ad7e830412f812bde05"
5 5
6SRC_URI += "file://0001-pyproject.toml-Relax-version-for-mypy.patch" 6SRC_URI[sha256sum] = "5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63"
7SRC_URI[sha256sum] = "44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"
8 7
9DEPENDS += "python3-setuptools-scm-native python3-mypy-native" 8DEPENDS += "python3-setuptools-scm-native python3-mypy-native"
10 9
diff --git a/meta-python/recipes-devtools/python/python3-libevdev_0.11.bb b/meta-python/recipes-devtools/python/python3-libevdev_0.12.bb
index 8c05df38e3..cabcfd8df6 100644
--- a/meta-python/recipes-devtools/python/python3-libevdev_0.11.bb
+++ b/meta-python/recipes-devtools/python/python3-libevdev_0.12.bb
@@ -5,7 +5,7 @@ SECTION = "devel/python"
5LICENSE = "MIT" 5LICENSE = "MIT"
6LIC_FILES_CHKSUM = "file://COPYING;md5=d94c10c546b419eddc6296157ec40747" 6LIC_FILES_CHKSUM = "file://COPYING;md5=d94c10c546b419eddc6296157ec40747"
7 7
8SRC_URI[sha256sum] = "e9ca006a4df2488a60bd9a740011ee948d81904be2364f017e560169508f560f" 8SRC_URI[sha256sum] = "02e952632ec6c249cbb9c66f6fa00012ea448b06606c77cd139133bc2fe46b08"
9 9
10inherit pypi setuptools3 10inherit pypi setuptools3
11 11
diff --git a/meta-python/recipes-devtools/python/python3-portion_2.6.0.bb b/meta-python/recipes-devtools/python/python3-portion_2.6.1.bb
index 2c2e67579e..942d7d5d4d 100644
--- a/meta-python/recipes-devtools/python/python3-portion_2.6.0.bb
+++ b/meta-python/recipes-devtools/python/python3-portion_2.6.1.bb
@@ -5,9 +5,9 @@ SECTION = "devel/python"
5LICENSE = "LGPL-3.0-only" 5LICENSE = "LGPL-3.0-only"
6LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3000208d539ec061b899bce1d9ce9404" 6LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3000208d539ec061b899bce1d9ce9404"
7 7
8inherit pypi python_setuptools_build_meta ptest-python-pytest 8inherit pypi python_hatchling ptest-python-pytest
9 9
10SRC_URI[sha256sum] = "6fb538b57a92058f0edd360667694448aa3fc028ab97e41e3091359d14ba4dd5" 10SRC_URI[sha256sum] = "44b1f7d57e052993c4157e519dc447e57b87a4e5e00a77c1c50e7044104e53c6"
11 11
12RDEPENDS:${PN} += "\ 12RDEPENDS:${PN} += "\
13 python3-sortedcontainers \ 13 python3-sortedcontainers \
diff --git a/meta-python/recipes-devtools/python/python3-typer_0.15.4.bb b/meta-python/recipes-devtools/python/python3-typer_0.16.0.bb
index 26b0c042be..87e258ae1f 100644
--- a/meta-python/recipes-devtools/python/python3-typer_0.15.4.bb
+++ b/meta-python/recipes-devtools/python/python3-typer_0.16.0.bb
@@ -3,11 +3,11 @@ DESCRIPTION = "\
3 Typer is a library for building CLI applications that users will love using and developers will love creating. Based on Python type hints. \ 3 Typer is a library for building CLI applications that users will love using and developers will love creating. Based on Python type hints. \
4 It's also a command line tool to run scripts, automatically converting them to CLI applications. \ 4 It's also a command line tool to run scripts, automatically converting them to CLI applications. \
5" 5"
6HOMEPAGE = "https://github.com/tiangolo/typer" 6HOMEPAGE = "https://github.com/fastapi/typer"
7LICENSE = "MIT" 7LICENSE = "MIT"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=173d405eb704b1499218013178722617" 8LIC_FILES_CHKSUM = "file://LICENSE;md5=173d405eb704b1499218013178722617"
9 9
10SRC_URI[sha256sum] = "89507b104f9b6a0730354f27c39fae5b63ccd0c95b1ce1f1a6ba0cfd329997c3" 10SRC_URI[sha256sum] = "af377ffaee1dbe37ae9440cb4e8f11686ea5ce4e9bae01b84ae7c63b87f1dd3b"
11 11
12inherit pypi python_setuptools_build_meta ptest 12inherit pypi python_setuptools_build_meta ptest
13 13