summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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-oe/classes/check-version-mismatch.bbclass5
-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/recipes-core/systemd/systemd-repart-native_257.6.bb59
-rw-r--r--meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0005-Fix-GCC15-warning-that-ciso646-is-deprecated-in-C-17.patch43
-rw-r--r--meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20250127.1.bb1
-rw-r--r--meta-oe/recipes-support/bvi/bvi_1.4.2.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-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
15 files changed, 447 insertions, 73 deletions
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-oe/classes/check-version-mismatch.bbclass b/meta-oe/classes/check-version-mismatch.bbclass
index 8e0b613162..f735280d7a 100644
--- a/meta-oe/classes/check-version-mismatch.bbclass
+++ b/meta-oe/classes/check-version-mismatch.bbclass
@@ -1,4 +1,5 @@
1inherit qemu 1QEMU_OPTIONS = "-r ${OLDEST_KERNEL} ${@d.getVar("QEMU_EXTRAOPTIONS:tune-%s" % d.getVar('TUNE_PKGARCH')) or ""}"
2QEMU_OPTIONS[vardeps] += "QEMU_EXTRAOPTIONS:tune-${TUNE_PKGARCH}"
2 3
3ENABLE_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'}"
4DEBUG_VERSION_MISMATCH_CHECK ?= "1" 5DEBUG_VERSION_MISMATCH_CHECK ?= "1"
@@ -6,7 +7,7 @@ CHECK_VERSION_PV ?= ""
6 7
7DEPENDS:append:class-target = "${@' qemu-native' if bb.utils.to_boolean(d.getVar('ENABLE_VERSION_MISMATCH_CHECK')) else ''}" 8DEPENDS:append:class-target = "${@' qemu-native' if bb.utils.to_boolean(d.getVar('ENABLE_VERSION_MISMATCH_CHECK')) else ''}"
8 9
9QEMU_EXEC ?= "${@qemu_wrapper_cmdline(d, '${STAGING_DIR_HOST}', ['${STAGING_DIR_HOST}${libdir}','${STAGING_DIR_HOST}${base_libdir}', '${PKGD}${libdir}', '${PKGD}${base_libdir}'])}" 10QEMU_EXEC ?= "${@oe.qemu.qemu_wrapper_cmdline(d, '${STAGING_DIR_HOST}', ['${STAGING_DIR_HOST}${libdir}','${STAGING_DIR_HOST}${base_libdir}', '${PKGD}${libdir}', '${PKGD}${base_libdir}'])}"
10 11
11python do_package_check_version_mismatch() { 12python do_package_check_version_mismatch() {
12 import re 13 import re
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/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/abseil-cpp/abseil-cpp/0005-Fix-GCC15-warning-that-ciso646-is-deprecated-in-C-17.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0005-Fix-GCC15-warning-that-ciso646-is-deprecated-in-C-17.patch
new file mode 100644
index 0000000000..7fe9ab4708
--- /dev/null
+++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0005-Fix-GCC15-warning-that-ciso646-is-deprecated-in-C-17.patch
@@ -0,0 +1,43 @@
1From aa102147cdfff3aa971e61038a6455bff6828350 Mon Sep 17 00:00:00 2001
2From: Derek Mauro <dmauro@google.com>
3Date: Tue, 29 Apr 2025 06:23:36 -0700
4Subject: [PATCH] Fix GCC15 warning that <ciso646> is deprecated in C++17
5
6PiperOrigin-RevId: 752709743
7Change-Id: I4d6b52bca913d888818e1380268089743b03ca2b
8Upstream-Status: Backport [https://github.com/abseil/abseil-cpp/commit/5f3435aba00bcd7f12062d2e8e1839b4eaf1a575]
9---
10 absl/hash/internal/hash.h | 14 +++++++++++++-
11 1 file changed, 13 insertions(+), 1 deletion(-)
12
13diff --git a/absl/hash/internal/hash.h b/absl/hash/internal/hash.h
14index f4a0d785..6937f413 100644
15--- a/absl/hash/internal/hash.h
16+++ b/absl/hash/internal/hash.h
17@@ -26,13 +26,25 @@
18
19 #include "absl/base/config.h"
20
21+// GCC15 warns that <ciso646> is deprecated in C++17 and suggests using
22+// <version> instead, even though <version> is not available in C++17 mode prior
23+// to GCC9.
24+#if defined(__has_include)
25+#if __has_include(<version>)
26+#define ABSL_INTERNAL_VERSION_HEADER_AVAILABLE 1
27+#endif
28+#endif
29+
30 // For feature testing and determining which headers can be included.
31-#if ABSL_INTERNAL_CPLUSPLUS_LANG >= 202002L
32+#if ABSL_INTERNAL_CPLUSPLUS_LANG >= 202002L || \
33+ ABSL_INTERNAL_VERSION_HEADER_AVAILABLE
34 #include <version>
35 #else
36 #include <ciso646>
37 #endif
38
39+#undef ABSL_INTERNAL_VERSION_HEADER_AVAILABLE
40+
41 #include <algorithm>
42 #include <array>
43 #include <bitset>
diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20250127.1.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20250127.1.bb
index 5368dfaada..39c3b0b6db 100644
--- a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20250127.1.bb
+++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20250127.1.bb
@@ -14,6 +14,7 @@ SRC_URI = "git://github.com/abseil/abseil-cpp;branch=${BRANCH};protocol=https \
14 file://0002-Remove-maes-option-from-cross-compilation.patch \ 14 file://0002-Remove-maes-option-from-cross-compilation.patch \
15 file://0003-Remove-neon-option-from-cross-compilation.patch \ 15 file://0003-Remove-neon-option-from-cross-compilation.patch \
16 file://0004-abseil-ppc-fixes.patch \ 16 file://0004-abseil-ppc-fixes.patch \
17 file://0005-Fix-GCC15-warning-that-ciso646-is-deprecated-in-C-17.patch \
17 " 18 "
18 19
19S = "${WORKDIR}/git" 20S = "${WORKDIR}/git"
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/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-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