diff options
12 files changed, 441 insertions, 68 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 | ||
13 | DEPENDS = "dbus ncurses" | 13 | DEPENDS = "dbus ncurses" |
14 | 14 | ||
15 | SRCREV = "331d5e03516a99c56b3064dbbbd639a3ae848d36" | 15 | SRCREV = "3f79bcae5d4415f82907b49221ca05241a7f263c" |
16 | BRANCH = "${@oe.utils.trim_version('${PV}', 2)}" | 16 | BRANCH = "${@oe.utils.trim_version('${PV}', 2)}" |
17 | SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=${BRANCH};protocol=https" | 17 | SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=${BRANCH};protocol=https" |
18 | 18 | ||
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 | |||
57 | inherit image | ||
58 | |||
59 | IMAGE_FSTYPES = "ddi" | ||
60 | |||
61 | DEPENDS += " \ | ||
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 | # | ||
71 | REPART_DDI_TYPE ?= "sysext" | ||
72 | |||
73 | REPART_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. | ||
80 | PSEUDO_INCLUDE_PATHS .= ",/var/tmp/" | ||
81 | |||
82 | oe_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 | |||
131 | IMAGE_CMD:ddi = "oe_image_systemd_repart_make_ddi" | ||
132 | do_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 @@ | |||
54 | SIGNING_PKCS11_URI ?= "" | 54 | SIGNING_PKCS11_URI ?= "" |
55 | SIGNING_PKCS11_MODULE ?= "" | 55 | SIGNING_PKCS11_MODULE ?= "" |
56 | 56 | ||
57 | DEPENDS += "softhsm-native libp11-native opensc-native openssl-native" | 57 | DEPENDS += "softhsm-native libp11-native opensc-native openssl-native extract-cert-native" |
58 | 58 | ||
59 | def signing_class_prepare(d): | 59 | def 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. | ||
130 | signing_import_cert_from_der() { | 134 | signing_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. | ||
153 | signing_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, | 165 | signing_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. |
150 | signing_import_cert_chain_from_pem() { | 176 | signing_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. | ||
192 | signing_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. | ||
212 | signing_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. | ||
171 | signing_import_cert_from_pem() { | 228 | signing_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. | ||
417 | signing_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. | ||
428 | signing_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 | |||
349 | python () { | 437 | python () { |
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 | |||
38 | inherit image | ||
39 | |||
40 | # Include '.sysext' in the deployed image filename and symlink | ||
41 | IMAGE_NAME = "${IMAGE_BASENAME}${IMAGE_MACHINE_SUFFIX}${IMAGE_VERSION_SUFFIX}.sysext" | ||
42 | IMAGE_LINK_NAME = "${IMAGE_BASENAME}${IMAGE_MACHINE_SUFFIX}.sysext" | ||
43 | EXTENSION_NAME = "${IMAGE_LINK_NAME}.${IMAGE_FSTYPES}" | ||
44 | |||
45 | # Base extension identification fields | ||
46 | EXTENSION_ID_FIELD ?= "${DISTRO}" | ||
47 | EXTENSION_VERSION_FIELD ?= "${DISTRO_VERSION}" | ||
48 | |||
49 | sysext_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 | |||
71 | ROOTFS_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. | ||
76 | PACKAGE_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 | |||
6 | SUMMARY = "systemd-repart" | ||
7 | DESCRIPTION = "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))." | ||
8 | HOMEPAGE = "http://www.freedesktop.org/wiki/Software/systemd" | ||
9 | |||
10 | LICENSE = "GPL-2.0-only & LGPL-2.1-or-later" | ||
11 | LICENSE:libsystemd = "LGPL-2.1-or-later" | ||
12 | LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ | ||
13 | file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" | ||
14 | |||
15 | SRCREV = "00a12c234e2506f5cab683460199575f13c454db" | ||
16 | SRCBRANCH = "v257-stable" | ||
17 | SRC_URI = "git://github.com/systemd/systemd.git;protocol=https;branch=${SRCBRANCH}" | ||
18 | |||
19 | S = "${WORKDIR}/git" | ||
20 | |||
21 | DEPENDS = " \ | ||
22 | cryptsetup-native \ | ||
23 | gperf-native \ | ||
24 | libcap \ | ||
25 | python3-jinja2-native \ | ||
26 | util-linux \ | ||
27 | " | ||
28 | |||
29 | inherit meson pkgconfig gettext native | ||
30 | |||
31 | MESON_TARGET = "systemd-repart" | ||
32 | |||
33 | # Helper variables to clarify locations. This mirrors the logic in systemd's | ||
34 | # build system. | ||
35 | rootprefix ?= "${root_prefix}" | ||
36 | rootlibdir ?= "${base_libdir}" | ||
37 | rootlibexecdir = "${rootprefix}/lib" | ||
38 | |||
39 | EXTRA_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 | |||
51 | do_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 @@ | |||
1 | From aa102147cdfff3aa971e61038a6455bff6828350 Mon Sep 17 00:00:00 2001 | ||
2 | From: Derek Mauro <dmauro@google.com> | ||
3 | Date: Tue, 29 Apr 2025 06:23:36 -0700 | ||
4 | Subject: [PATCH] Fix GCC15 warning that <ciso646> is deprecated in C++17 | ||
5 | |||
6 | PiperOrigin-RevId: 752709743 | ||
7 | Change-Id: I4d6b52bca913d888818e1380268089743b03ca2b | ||
8 | Upstream-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 | |||
13 | diff --git a/absl/hash/internal/hash.h b/absl/hash/internal/hash.h | ||
14 | index 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 | ||
19 | S = "${WORKDIR}/git" | 20 | S = "${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" | |||
2 | DESCRIPTION = "bvi is a visual editor for binary files." | 2 | DESCRIPTION = "bvi is a visual editor for binary files." |
3 | HOMEPAGE = "https://sourceforge.net/projects/bvi" | 3 | HOMEPAGE = "https://sourceforge.net/projects/bvi" |
4 | SECTION = "console/utils" | 4 | SECTION = "console/utils" |
5 | LICENSE = "GPL-3.0-only" | 5 | LICENSE = "GPL-3.0-or-later" |
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=a36207309d382da27cd66fdaae922e3c" | 6 | LIC_FILES_CHKSUM = "file://COPYING;md5=a36207309d382da27cd66fdaae922e3c" |
7 | 7 | ||
8 | SRC_URI = "${SOURCEFORGE_MIRROR}/bvi/bvi-${PV}.src.tar.gz" | 8 | SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.src.tar.gz" |
9 | SRC_URI[sha256sum] = "4bba16c2b496963a9b939336c0abcc8d488664492080ae43a86da18cf4ce94f2" | 9 | SRC_URI[sha256sum] = "4bba16c2b496963a9b939336c0abcc8d488664492080ae43a86da18cf4ce94f2" |
10 | 10 | ||
11 | DEPENDS += "ncurses" | 11 | DEPENDS += "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" | |||
6 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=22cdd382a6275cb4c2e75c517952ac7c" | 6 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=22cdd382a6275cb4c2e75c517952ac7c" |
7 | DEPENDS = "libsimplelog" | 7 | DEPENDS = "libsimplelog" |
8 | SRC_URI = "git://git@github.com/thuanalg/libserialmodule.git;branch=main;protocol=https;tag=v${PV}" | 8 | SRC_URI = "git://git@github.com/thuanalg/libserialmodule.git;branch=main;protocol=https;tag=v${PV}" |
9 | SRCREV = "b5a5a436900d0bd69f990ca062de916c65f7e2e0" | 9 | SRCREV = "f89f98ff0c9d0aaee2624d40addb0687a74c5d81" |
10 | S = "${WORKDIR}/git" | 10 | S = "${WORKDIR}/git" |
11 | inherit cmake | 11 | inherit cmake |
12 | EXTRA_OECMAKE = "-DUNIX_LINUX=1 -DMETA_OPENEMBEDDED=1" | 12 | EXTRA_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 @@ | |||
1 | From 57b626d6d8c247c9203dde51a988b9401abe065c Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Wed, 9 Apr 2025 23:44:44 -0700 | ||
4 | Subject: [PATCH] pyproject.toml: Relax version for mypy | ||
5 | |||
6 | It asks for mypy <= 1.14.0 but we have 1.15.x | ||
7 | already in meta-python | ||
8 | |||
9 | Upstream-Status: Pending | ||
10 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
11 | --- | ||
12 | pyproject.toml | 2 +- | ||
13 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
14 | |||
15 | diff --git a/pyproject.toml b/pyproject.toml | ||
16 | index 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" | |||
3 | LICENSE = "MIT" | 3 | LICENSE = "MIT" |
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=48178f3fc1374ad7e830412f812bde05" | 4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=48178f3fc1374ad7e830412f812bde05" |
5 | 5 | ||
6 | SRC_URI += "file://0001-pyproject.toml-Relax-version-for-mypy.patch" | 6 | SRC_URI[sha256sum] = "5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63" |
7 | SRC_URI[sha256sum] = "44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3" | ||
8 | 7 | ||
9 | DEPENDS += "python3-setuptools-scm-native python3-mypy-native" | 8 | DEPENDS += "python3-setuptools-scm-native python3-mypy-native" |
10 | 9 | ||
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 | " |
6 | HOMEPAGE = "https://github.com/tiangolo/typer" | 6 | HOMEPAGE = "https://github.com/fastapi/typer" |
7 | LICENSE = "MIT" | 7 | LICENSE = "MIT" |
8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=173d405eb704b1499218013178722617" | 8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=173d405eb704b1499218013178722617" |
9 | 9 | ||
10 | SRC_URI[sha256sum] = "89507b104f9b6a0730354f27c39fae5b63ccd0c95b1ce1f1a6ba0cfd329997c3" | 10 | SRC_URI[sha256sum] = "af377ffaee1dbe37ae9440cb4e8f11686ea5ce4e9bae01b84ae7c63b87f1dd3b" |
11 | 11 | ||
12 | inherit pypi python_setuptools_build_meta ptest | 12 | inherit pypi python_setuptools_build_meta ptest |
13 | 13 | ||