diff options
Diffstat (limited to 'meta')
126 files changed, 1488 insertions, 1457 deletions
diff --git a/meta/classes-global/base.bbclass b/meta/classes-global/base.bbclass index 3d623c80a9..dbbf6cef8c 100644 --- a/meta/classes-global/base.bbclass +++ b/meta/classes-global/base.bbclass | |||
@@ -542,24 +542,6 @@ python () { | |||
542 | d.setVarFlag('do_devshell', 'fakeroot', '1') | 542 | d.setVarFlag('do_devshell', 'fakeroot', '1') |
543 | d.appendVarFlag('do_devshell', 'depends', ' virtual/fakeroot-native:do_populate_sysroot') | 543 | d.appendVarFlag('do_devshell', 'depends', ' virtual/fakeroot-native:do_populate_sysroot') |
544 | 544 | ||
545 | # Horrible duplication with allarch as we need to set this before expanding DEPENDS below. | ||
546 | if d.getVar("PACKAGE_ARCH") == "all": | ||
547 | d.setVar("INHIBIT_DEFAULT_DEPS", "1") | ||
548 | |||
549 | # Handle recipe level PREFERRED_PROVIDERs | ||
550 | depends = (d.getVar("DEPENDS") or "").split() | ||
551 | virtprovs = (d.getVar("RECIPE_VIRTUAL_PROVIDERS") or "").split() | ||
552 | newdeps = [] | ||
553 | for dep in depends: | ||
554 | if dep in virtprovs: | ||
555 | newdep = d.getVar("PREFERRED_PROVIDER_" + dep) | ||
556 | if not newdep: | ||
557 | bb.fatal("Error, recipe virtual provider PREFERRED_PROVIDER_%s not set" % dep) | ||
558 | newdeps.append(newdep) | ||
559 | else: | ||
560 | newdeps.append(dep) | ||
561 | d.setVar("DEPENDS", " ".join(newdeps)) | ||
562 | |||
563 | need_machine = d.getVar('COMPATIBLE_MACHINE') | 545 | need_machine = d.getVar('COMPATIBLE_MACHINE') |
564 | if need_machine and not bb.utils.to_boolean(d.getVar('PARSE_ALL_RECIPES', False)): | 546 | if need_machine and not bb.utils.to_boolean(d.getVar('PARSE_ALL_RECIPES', False)): |
565 | import re | 547 | import re |
diff --git a/meta/classes-global/logging.bbclass b/meta/classes-global/logging.bbclass index ce03abfe42..136f1e1733 100644 --- a/meta/classes-global/logging.bbclass +++ b/meta/classes-global/logging.bbclass | |||
@@ -32,6 +32,16 @@ bbnote() { | |||
32 | fi | 32 | fi |
33 | } | 33 | } |
34 | 34 | ||
35 | # Notify the user of a noteworthy condition. | ||
36 | # Output: logs console | ||
37 | bbverbnote() { | ||
38 | if [ -p ${LOGFIFO} ]; then | ||
39 | printf "%b\0" "bbverbnote $*" > ${LOGFIFO} | ||
40 | else | ||
41 | echo "NOTE: $*" | ||
42 | fi | ||
43 | } | ||
44 | |||
35 | # Print a warning to the log. Warnings are non-fatal, and do not | 45 | # Print a warning to the log. Warnings are non-fatal, and do not |
36 | # indicate a build failure. | 46 | # indicate a build failure. |
37 | # Output: logs console | 47 | # Output: logs console |
diff --git a/meta/classes-global/sanity.bbclass b/meta/classes-global/sanity.bbclass index 7b8a497d5a..66693fc9b9 100644 --- a/meta/classes-global/sanity.bbclass +++ b/meta/classes-global/sanity.bbclass | |||
@@ -602,6 +602,28 @@ def drop_v14_cross_builds(d): | |||
602 | bb.utils.remove(stamp + "*") | 602 | bb.utils.remove(stamp + "*") |
603 | bb.utils.remove(workdir, recurse = True) | 603 | bb.utils.remove(workdir, recurse = True) |
604 | 604 | ||
605 | def check_cpp_toolchain(d): | ||
606 | """ | ||
607 | it checks if the c++ compiling and linking to libstdc++ works properly in the native system | ||
608 | """ | ||
609 | import shlex | ||
610 | import subprocess | ||
611 | |||
612 | cpp_code = """ | ||
613 | #include <iostream> | ||
614 | int main() { | ||
615 | std::cout << "Hello, World!" << std::endl; | ||
616 | return 0; | ||
617 | } | ||
618 | """ | ||
619 | |||
620 | cmd = shlex.split(d.getVar("BUILD_CXX")) + ["-x", "c++","-", "-o", "/dev/null", "-lstdc++"] | ||
621 | try: | ||
622 | subprocess.run(cmd, input=cpp_code, capture_output=True, text=True, check=True) | ||
623 | return None | ||
624 | except subprocess.CalledProcessError as e: | ||
625 | return f"An unexpected issue occurred during the C++ toolchain check: {str(e)}" | ||
626 | |||
605 | def sanity_handle_abichanges(status, d): | 627 | def sanity_handle_abichanges(status, d): |
606 | # | 628 | # |
607 | # Check the 'ABI' of TMPDIR | 629 | # Check the 'ABI' of TMPDIR |
@@ -770,6 +792,9 @@ def check_sanity_version_change(status, d): | |||
770 | # macOS with default HFS+ file system) | 792 | # macOS with default HFS+ file system) |
771 | status.addresult(check_case_sensitive(tmpdir, "TMPDIR")) | 793 | status.addresult(check_case_sensitive(tmpdir, "TMPDIR")) |
772 | 794 | ||
795 | # Check if linking with lstdc++ is failing | ||
796 | status.addresult(check_cpp_toolchain(d)) | ||
797 | |||
773 | def sanity_check_locale(d): | 798 | def sanity_check_locale(d): |
774 | """ | 799 | """ |
775 | Currently bitbake switches locale to en_US.UTF-8 so check that this locale actually exists. | 800 | Currently bitbake switches locale to en_US.UTF-8 so check that this locale actually exists. |
diff --git a/meta/classes-global/staging.bbclass b/meta/classes-global/staging.bbclass index 55581e129b..ce1b9f829e 100644 --- a/meta/classes-global/staging.bbclass +++ b/meta/classes-global/staging.bbclass | |||
@@ -128,8 +128,8 @@ do_populate_sysroot[vardeps] += "${SYSROOT_PREPROCESS_FUNCS}" | |||
128 | do_populate_sysroot[vardepsexclude] += "BB_MULTI_PROVIDER_ALLOWED" | 128 | do_populate_sysroot[vardepsexclude] += "BB_MULTI_PROVIDER_ALLOWED" |
129 | 129 | ||
130 | POPULATESYSROOTDEPS = "" | 130 | POPULATESYSROOTDEPS = "" |
131 | POPULATESYSROOTDEPS:class-target = "${PREFERRED_PROVIDER_virtual/cross-binutils}:do_populate_sysroot" | 131 | POPULATESYSROOTDEPS:class-target = "virtual/cross-binutils:do_populate_sysroot" |
132 | POPULATESYSROOTDEPS:class-nativesdk = "${PREFERRED_PROVIDER_virtual/cross-binutils}:do_populate_sysroot" | 132 | POPULATESYSROOTDEPS:class-nativesdk = "virtual/nativesdk-cross-binutils:do_populate_sysroot" |
133 | do_populate_sysroot[depends] += "${POPULATESYSROOTDEPS}" | 133 | do_populate_sysroot[depends] += "${POPULATESYSROOTDEPS}" |
134 | 134 | ||
135 | SSTATETASKS += "do_populate_sysroot" | 135 | SSTATETASKS += "do_populate_sysroot" |
diff --git a/meta/classes-global/utils.bbclass b/meta/classes-global/utils.bbclass index c9cae8930f..530a490ea8 100644 --- a/meta/classes-global/utils.bbclass +++ b/meta/classes-global/utils.bbclass | |||
@@ -367,3 +367,13 @@ check_git_config() { | |||
367 | git config --local user.name "${PATCH_GIT_USER_NAME}" | 367 | git config --local user.name "${PATCH_GIT_USER_NAME}" |
368 | fi | 368 | fi |
369 | } | 369 | } |
370 | |||
371 | # Sets fixed git committer and author for reproducible commits | ||
372 | reproducible_git_committer_author() { | ||
373 | export GIT_COMMITTER_NAME="${PATCH_GIT_USER_NAME}" | ||
374 | export GIT_COMMITTER_EMAIL="${PATCH_GIT_USER_EMAIL}" | ||
375 | export GIT_COMMITTER_DATE="$(date -d @${SOURCE_DATE_EPOCH})" | ||
376 | export GIT_AUTHOR_NAME="${PATCH_GIT_USER_NAME}" | ||
377 | export GIT_AUTHOR_EMAIL="${PATCH_GIT_USER_EMAIL}" | ||
378 | export GIT_AUTHOR_DATE="$(date -d @${SOURCE_DATE_EPOCH})" | ||
379 | } | ||
diff --git a/meta/classes-recipe/grub-efi-cfg.bbclass b/meta/classes-recipe/grub-efi-cfg.bbclass index 52e85a3bb0..9a5cb99c52 100644 --- a/meta/classes-recipe/grub-efi-cfg.bbclass +++ b/meta/classes-recipe/grub-efi-cfg.bbclass | |||
@@ -23,6 +23,7 @@ GRUB_TIMEOUT ?= "10" | |||
23 | GRUB_OPTS ?= "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1" | 23 | GRUB_OPTS ?= "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1" |
24 | 24 | ||
25 | GRUB_ROOT ?= "${ROOT}" | 25 | GRUB_ROOT ?= "${ROOT}" |
26 | GRUB_TITLE ?= "" | ||
26 | APPEND ?= "" | 27 | APPEND ?= "" |
27 | 28 | ||
28 | # Uses MACHINE specific KERNEL_IMAGETYPE | 29 | # Uses MACHINE specific KERNEL_IMAGETYPE |
@@ -91,10 +92,15 @@ python build_efi_cfg() { | |||
91 | if not overrides: | 92 | if not overrides: |
92 | bb.fatal('OVERRIDES not defined') | 93 | bb.fatal('OVERRIDES not defined') |
93 | 94 | ||
95 | localdata.need_overrides() | ||
94 | localdata.setVar('OVERRIDES', 'grub_' + label + ':' + overrides) | 96 | localdata.setVar('OVERRIDES', 'grub_' + label + ':' + overrides) |
95 | 97 | ||
96 | for btype in btypes: | 98 | for btype in btypes: |
97 | cfgfile.write('\nmenuentry \'%s%s\'{\n' % (label, btype[0])) | 99 | title = localdata.getVar('GRUB_TITLE') |
100 | if not title or len(title) == 0: | ||
101 | title = label | ||
102 | |||
103 | cfgfile.write('\nmenuentry \'%s%s\'{\n' % (title, btype[0])) | ||
98 | lb = label | 104 | lb = label |
99 | if label == "install": | 105 | if label == "install": |
100 | lb = "install-efi" | 106 | lb = "install-efi" |
diff --git a/meta/classes-recipe/image.bbclass b/meta/classes-recipe/image.bbclass index 84a2017eb5..f08818db03 100644 --- a/meta/classes-recipe/image.bbclass +++ b/meta/classes-recipe/image.bbclass | |||
@@ -702,6 +702,7 @@ reproducible_final_image_task () { | |||
702 | systemd_preset_all () { | 702 | systemd_preset_all () { |
703 | if [ -e ${IMAGE_ROOTFS}${root_prefix}/lib/systemd/systemd ]; then | 703 | if [ -e ${IMAGE_ROOTFS}${root_prefix}/lib/systemd/systemd ]; then |
704 | systemctl --root="${IMAGE_ROOTFS}" --preset-mode=enable-only preset-all | 704 | systemctl --root="${IMAGE_ROOTFS}" --preset-mode=enable-only preset-all |
705 | systemctl --root="${IMAGE_ROOTFS}" --global --preset-mode=enable-only preset-all | ||
705 | fi | 706 | fi |
706 | } | 707 | } |
707 | 708 | ||
diff --git a/meta/classes-recipe/kernel-fitimage.bbclass b/meta/classes-recipe/kernel-fitimage.bbclass index 67c98adb23..fe076badfa 100644 --- a/meta/classes-recipe/kernel-fitimage.bbclass +++ b/meta/classes-recipe/kernel-fitimage.bbclass | |||
@@ -5,6 +5,7 @@ | |||
5 | # | 5 | # |
6 | 6 | ||
7 | inherit kernel-uboot kernel-artifact-names uboot-config | 7 | inherit kernel-uboot kernel-artifact-names uboot-config |
8 | require conf/image-fitimage.conf | ||
8 | 9 | ||
9 | def get_fit_replacement_type(d): | 10 | def get_fit_replacement_type(d): |
10 | kerneltypes = d.getVar('KERNEL_IMAGETYPES') or "" | 11 | kerneltypes = d.getVar('KERNEL_IMAGETYPES') or "" |
@@ -52,58 +53,6 @@ python __anonymous () { | |||
52 | d.setVar('EXTERNAL_KERNEL_DEVICETREE', "${RECIPE_SYSROOT}/boot/devicetree") | 53 | d.setVar('EXTERNAL_KERNEL_DEVICETREE', "${RECIPE_SYSROOT}/boot/devicetree") |
53 | } | 54 | } |
54 | 55 | ||
55 | |||
56 | # Description string | ||
57 | FIT_DESC ?= "Kernel fitImage for ${DISTRO_NAME}/${PV}/${MACHINE}" | ||
58 | |||
59 | # Kernel fitImage Hash Algo | ||
60 | FIT_HASH_ALG ?= "sha256" | ||
61 | |||
62 | # Kernel fitImage Signature Algo | ||
63 | FIT_SIGN_ALG ?= "rsa2048" | ||
64 | |||
65 | # Kernel / U-Boot fitImage Padding Algo | ||
66 | FIT_PAD_ALG ?= "pkcs-1.5" | ||
67 | |||
68 | # Generate keys for signing Kernel fitImage | ||
69 | FIT_GENERATE_KEYS ?= "0" | ||
70 | |||
71 | # Size of private keys in number of bits | ||
72 | FIT_SIGN_NUMBITS ?= "2048" | ||
73 | |||
74 | # args to openssl genrsa (Default is just the public exponent) | ||
75 | FIT_KEY_GENRSA_ARGS ?= "-F4" | ||
76 | |||
77 | # args to openssl req (Default is -batch for non interactive mode and | ||
78 | # -new for new certificate) | ||
79 | FIT_KEY_REQ_ARGS ?= "-batch -new" | ||
80 | |||
81 | # Standard format for public key certificate | ||
82 | FIT_KEY_SIGN_PKCS ?= "-x509" | ||
83 | |||
84 | # Sign individual images as well | ||
85 | FIT_SIGN_INDIVIDUAL ?= "0" | ||
86 | |||
87 | FIT_CONF_PREFIX ?= "conf-" | ||
88 | FIT_CONF_PREFIX[doc] = "Prefix to use for FIT configuration node name" | ||
89 | |||
90 | FIT_SUPPORTED_INITRAMFS_FSTYPES ?= "cpio.lz4 cpio.lzo cpio.lzma cpio.xz cpio.zst cpio.gz ext2.gz cpio" | ||
91 | |||
92 | # Allow user to select the default DTB for FIT image when multiple dtb's exists. | ||
93 | FIT_CONF_DEFAULT_DTB ?= "" | ||
94 | |||
95 | # length of address in number of <u32> cells | ||
96 | # ex: 1 32bits address, 2 64bits address | ||
97 | FIT_ADDRESS_CELLS ?= "1" | ||
98 | |||
99 | # Keys used to sign individually image nodes. | ||
100 | # The keys to sign image nodes must be different from those used to sign | ||
101 | # configuration nodes, otherwise the "required" property, from | ||
102 | # UBOOT_DTB_BINARY, will be set to "conf", because "conf" prevails on "image". | ||
103 | # Then the images signature checking will not be mandatory and no error will be | ||
104 | # raised in case of failure. | ||
105 | # UBOOT_SIGN_IMG_KEYNAME = "dev2" # keys name in keydir (eg. "dev2.crt", "dev2.key") | ||
106 | |||
107 | # | 56 | # |
108 | # Emit the fitImage ITS header | 57 | # Emit the fitImage ITS header |
109 | # | 58 | # |
diff --git a/meta/classes-recipe/kernel-yocto.bbclass b/meta/classes-recipe/kernel-yocto.bbclass index b8ace98787..cef6b9ec3f 100644 --- a/meta/classes-recipe/kernel-yocto.bbclass +++ b/meta/classes-recipe/kernel-yocto.bbclass | |||
@@ -150,10 +150,6 @@ do_kernel_metadata() { | |||
150 | # from the source tree, into a common location and normalized "defconfig" name, | 150 | # from the source tree, into a common location and normalized "defconfig" name, |
151 | # where the rest of the process will include and incoroporate it into the build | 151 | # where the rest of the process will include and incoroporate it into the build |
152 | # | 152 | # |
153 | # If the fetcher has already placed a defconfig in UNPACKDIR (from the SRC_URI), | ||
154 | # we don't overwrite it, but instead warn the user that SRC_URI defconfigs take | ||
155 | # precendence. | ||
156 | # | ||
157 | if [ -n "${KBUILD_DEFCONFIG}" ]; then | 153 | if [ -n "${KBUILD_DEFCONFIG}" ]; then |
158 | if [ -f "${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG}" ]; then | 154 | if [ -f "${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG}" ]; then |
159 | if [ -f "${UNPACKDIR}/defconfig" ]; then | 155 | if [ -f "${UNPACKDIR}/defconfig" ]; then |
@@ -163,10 +159,8 @@ do_kernel_metadata() { | |||
163 | if [ $? -ne 0 ]; then | 159 | if [ $? -ne 0 ]; then |
164 | bbdebug 1 "detected SRC_URI or patched defconfig in UNPACKDIR. ${KBUILD_DEFCONFIG} copied over it" | 160 | bbdebug 1 "detected SRC_URI or patched defconfig in UNPACKDIR. ${KBUILD_DEFCONFIG} copied over it" |
165 | fi | 161 | fi |
166 | cp -f ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${UNPACKDIR}/defconfig | ||
167 | else | ||
168 | cp -f ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${UNPACKDIR}/defconfig | ||
169 | fi | 162 | fi |
163 | cp -f ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${UNPACKDIR}/defconfig | ||
170 | in_tree_defconfig="${UNPACKDIR}/defconfig" | 164 | in_tree_defconfig="${UNPACKDIR}/defconfig" |
171 | else | 165 | else |
172 | bbfatal "A KBUILD_DEFCONFIG '${KBUILD_DEFCONFIG}' was specified, but not present in the source tree (${S}/arch/${ARCH}/configs/)" | 166 | bbfatal "A KBUILD_DEFCONFIG '${KBUILD_DEFCONFIG}' was specified, but not present in the source tree (${S}/arch/${ARCH}/configs/)" |
@@ -352,6 +346,9 @@ do_patch() { | |||
352 | cd ${S} | 346 | cd ${S} |
353 | 347 | ||
354 | check_git_config | 348 | check_git_config |
349 | if [ "${KERNEL_DEBUG_TIMESTAMPS}" != "1" ]; then | ||
350 | reproducible_git_committer_author | ||
351 | fi | ||
355 | meta_dir=$(kgit --meta) | 352 | meta_dir=$(kgit --meta) |
356 | (cd ${meta_dir}; ln -sf patch.queue series) | 353 | (cd ${meta_dir}; ln -sf patch.queue series) |
357 | if [ -f "${meta_dir}/series" ]; then | 354 | if [ -f "${meta_dir}/series" ]; then |
@@ -434,6 +431,9 @@ do_kernel_checkout() { | |||
434 | rm -f .gitignore | 431 | rm -f .gitignore |
435 | git init | 432 | git init |
436 | check_git_config | 433 | check_git_config |
434 | if [ "${KERNEL_DEBUG_TIMESTAMPS}" != "1" ]; then | ||
435 | reproducible_git_committer_author | ||
436 | fi | ||
437 | git add . | 437 | git add . |
438 | git commit -q -n -m "baseline commit: creating repo for ${PN}-${PV}" | 438 | git commit -q -n -m "baseline commit: creating repo for ${PN}-${PV}" |
439 | git clean -d -f | 439 | git clean -d -f |
@@ -454,8 +454,8 @@ do_qa_unpack() { | |||
454 | return | 454 | return |
455 | } | 455 | } |
456 | 456 | ||
457 | do_kernel_configme[depends] += "${PREFERRED_PROVIDER_virtual/cross-binutils}:do_populate_sysroot" | 457 | do_kernel_configme[depends] += "virtual/cross-binutils:do_populate_sysroot" |
458 | do_kernel_configme[depends] += "${PREFERRED_PROVIDER_virtual/cross-cc}:do_populate_sysroot" | 458 | do_kernel_configme[depends] += "virtual/cross-cc:do_populate_sysroot" |
459 | do_kernel_configme[depends] += "bc-native:do_populate_sysroot bison-native:do_populate_sysroot" | 459 | do_kernel_configme[depends] += "bc-native:do_populate_sysroot bison-native:do_populate_sysroot" |
460 | do_kernel_configme[depends] += "kern-tools-native:do_populate_sysroot" | 460 | do_kernel_configme[depends] += "kern-tools-native:do_populate_sysroot" |
461 | do_kernel_configme[dirs] += "${S} ${B}" | 461 | do_kernel_configme[dirs] += "${S} ${B}" |
diff --git a/meta/classes-recipe/populate_sdk_base.bbclass b/meta/classes-recipe/populate_sdk_base.bbclass index 98ac723552..edd9da9171 100644 --- a/meta/classes-recipe/populate_sdk_base.bbclass +++ b/meta/classes-recipe/populate_sdk_base.bbclass | |||
@@ -200,7 +200,14 @@ create_merged_usr_symlinks_sdk() { | |||
200 | create_merged_usr_symlinks ${SDK_OUTPUT}${SDKTARGETSYSROOT} | 200 | create_merged_usr_symlinks ${SDK_OUTPUT}${SDKTARGETSYSROOT} |
201 | } | 201 | } |
202 | 202 | ||
203 | POPULATE_SDK_PRE_TARGET_COMMAND += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'create_merged_usr_symlinks_sdk', '',d)}" | 203 | create_merged_usr_symlinks_nativesdk() { |
204 | create_merged_usr_symlinks ${SDK_OUTPUT}${SDKPATHNATIVE} | ||
205 | } | ||
206 | |||
207 | POPULATE_SDK_PRE_TARGET_COMMAND += " \ | ||
208 | ${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'create_merged_usr_symlinks_sdk', '',d)} \ | ||
209 | ${@bb.utils.contains('DISTRO_FEATURES_NATIVESDK', 'usrmerge', 'create_merged_usr_symlinks_nativesdk', '',d)} \ | ||
210 | " | ||
204 | 211 | ||
205 | SDK_PACKAGING_COMMAND = "${@'${SDK_PACKAGING_FUNC}' if '${SDK_PACKAGING_FUNC}' else ''}" | 212 | SDK_PACKAGING_COMMAND = "${@'${SDK_PACKAGING_FUNC}' if '${SDK_PACKAGING_FUNC}' else ''}" |
206 | SDK_POSTPROCESS_COMMAND = "create_sdk_files check_sdk_sysroots archive_sdk ${SDK_PACKAGING_COMMAND}" | 213 | SDK_POSTPROCESS_COMMAND = "create_sdk_files check_sdk_sysroots archive_sdk ${SDK_PACKAGING_COMMAND}" |
diff --git a/meta/classes-recipe/populate_sdk_ext.bbclass b/meta/classes-recipe/populate_sdk_ext.bbclass index 3019dad0f3..de4799f013 100644 --- a/meta/classes-recipe/populate_sdk_ext.bbclass +++ b/meta/classes-recipe/populate_sdk_ext.bbclass | |||
@@ -768,7 +768,7 @@ fakeroot python do_populate_sdk_ext() { | |||
768 | 768 | ||
769 | # FIXME hopefully we can remove this restriction at some point, but the eSDK | 769 | # FIXME hopefully we can remove this restriction at some point, but the eSDK |
770 | # can only be built for the primary (default) multiconfig | 770 | # can only be built for the primary (default) multiconfig |
771 | if d.getVar('BB_CURRENT_MC') != 'default': | 771 | if d.getVar('BB_CURRENT_MC') != '': |
772 | bb.fatal('The extensible SDK can currently only be built for the default multiconfig. Currently trying to build for %s.' % d.getVar('BB_CURRENT_MC')) | 772 | bb.fatal('The extensible SDK can currently only be built for the default multiconfig. Currently trying to build for %s.' % d.getVar('BB_CURRENT_MC')) |
773 | 773 | ||
774 | # eSDK dependencies don't use the traditional variables and things don't work properly if they are set | 774 | # eSDK dependencies don't use the traditional variables and things don't work properly if they are set |
diff --git a/meta/classes-recipe/rust-common.bbclass b/meta/classes-recipe/rust-common.bbclass index 6940093e59..baa3869c47 100644 --- a/meta/classes-recipe/rust-common.bbclass +++ b/meta/classes-recipe/rust-common.bbclass | |||
@@ -173,7 +173,7 @@ do_rust_create_wrappers () { | |||
173 | mkdir -p "${WRAPPER_DIR}" | 173 | mkdir -p "${WRAPPER_DIR}" |
174 | 174 | ||
175 | # Yocto Build / Rust Host C compiler | 175 | # Yocto Build / Rust Host C compiler |
176 | create_wrapper_rust "${RUST_BUILD_CC}" "" "${CRATE_CC_FLAGS}" "${BUILD_CC}" | 176 | create_wrapper_rust "${RUST_BUILD_CC}" "" "${CRATE_CC_FLAGS}" "${BUILD_CC}" "${BUILD_LDFLAGS}" |
177 | # Yocto Build / Rust Host C++ compiler | 177 | # Yocto Build / Rust Host C++ compiler |
178 | create_wrapper_rust "${RUST_BUILD_CXX}" "" "${CRATE_CC_FLAGS}" "${BUILD_CXX}" | 178 | create_wrapper_rust "${RUST_BUILD_CXX}" "" "${CRATE_CC_FLAGS}" "${BUILD_CXX}" |
179 | # Yocto Build / Rust Host linker | 179 | # Yocto Build / Rust Host linker |
diff --git a/meta/classes-recipe/systemd.bbclass b/meta/classes-recipe/systemd.bbclass index 4b4470b7b3..4c9f51d33d 100644 --- a/meta/classes-recipe/systemd.bbclass +++ b/meta/classes-recipe/systemd.bbclass | |||
@@ -37,17 +37,29 @@ if systemctl >/dev/null 2>/dev/null; then | |||
37 | fi | 37 | fi |
38 | 38 | ||
39 | if [ "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then | 39 | if [ "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then |
40 | for service in ${SYSTEMD_SERVICE_ESCAPED}; do | 40 | for service in ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)}; do |
41 | systemctl ${OPTS} enable "$service" | 41 | systemctl ${OPTS} enable "$service" |
42 | done | 42 | done |
43 | |||
44 | for service in ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", True, d)}; do | ||
45 | systemctl --global ${OPTS} enable "$service" | ||
46 | done | ||
43 | fi | 47 | fi |
44 | 48 | ||
45 | if [ -z "$D" ]; then | 49 | if [ -z "$D" ]; then |
50 | # Reload only system service manager | ||
51 | # --global for daemon-reload is not supported: https://github.com/systemd/systemd/issues/19284 | ||
46 | systemctl daemon-reload | 52 | systemctl daemon-reload |
47 | systemctl preset ${SYSTEMD_SERVICE_ESCAPED} | 53 | [ -n "${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)}" ] && \ |
54 | systemctl preset ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)} | ||
55 | |||
56 | [ -n "${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", True, d)}" ] && \ | ||
57 | systemctl --global preset ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", True, d)} | ||
48 | 58 | ||
49 | if [ "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then | 59 | if [ "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then |
50 | systemctl --no-block restart ${SYSTEMD_SERVICE_ESCAPED} | 60 | # --global flag for restart is not supported by systemd (see above) |
61 | [ -n "${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)}" ] && \ | ||
62 | systemctl --no-block restart ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)} | ||
51 | fi | 63 | fi |
52 | fi | 64 | fi |
53 | fi | 65 | fi |
@@ -56,9 +68,14 @@ fi | |||
56 | systemd_prerm() { | 68 | systemd_prerm() { |
57 | if systemctl >/dev/null 2>/dev/null; then | 69 | if systemctl >/dev/null 2>/dev/null; then |
58 | if [ -z "$D" ]; then | 70 | if [ -z "$D" ]; then |
59 | systemctl stop ${SYSTEMD_SERVICE_ESCAPED} | 71 | if [ -n "${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)}" ]; then |
72 | systemctl stop ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)} | ||
73 | systemctl disable ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)} | ||
74 | fi | ||
60 | 75 | ||
61 | systemctl disable ${SYSTEMD_SERVICE_ESCAPED} | 76 | # same as above, --global flag is not supported for stop so do disable only |
77 | [ -n "${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", True, d)}" ] && \ | ||
78 | systemctl --global disable ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", True, d)} | ||
62 | fi | 79 | fi |
63 | fi | 80 | fi |
64 | } | 81 | } |
@@ -68,6 +85,49 @@ systemd_populate_packages[vardeps] += "systemd_prerm systemd_postinst" | |||
68 | systemd_populate_packages[vardepsexclude] += "OVERRIDES" | 85 | systemd_populate_packages[vardepsexclude] += "OVERRIDES" |
69 | 86 | ||
70 | 87 | ||
88 | def systemd_service_path(service, searchpaths, d): | ||
89 | path_found = '' | ||
90 | |||
91 | # Deal with adding, for example, 'ifplugd@eth0.service' from | ||
92 | # 'ifplugd@.service' | ||
93 | base = None | ||
94 | at = service.find('@') | ||
95 | if at != -1: | ||
96 | ext = service.rfind('.') | ||
97 | base = service[:at] + '@' + service[ext:] | ||
98 | |||
99 | for path in searchpaths: | ||
100 | if os.path.lexists(oe.path.join(d.getVar("D"), path, service)): | ||
101 | path_found = path | ||
102 | break | ||
103 | elif base is not None: | ||
104 | if os.path.exists(oe.path.join(d.getVar("D"), path, base)): | ||
105 | path_found = path | ||
106 | break | ||
107 | |||
108 | return path_found, base | ||
109 | |||
110 | def systemd_service_searchpaths(user, d): | ||
111 | if user: | ||
112 | return [ | ||
113 | oe.path.join(d.getVar("sysconfdir"), "systemd", "user"), | ||
114 | d.getVar("systemd_user_unitdir"), | ||
115 | ] | ||
116 | else: | ||
117 | return [ | ||
118 | oe.path.join(d.getVar("sysconfdir"), "systemd", "system"), | ||
119 | d.getVar("systemd_system_unitdir"), | ||
120 | ] | ||
121 | |||
122 | def systemd_service_exists(service, user, d): | ||
123 | searchpaths = systemd_service_searchpaths(user, d) | ||
124 | path, _ = systemd_service_path(service, searchpaths, d) | ||
125 | |||
126 | return path != '' | ||
127 | |||
128 | def systemd_filter_services(services, user, d): | ||
129 | return ' '.join(service for service in services.split() if systemd_service_exists(service, user, d)) | ||
130 | |||
71 | python systemd_populate_packages() { | 131 | python systemd_populate_packages() { |
72 | import re | 132 | import re |
73 | import shlex | 133 | import shlex |
@@ -147,32 +207,15 @@ python systemd_populate_packages() { | |||
147 | 207 | ||
148 | # Check service-files and call systemd_add_files_and_parse for each entry | 208 | # Check service-files and call systemd_add_files_and_parse for each entry |
149 | def systemd_check_services(): | 209 | def systemd_check_services(): |
150 | searchpaths = [oe.path.join(d.getVar("sysconfdir"), "systemd", "system"),] | 210 | searchpaths = systemd_service_searchpaths(False, d) |
151 | searchpaths.append(d.getVar("systemd_system_unitdir")) | 211 | searchpaths.extend(systemd_service_searchpaths(True, d)) |
152 | searchpaths.append(d.getVar("systemd_user_unitdir")) | 212 | |
153 | systemd_packages = d.getVar('SYSTEMD_PACKAGES') | 213 | systemd_packages = d.getVar('SYSTEMD_PACKAGES') |
154 | 214 | ||
155 | # scan for all in SYSTEMD_SERVICE[] | 215 | # scan for all in SYSTEMD_SERVICE[] |
156 | for pkg_systemd in systemd_packages.split(): | 216 | for pkg_systemd in systemd_packages.split(): |
157 | for service in get_package_var(d, 'SYSTEMD_SERVICE', pkg_systemd).split(): | 217 | for service in get_package_var(d, 'SYSTEMD_SERVICE', pkg_systemd).split(): |
158 | path_found = '' | 218 | path_found, base = systemd_service_path(service, searchpaths, d) |
159 | |||
160 | # Deal with adding, for example, 'ifplugd@eth0.service' from | ||
161 | # 'ifplugd@.service' | ||
162 | base = None | ||
163 | at = service.find('@') | ||
164 | if at != -1: | ||
165 | ext = service.rfind('.') | ||
166 | base = service[:at] + '@' + service[ext:] | ||
167 | |||
168 | for path in searchpaths: | ||
169 | if os.path.lexists(oe.path.join(d.getVar("D"), path, service)): | ||
170 | path_found = path | ||
171 | break | ||
172 | elif base is not None: | ||
173 | if os.path.exists(oe.path.join(d.getVar("D"), path, base)): | ||
174 | path_found = path | ||
175 | break | ||
176 | 219 | ||
177 | if path_found != '': | 220 | if path_found != '': |
178 | systemd_add_files_and_parse(pkg_systemd, path_found, service) | 221 | systemd_add_files_and_parse(pkg_systemd, path_found, service) |
@@ -180,13 +223,27 @@ python systemd_populate_packages() { | |||
180 | bb.fatal("Didn't find service unit '{0}', specified in SYSTEMD_SERVICE:{1}. {2}".format( | 223 | bb.fatal("Didn't find service unit '{0}', specified in SYSTEMD_SERVICE:{1}. {2}".format( |
181 | service, pkg_systemd, "Also looked for service unit '{0}'.".format(base) if base is not None else "")) | 224 | service, pkg_systemd, "Also looked for service unit '{0}'.".format(base) if base is not None else "")) |
182 | 225 | ||
183 | def systemd_create_presets(pkg, action): | 226 | def systemd_create_presets(pkg, action, user): |
184 | presetf = oe.path.join(d.getVar("PKGD"), d.getVar("systemd_unitdir"), "system-preset/98-%s.preset" % pkg) | 227 | # Check there is at least one service of given type (system/user), don't |
228 | # create empty files. | ||
229 | needs_preset = False | ||
230 | for service in d.getVar('SYSTEMD_SERVICE:%s' % pkg).split(): | ||
231 | if systemd_service_exists(service, user, d): | ||
232 | needs_preset = True | ||
233 | break | ||
234 | |||
235 | if not needs_preset: | ||
236 | return | ||
237 | |||
238 | prefix = "user" if user else "system" | ||
239 | presetf = oe.path.join(d.getVar("PKGD"), d.getVar("systemd_unitdir"), "%s-preset/98-%s.preset" % (prefix, pkg)) | ||
185 | bb.utils.mkdirhier(os.path.dirname(presetf)) | 240 | bb.utils.mkdirhier(os.path.dirname(presetf)) |
186 | with open(presetf, 'a') as fd: | 241 | with open(presetf, 'a') as fd: |
187 | for service in d.getVar('SYSTEMD_SERVICE:%s' % pkg).split(): | 242 | for service in d.getVar('SYSTEMD_SERVICE:%s' % pkg).split(): |
243 | if not systemd_service_exists(service, user, d): | ||
244 | continue | ||
188 | fd.write("%s %s\n" % (action,service)) | 245 | fd.write("%s %s\n" % (action,service)) |
189 | d.appendVar("FILES:%s" % pkg, ' ' + oe.path.join(d.getVar("systemd_unitdir"), "system-preset/98-%s.preset" % pkg)) | 246 | d.appendVar("FILES:%s" % pkg, ' ' + oe.path.join(d.getVar("systemd_unitdir"), "%s-preset/98-%s.preset" % (prefix, pkg))) |
190 | 247 | ||
191 | # Run all modifications once when creating package | 248 | # Run all modifications once when creating package |
192 | if os.path.exists(d.getVar("D")): | 249 | if os.path.exists(d.getVar("D")): |
@@ -196,7 +253,8 @@ python systemd_populate_packages() { | |||
196 | systemd_generate_package_scripts(pkg) | 253 | systemd_generate_package_scripts(pkg) |
197 | action = get_package_var(d, 'SYSTEMD_AUTO_ENABLE', pkg) | 254 | action = get_package_var(d, 'SYSTEMD_AUTO_ENABLE', pkg) |
198 | if action in ("enable", "disable"): | 255 | if action in ("enable", "disable"): |
199 | systemd_create_presets(pkg, action) | 256 | systemd_create_presets(pkg, action, False) |
257 | systemd_create_presets(pkg, action, True) | ||
200 | elif action not in ("mask", "preset"): | 258 | elif action not in ("mask", "preset"): |
201 | bb.fatal("SYSTEMD_AUTO_ENABLE:%s '%s' is not 'enable', 'disable', 'mask' or 'preset'" % (pkg, action)) | 259 | bb.fatal("SYSTEMD_AUTO_ENABLE:%s '%s' is not 'enable', 'disable', 'mask' or 'preset'" % (pkg, action)) |
202 | systemd_check_services() | 260 | systemd_check_services() |
diff --git a/meta/classes-recipe/uboot-extlinux-config.bbclass b/meta/classes-recipe/uboot-extlinux-config.bbclass index 2fa83b2c8b..099476f5d6 100644 --- a/meta/classes-recipe/uboot-extlinux-config.bbclass +++ b/meta/classes-recipe/uboot-extlinux-config.bbclass | |||
@@ -162,7 +162,7 @@ python do_create_extlinux_config() { | |||
162 | except OSError: | 162 | except OSError: |
163 | bb.fatal('Unable to open %s' % (cfile)) | 163 | bb.fatal('Unable to open %s' % (cfile)) |
164 | } | 164 | } |
165 | UBOOT_EXTLINUX_VARS = "CONSOLE MENU_DESCRIPTION ROOT KERNEL_IMAGE FDTDIR FDT KERNEL_ARGS INITRD" | 165 | UBOOT_EXTLINUX_VARS = "CONSOLE MENU_DESCRIPTION ROOT KERNEL_IMAGE FDTDIR FDT FDTOVERLAYS KERNEL_ARGS INITRD" |
166 | do_create_extlinux_config[vardeps] += "${@' '.join(['UBOOT_EXTLINUX_%s:%s' % (v, l) for v in d.getVar('UBOOT_EXTLINUX_VARS').split() for l in d.getVar('UBOOT_EXTLINUX_LABELS').split()])}" | 166 | do_create_extlinux_config[vardeps] += "${@' '.join(['UBOOT_EXTLINUX_%s:%s' % (v, l) for v in d.getVar('UBOOT_EXTLINUX_VARS').split() for l in d.getVar('UBOOT_EXTLINUX_LABELS').split()])}" |
167 | do_create_extlinux_config[vardepsexclude] += "OVERRIDES" | 167 | do_create_extlinux_config[vardepsexclude] += "OVERRIDES" |
168 | 168 | ||
diff --git a/meta/classes-recipe/uboot-sign.bbclass b/meta/classes-recipe/uboot-sign.bbclass index a17be745ce..96c47ab016 100644 --- a/meta/classes-recipe/uboot-sign.bbclass +++ b/meta/classes-recipe/uboot-sign.bbclass | |||
@@ -26,6 +26,7 @@ | |||
26 | 26 | ||
27 | # We need some variables from u-boot-config | 27 | # We need some variables from u-boot-config |
28 | inherit uboot-config | 28 | inherit uboot-config |
29 | require conf/image-fitimage.conf | ||
29 | 30 | ||
30 | # Enable use of a U-Boot fitImage | 31 | # Enable use of a U-Boot fitImage |
31 | UBOOT_FITIMAGE_ENABLE ?= "0" | 32 | UBOOT_FITIMAGE_ENABLE ?= "0" |
@@ -85,9 +86,6 @@ UBOOT_FIT_KEY_SIGN_PKCS ?= "-x509" | |||
85 | # ex: 1 32bits address, 2 64bits address | 86 | # ex: 1 32bits address, 2 64bits address |
86 | UBOOT_FIT_ADDRESS_CELLS ?= "1" | 87 | UBOOT_FIT_ADDRESS_CELLS ?= "1" |
87 | 88 | ||
88 | # This is only necessary for determining the signing configuration | ||
89 | KERNEL_PN = "${PREFERRED_PROVIDER_virtual/kernel}" | ||
90 | |||
91 | UBOOT_FIT_UBOOT_LOADADDRESS ?= "${UBOOT_LOADADDRESS}" | 89 | UBOOT_FIT_UBOOT_LOADADDRESS ?= "${UBOOT_LOADADDRESS}" |
92 | UBOOT_FIT_UBOOT_ENTRYPOINT ?= "${UBOOT_ENTRYPOINT}" | 90 | UBOOT_FIT_UBOOT_ENTRYPOINT ?= "${UBOOT_ENTRYPOINT}" |
93 | 91 | ||
@@ -96,8 +94,6 @@ python() { | |||
96 | sign = d.getVar('UBOOT_SIGN_ENABLE') == '1' | 94 | sign = d.getVar('UBOOT_SIGN_ENABLE') == '1' |
97 | if d.getVar('UBOOT_FITIMAGE_ENABLE') == '1' or sign: | 95 | if d.getVar('UBOOT_FITIMAGE_ENABLE') == '1' or sign: |
98 | d.appendVar('DEPENDS', " u-boot-tools-native dtc-native") | 96 | d.appendVar('DEPENDS', " u-boot-tools-native dtc-native") |
99 | if sign: | ||
100 | d.appendVar('DEPENDS', " " + d.getVar('KERNEL_PN')) | ||
101 | } | 97 | } |
102 | 98 | ||
103 | concat_dtb() { | 99 | concat_dtb() { |
@@ -106,16 +102,26 @@ concat_dtb() { | |||
106 | 102 | ||
107 | if [ -e "${UBOOT_DTB_BINARY}" ]; then | 103 | if [ -e "${UBOOT_DTB_BINARY}" ]; then |
108 | # Re-sign the kernel in order to add the keys to our dtb | 104 | # Re-sign the kernel in order to add the keys to our dtb |
105 | UBOOT_MKIMAGE_MODE="auto-conf" | ||
106 | # Signing individual images is not recommended as that | ||
107 | # makes fitImage susceptible to mix-and-match attack. | ||
108 | if [ "${FIT_SIGN_INDIVIDUAL}" = "1" ] ; then | ||
109 | UBOOT_MKIMAGE_MODE="auto" | ||
110 | fi | ||
109 | ${UBOOT_MKIMAGE_SIGN} \ | 111 | ${UBOOT_MKIMAGE_SIGN} \ |
110 | ${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \ | 112 | ${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \ |
111 | -F -k "${UBOOT_SIGN_KEYDIR}" \ | 113 | -f $UBOOT_MKIMAGE_MODE \ |
114 | -k "${UBOOT_SIGN_KEYDIR}" \ | ||
115 | -o "${FIT_HASH_ALG},${FIT_SIGN_ALG}" \ | ||
116 | -g "${UBOOT_SIGN_IMG_KEYNAME}" \ | ||
112 | -K "${UBOOT_DTB_BINARY}" \ | 117 | -K "${UBOOT_DTB_BINARY}" \ |
113 | -r ${B}/fitImage-linux \ | 118 | -d /dev/null \ |
119 | -r ${B}/unused.itb \ | ||
114 | ${UBOOT_MKIMAGE_SIGN_ARGS} | 120 | ${UBOOT_MKIMAGE_SIGN_ARGS} |
115 | # Verify the kernel image and u-boot dtb | 121 | # Verify the kernel image and u-boot dtb |
116 | ${UBOOT_FIT_CHECK_SIGN} \ | 122 | ${UBOOT_FIT_CHECK_SIGN} \ |
117 | -k "${UBOOT_DTB_BINARY}" \ | 123 | -k "${UBOOT_DTB_BINARY}" \ |
118 | -f ${B}/fitImage-linux | 124 | -f ${B}/unused.itb |
119 | cp ${UBOOT_DTB_BINARY} ${UBOOT_DTB_SIGNED} | 125 | cp ${UBOOT_DTB_BINARY} ${UBOOT_DTB_SIGNED} |
120 | fi | 126 | fi |
121 | 127 | ||
@@ -351,10 +357,6 @@ uboot_assemble_fitimage_helper() { | |||
351 | } | 357 | } |
352 | 358 | ||
353 | do_uboot_assemble_fitimage() { | 359 | do_uboot_assemble_fitimage() { |
354 | if [ "${UBOOT_SIGN_ENABLE}" = "1" ] ; then | ||
355 | cp "${STAGING_DIR_HOST}/sysroot-only/fitImage" "${B}/fitImage-linux" | ||
356 | fi | ||
357 | |||
358 | if [ -n "${UBOOT_CONFIG}" ]; then | 360 | if [ -n "${UBOOT_CONFIG}" ]; then |
359 | unset i | 361 | unset i |
360 | for config in ${UBOOT_MACHINE}; do | 362 | for config in ${UBOOT_MACHINE}; do |
diff --git a/meta/classes/create-spdx-2.2.bbclass b/meta/classes/create-spdx-2.2.bbclass index 27242ecf70..494bde117f 100644 --- a/meta/classes/create-spdx-2.2.bbclass +++ b/meta/classes/create-spdx-2.2.bbclass | |||
@@ -75,11 +75,17 @@ def convert_license_to_spdx(lic, license_data, document, d, existing={}): | |||
75 | pass | 75 | pass |
76 | if extracted_info.extractedText is None: | 76 | if extracted_info.extractedText is None: |
77 | # If it's not SPDX or PD, then NO_GENERIC_LICENSE must be set | 77 | # If it's not SPDX or PD, then NO_GENERIC_LICENSE must be set |
78 | filename = d.getVarFlag('NO_GENERIC_LICENSE', name) | 78 | entry = d.getVarFlag('NO_GENERIC_LICENSE', name).split(';') |
79 | filename = entry[0] | ||
80 | params = {i.split('=')[0]: i.split('=')[1] for i in entry[1:] if '=' in i} | ||
81 | beginline = int(params.get('beginline', 1)) | ||
82 | endline = params.get('endline', None) | ||
83 | if endline: | ||
84 | endline = int(endline) | ||
79 | if filename: | 85 | if filename: |
80 | filename = d.expand("${S}/" + filename) | 86 | filename = d.expand("${S}/" + filename) |
81 | with open(filename, errors="replace") as f: | 87 | with open(filename, errors="replace") as f: |
82 | extracted_info.extractedText = f.read() | 88 | extracted_info.extractedText = "".join(line for idx, line in enumerate(f, 1) if beginline <= idx and idx <= (endline or idx)) |
83 | else: | 89 | else: |
84 | bb.fatal("Cannot find any text for license %s" % name) | 90 | bb.fatal("Cannot find any text for license %s" % name) |
85 | 91 | ||
diff --git a/meta/classes/cve-check.bbclass b/meta/classes/cve-check.bbclass index 4bd9af4abf..6e10dd915a 100644 --- a/meta/classes/cve-check.bbclass +++ b/meta/classes/cve-check.bbclass | |||
@@ -31,11 +31,7 @@ | |||
31 | CVE_PRODUCT ??= "${BPN}" | 31 | CVE_PRODUCT ??= "${BPN}" |
32 | CVE_VERSION ??= "${PV}" | 32 | CVE_VERSION ??= "${PV}" |
33 | 33 | ||
34 | # Possible database sources: NVD1, NVD2, FKIE | 34 | CVE_CHECK_DB_FILENAME ?= "nvdcve_2-2.db" |
35 | NVD_DB_VERSION ?= "NVD2" | ||
36 | |||
37 | CVE_CHECK_DB_FILENAME ?= "${@'nvdcve_2-2.db' if d.getVar('NVD_DB_VERSION') == 'NVD2' else 'nvdcve_1-3.db'}" | ||
38 | CVE_CHECK_DB_FETCHER ?= "${@'cve-update-nvd2-native' if d.getVar('NVD_DB_VERSION') == 'NVD2' else 'cve-update-db-native'}" | ||
39 | CVE_CHECK_DB_DIR ?= "${STAGING_DIR}/CVE_CHECK" | 35 | CVE_CHECK_DB_DIR ?= "${STAGING_DIR}/CVE_CHECK" |
40 | CVE_CHECK_DB_FILE ?= "${CVE_CHECK_DB_DIR}/${CVE_CHECK_DB_FILENAME}" | 36 | CVE_CHECK_DB_FILE ?= "${CVE_CHECK_DB_DIR}/${CVE_CHECK_DB_FILENAME}" |
41 | CVE_CHECK_DB_FILE_LOCK ?= "${CVE_CHECK_DB_FILE}.lock" | 37 | CVE_CHECK_DB_FILE_LOCK ?= "${CVE_CHECK_DB_FILE}.lock" |
@@ -118,11 +114,6 @@ python () { | |||
118 | d.setVarFlag("CVE_STATUS", cve, d.getVarFlag(cve_status_group, "status")) | 114 | d.setVarFlag("CVE_STATUS", cve, d.getVarFlag(cve_status_group, "status")) |
119 | else: | 115 | else: |
120 | bb.warn("CVE_STATUS_GROUPS contains undefined variable %s" % cve_status_group) | 116 | bb.warn("CVE_STATUS_GROUPS contains undefined variable %s" % cve_status_group) |
121 | |||
122 | nvd_database_type = d.getVar("NVD_DB_VERSION") | ||
123 | if nvd_database_type not in ("NVD", "NVD2", "FKIE"): | ||
124 | d.setVar("NVD_DB_VERSION", "NVD2") | ||
125 | bb.warn("Malformed NVD_DB_VERSION, resetting to NVD2") | ||
126 | } | 117 | } |
127 | 118 | ||
128 | def generate_json_report(d, out_path, link_path): | 119 | def generate_json_report(d, out_path, link_path): |
@@ -191,7 +182,7 @@ python do_cve_check () { | |||
191 | } | 182 | } |
192 | 183 | ||
193 | addtask cve_check before do_build | 184 | addtask cve_check before do_build |
194 | do_cve_check[depends] = "${CVE_CHECK_DB_FETCHER}:do_unpack" | 185 | do_cve_check[depends] = "cve-update-nvd2-native:do_unpack" |
195 | do_cve_check[nostamp] = "1" | 186 | do_cve_check[nostamp] = "1" |
196 | 187 | ||
197 | python cve_check_cleanup () { | 188 | python cve_check_cleanup () { |
diff --git a/meta/classes/go-vendor.bbclass b/meta/classes/go-vendor.bbclass index f3268c1125..6ec6178add 100644 --- a/meta/classes/go-vendor.bbclass +++ b/meta/classes/go-vendor.bbclass | |||
@@ -201,11 +201,15 @@ python do_go_vendor() { | |||
201 | for vendored_name, replaced_path in replaced_paths.items(): | 201 | for vendored_name, replaced_path in replaced_paths.items(): |
202 | symlink_target = os.path.join(source_dir, *['src', go_import, replaced_path]) | 202 | symlink_target = os.path.join(source_dir, *['src', go_import, replaced_path]) |
203 | symlink_name = os.path.join(vendor_dir, vendored_name) | 203 | symlink_name = os.path.join(vendor_dir, vendored_name) |
204 | relative_symlink_target = os.path.relpath(symlink_target, os.path.dirname(symlink_name)) | ||
204 | bb.debug(1, "vendored name %s, symlink name %s" % (vendored_name, symlink_name)) | 205 | bb.debug(1, "vendored name %s, symlink name %s" % (vendored_name, symlink_name)) |
205 | oe.path.relsymlink(symlink_target, symlink_name) | 206 | |
207 | os.makedirs(os.path.dirname(symlink_name), exist_ok=True) | ||
208 | os.symlink(relative_symlink_target, symlink_name) | ||
206 | 209 | ||
207 | # Create a symlink to the actual directory | 210 | # Create a symlink to the actual directory |
208 | oe.path.relsymlink(vendor_dir, linkname) | 211 | relative_vendor_dir = os.path.relpath(vendor_dir, os.path.dirname(linkname)) |
212 | os.symlink(relative_vendor_dir, linkname) | ||
209 | } | 213 | } |
210 | 214 | ||
211 | addtask go_vendor before do_patch after do_unpack | 215 | addtask go_vendor before do_patch after do_unpack |
diff --git a/meta/classes/multilib_global.bbclass b/meta/classes/multilib_global.bbclass index fcdda265ac..c1d6de100c 100644 --- a/meta/classes/multilib_global.bbclass +++ b/meta/classes/multilib_global.bbclass | |||
@@ -155,11 +155,11 @@ def preferred_ml_updates(d): | |||
155 | extramp.append(translate_provide(pref, p)) | 155 | extramp.append(translate_provide(pref, p)) |
156 | d.setVar("BB_MULTI_PROVIDER_ALLOWED", " ".join(mp + extramp)) | 156 | d.setVar("BB_MULTI_PROVIDER_ALLOWED", " ".join(mp + extramp)) |
157 | 157 | ||
158 | virtprovs = d.getVar("RECIPE_VIRTUAL_PROVIDERS").split() | 158 | virtprovs = d.getVar("BB_RECIPE_VIRTUAL_PROVIDERS").split() |
159 | for p in virtprovs.copy(): | 159 | for p in virtprovs.copy(): |
160 | for pref in prefixes: | 160 | for pref in prefixes: |
161 | virtprovs.append(translate_provide(pref, p)) | 161 | virtprovs.append(translate_provide(pref, p)) |
162 | d.setVar("RECIPE_VIRTUAL_PROVIDERS", " ".join(virtprovs)) | 162 | d.setVar("BB_RECIPE_VIRTUAL_PROVIDERS", " ".join(virtprovs)) |
163 | 163 | ||
164 | abisafe = (d.getVar("SIGGEN_EXCLUDERECIPES_ABISAFE") or "").split() | 164 | abisafe = (d.getVar("SIGGEN_EXCLUDERECIPES_ABISAFE") or "").split() |
165 | extras = [] | 165 | extras = [] |
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 6123bcd123..19bd7ecc7b 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf | |||
@@ -553,6 +553,8 @@ HOSTTOOLS_NONFATAL += "gsutil" | |||
553 | # Link to git-lfs if present | 553 | # Link to git-lfs if present |
554 | HOSTTOOLS_NONFATAL += "git-lfs" | 554 | HOSTTOOLS_NONFATAL += "git-lfs" |
555 | 555 | ||
556 | CCACHE ??= "" | ||
557 | |||
556 | export CC | 558 | export CC |
557 | export CXX | 559 | export CXX |
558 | export FC | 560 | export FC |
@@ -828,7 +830,7 @@ OE_FRAGMENTS_PREFIX ?= "conf/fragments" | |||
828 | OE_FRAGMENTS_METADATA_VARS ?= "BB_CONF_FRAGMENT_SUMMARY BB_CONF_FRAGMENT_DESCRIPTION" | 830 | OE_FRAGMENTS_METADATA_VARS ?= "BB_CONF_FRAGMENT_SUMMARY BB_CONF_FRAGMENT_DESCRIPTION" |
829 | addfragments ${OE_FRAGMENTS_PREFIX} OE_FRAGMENTS OE_FRAGMENTS_METADATA_VARS | 831 | addfragments ${OE_FRAGMENTS_PREFIX} OE_FRAGMENTS OE_FRAGMENTS_METADATA_VARS |
830 | 832 | ||
831 | require conf/multiconfig/${BB_CURRENT_MC}.conf | 833 | require ${@"conf/multiconfig/${BB_CURRENT_MC}.conf" if "${BB_CURRENT_MC}" != "" else ""} |
832 | include conf/machine/${MACHINE}.conf | 834 | include conf/machine/${MACHINE}.conf |
833 | include conf/machine-sdk/${SDKMACHINE}.conf | 835 | include conf/machine-sdk/${SDKMACHINE}.conf |
834 | require conf/cve-check-map.conf | 836 | require conf/cve-check-map.conf |
@@ -840,7 +842,8 @@ require conf/sanity.conf | |||
840 | include conf/bblock.conf | 842 | include conf/bblock.conf |
841 | 843 | ||
842 | TOOLCHAIN ??= "gcc" | 844 | TOOLCHAIN ??= "gcc" |
843 | include toolchain/${TOOLCHAIN}.inc | 845 | require toolchain/${TOOLCHAIN}.inc |
846 | require toolchain/build-gcc.inc | ||
844 | 847 | ||
845 | ################################################################## | 848 | ################################################################## |
846 | # Weak variables (usually to retain backwards compatibility) | 849 | # Weak variables (usually to retain backwards compatibility) |
diff --git a/meta/conf/distro/include/default-providers.inc b/meta/conf/distro/include/default-providers.inc index 881cc64a00..d3eefb754b 100644 --- a/meta/conf/distro/include/default-providers.inc +++ b/meta/conf/distro/include/default-providers.inc | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Default virtual providers | 2 | # Default virtual providers |
3 | # | 3 | # |
4 | RECIPE_VIRTUAL_PROVIDERS = "virtual/cross-cc virtual/cross-c++ virtual/cross-binutils virtual/cross-sdk-cc virtual/cross-sdk-c++ virtual/cross-sdk-binutils" | 4 | BB_RECIPE_VIRTUAL_PROVIDERS = "virtual/cross-cc virtual/cross-c++ virtual/cross-binutils virtual/nativesdk-cross-cc virtual/nativesdk-cross-c++ virtual/nativesdk-cross-binutils" |
5 | PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" | 5 | PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" |
6 | PREFERRED_PROVIDER_virtual/xserver-xf86 ?= "xserver-xorg" | 6 | PREFERRED_PROVIDER_virtual/xserver-xf86 ?= "xserver-xorg" |
7 | PREFERRED_PROVIDER_virtual/egl ?= "mesa" | 7 | PREFERRED_PROVIDER_virtual/egl ?= "mesa" |
diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc index 67e83302a3..df914f6ef5 100644 --- a/meta/conf/distro/include/tcmode-default.inc +++ b/meta/conf/distro/include/tcmode-default.inc | |||
@@ -3,19 +3,10 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | PREFERRED_PROVIDER_virtual/cross-binutils = "${MLPREFIX}binutils-cross-${TARGET_ARCH}" | 5 | PREFERRED_PROVIDER_virtual/cross-binutils = "${MLPREFIX}binutils-cross-${TARGET_ARCH}" |
6 | PREFERRED_PROVIDER_virtual/cross-cc = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" | ||
7 | PREFERRED_PROVIDER_virtual/cross-c++ = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" | ||
8 | PREFERRED_PROVIDER_virtual/compilerlibs = "gcc-runtime" | ||
9 | PREFERRED_PROVIDER_gdb = "gdb" | ||
10 | |||
11 | PREFERRED_PROVIDER_virtual/cross-binutils:class-nativesdk ?= "binutils-crosssdk-${SDK_SYS}" | 6 | PREFERRED_PROVIDER_virtual/cross-binutils:class-nativesdk ?= "binutils-crosssdk-${SDK_SYS}" |
12 | PREFERRED_PROVIDER_virtual/cross-cc:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" | 7 | PREFERRED_PROVIDER_virtual/nativesdk-cross-binutils ?= "binutils-crosssdk-${SDK_SYS}" |
13 | PREFERRED_PROVIDER_virtual/cross-c++:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" | ||
14 | 8 | ||
15 | PREFERRED_PROVIDER_virtual/cross-sdk-binutils ?= "binutils-crosssdk-${SDK_SYS}" | 9 | PREFERRED_PROVIDER_gdb = "gdb" |
16 | PREFERRED_PROVIDER_virtual/cross-sdk-cc = "gcc-crosssdk-${SDK_SYS}" | ||
17 | PREFERRED_PROVIDER_virtual/cross-sdk-c++ = "gcc-crosssdk-${SDK_SYS}" | ||
18 | PREFERRED_PROVIDER_virtual/sdk-compilerlibs = "nativesdk-gcc-runtime" | ||
19 | 10 | ||
20 | # Default libc config | 11 | # Default libc config |
21 | PREFERRED_PROVIDER_virtual/gettext ??= "gettext" | 12 | PREFERRED_PROVIDER_virtual/gettext ??= "gettext" |
@@ -23,7 +14,7 @@ PREFERRED_PROVIDER_virtual/gettext ??= "gettext" | |||
23 | GCCVERSION ?= "14.%" | 14 | GCCVERSION ?= "14.%" |
24 | SDKGCCVERSION ?= "${GCCVERSION}" | 15 | SDKGCCVERSION ?= "${GCCVERSION}" |
25 | BINUVERSION ?= "2.43%" | 16 | BINUVERSION ?= "2.43%" |
26 | GDBVERSION ?= "15.%" | 17 | GDBVERSION ?= "16.%" |
27 | GLIBCVERSION ?= "2.40%" | 18 | GLIBCVERSION ?= "2.40%" |
28 | LINUXLIBCVERSION ?= "6.12%" | 19 | LINUXLIBCVERSION ?= "6.12%" |
29 | QEMUVERSION ?= "9.2%" | 20 | QEMUVERSION ?= "9.2%" |
diff --git a/meta/conf/distro/include/time64.inc b/meta/conf/distro/include/time64.inc index f9f2fd0877..5122e2a122 100644 --- a/meta/conf/distro/include/time64.inc +++ b/meta/conf/distro/include/time64.inc | |||
@@ -53,5 +53,5 @@ INSANE_SKIP:append:pn-pseudo = " 32bit-time" | |||
53 | INSANE_SKIP:append:pn-binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = " 32bit-time" | 53 | INSANE_SKIP:append:pn-binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = " 32bit-time" |
54 | #gcc-cross-canadian-arm-14.1.0-r0 do_package_qa: QA Issue: xxx/x86_64-oesdk-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/14.1.0/plugin/gengtype uses 32-bit api 'ctime' | 54 | #gcc-cross-canadian-arm-14.1.0-r0 do_package_qa: QA Issue: xxx/x86_64-oesdk-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/14.1.0/plugin/gengtype uses 32-bit api 'ctime' |
55 | INSANE_SKIP:append:pn-gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = " 32bit-time" | 55 | INSANE_SKIP:append:pn-gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = " 32bit-time" |
56 | #gdb-cross-canadian-arm-15.2-r0 do_package_qa: QA Issue: xxx/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-gdb uses 32-bit api 'lstat' | 56 | #gdb-cross-canadian-arm-16.1-r0 do_package_qa: QA Issue: xxx/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-gdb uses 32-bit api 'lstat' |
57 | INSANE_SKIP:append:pn-gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = " 32bit-time" | 57 | INSANE_SKIP:append:pn-gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = " 32bit-time" |
diff --git a/meta/conf/image-fitimage.conf b/meta/conf/image-fitimage.conf new file mode 100644 index 0000000000..be9ae30134 --- /dev/null +++ b/meta/conf/image-fitimage.conf | |||
@@ -0,0 +1,53 @@ | |||
1 | # Possible options for fitImage generation, mainly | ||
2 | # related to signing of the fitImage content. | ||
3 | |||
4 | # Description string | ||
5 | FIT_DESC ?= "Kernel fitImage for ${DISTRO_NAME}/${PV}/${MACHINE}" | ||
6 | |||
7 | # Kernel fitImage Hash Algo | ||
8 | FIT_HASH_ALG ?= "sha256" | ||
9 | |||
10 | # Kernel fitImage Signature Algo | ||
11 | FIT_SIGN_ALG ?= "rsa2048" | ||
12 | |||
13 | # Kernel / U-Boot fitImage Padding Algo | ||
14 | FIT_PAD_ALG ?= "pkcs-1.5" | ||
15 | |||
16 | # Generate keys for signing Kernel fitImage | ||
17 | FIT_GENERATE_KEYS ?= "0" | ||
18 | |||
19 | # Size of private keys in number of bits | ||
20 | FIT_SIGN_NUMBITS ?= "2048" | ||
21 | |||
22 | # args to openssl genrsa (Default is just the public exponent) | ||
23 | FIT_KEY_GENRSA_ARGS ?= "-F4" | ||
24 | |||
25 | # args to openssl req (Default is -batch for non interactive mode and | ||
26 | # -new for new certificate) | ||
27 | FIT_KEY_REQ_ARGS ?= "-batch -new" | ||
28 | |||
29 | # Standard format for public key certificate | ||
30 | FIT_KEY_SIGN_PKCS ?= "-x509" | ||
31 | |||
32 | # Sign individual images as well | ||
33 | FIT_SIGN_INDIVIDUAL ?= "0" | ||
34 | |||
35 | FIT_CONF_PREFIX ?= "conf-" | ||
36 | FIT_CONF_PREFIX[doc] = "Prefix to use for FIT configuration node name" | ||
37 | |||
38 | FIT_SUPPORTED_INITRAMFS_FSTYPES ?= "cpio.lz4 cpio.lzo cpio.lzma cpio.xz cpio.zst cpio.gz ext2.gz cpio" | ||
39 | |||
40 | # Allow user to select the default DTB for FIT image when multiple dtb's exists. | ||
41 | FIT_CONF_DEFAULT_DTB ?= "" | ||
42 | |||
43 | # length of address in number of <u32> cells | ||
44 | # ex: 1 32bits address, 2 64bits address | ||
45 | FIT_ADDRESS_CELLS ?= "1" | ||
46 | |||
47 | # Keys used to sign individually image nodes. | ||
48 | # The keys to sign image nodes must be different from those used to sign | ||
49 | # configuration nodes, otherwise the "required" property, from | ||
50 | # UBOOT_DTB_BINARY, will be set to "conf", because "conf" prevails on "image". | ||
51 | # Then the images signature checking will not be mandatory and no error will be | ||
52 | # raised in case of failure. | ||
53 | # UBOOT_SIGN_IMG_KEYNAME = "dev2" # keys name in keydir (eg. "dev2.crt", "dev2.key") | ||
diff --git a/meta/conf/machine/include/riscv/qemuriscv.inc b/meta/conf/machine/include/riscv/qemuriscv.inc index d01d988eee..6170ce65f2 100644 --- a/meta/conf/machine/include/riscv/qemuriscv.inc +++ b/meta/conf/machine/include/riscv/qemuriscv.inc | |||
@@ -27,6 +27,7 @@ UBOOT_ENTRYPOINT:riscv64 = "0x80200000" | |||
27 | # qemuboot options | 27 | # qemuboot options |
28 | QB_SMP ?= "-smp 4" | 28 | QB_SMP ?= "-smp 4" |
29 | QB_KERNEL_CMDLINE_APPEND = "earlycon=sbi" | 29 | QB_KERNEL_CMDLINE_APPEND = "earlycon=sbi" |
30 | QB_CPU = "-cpu rv64, sv39=true" | ||
30 | QB_MACHINE = "-machine virt" | 31 | QB_MACHINE = "-machine virt" |
31 | QB_DEFAULT_BIOS = "fw_jump.elf" | 32 | QB_DEFAULT_BIOS = "fw_jump.elf" |
32 | QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no" | 33 | QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no" |
diff --git a/meta/conf/toolchain/build-gcc.inc b/meta/conf/toolchain/build-gcc.inc new file mode 100644 index 0000000000..a708bd0389 --- /dev/null +++ b/meta/conf/toolchain/build-gcc.inc | |||
@@ -0,0 +1,15 @@ | |||
1 | BUILD_CC = "${CCACHE}${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}" | ||
2 | BUILD_CXX = "${CCACHE}${BUILD_PREFIX}g++ ${BUILD_CC_ARCH}" | ||
3 | BUILD_FC = "${BUILD_PREFIX}gfortran ${BUILD_CC_ARCH}" | ||
4 | BUILD_CPP = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH} -E" | ||
5 | BUILD_LD = "${BUILD_PREFIX}ld ${BUILD_LD_ARCH}" | ||
6 | BUILD_CCLD = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}" | ||
7 | BUILD_AR = "${BUILD_PREFIX}ar" | ||
8 | BUILD_AS = "${BUILD_PREFIX}as ${BUILD_AS_ARCH}" | ||
9 | BUILD_RANLIB = "${BUILD_PREFIX}ranlib -D" | ||
10 | BUILD_STRIP = "${BUILD_PREFIX}strip" | ||
11 | BUILD_OBJCOPY = "${BUILD_PREFIX}objcopy" | ||
12 | BUILD_OBJDUMP = "${BUILD_PREFIX}objdump" | ||
13 | BUILD_NM = "${BUILD_PREFIX}nm" | ||
14 | BUILD_READELF = "${BUILD_PREFIX}readelf" | ||
15 | |||
diff --git a/meta/conf/toolchain/clang.inc b/meta/conf/toolchain/clang.inc index e69de29bb2..40bfba2fd4 100644 --- a/meta/conf/toolchain/clang.inc +++ b/meta/conf/toolchain/clang.inc | |||
@@ -0,0 +1,26 @@ | |||
1 | CC = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
2 | CXX = "${CCACHE}${HOST_PREFIX}clang++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
3 | FC = "${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
4 | CPP = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} -E" | ||
5 | LD = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', '${HOST_PREFIX}ld.lld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', '${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', d)}" | ||
6 | CCLD = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
7 | RANLIB = "${HOST_PREFIX}llvm-ranlib" | ||
8 | AR = "${HOST_PREFIX}llvm-ar" | ||
9 | AS = "${HOST_PREFIX}as ${HOST_AS_ARCH}" | ||
10 | RANLIB = "${HOST_PREFIX}gcc-ranlib" | ||
11 | STRIP = "${HOST_PREFIX}llvm-strip" | ||
12 | OBJCOPY = "${HOST_PREFIX}llvm-objcopy" | ||
13 | OBJDUMP = "${HOST_PREFIX}llvm-objdump" | ||
14 | STRINGS = "${HOST_PREFIX}llvm-strings" | ||
15 | NM = "${HOST_PREFIX}llvm-nm" | ||
16 | READELF = "${HOST_PREFIX}llvm-readelf" | ||
17 | |||
18 | PREFERRED_PROVIDER_virtual/cross-cc = "${MLPREFIX}clang-cross-${TARGET_ARCH}" | ||
19 | PREFERRED_PROVIDER_virtual/cross-c++ = "${MLPREFIX}clang-cross-${TARGET_ARCH}" | ||
20 | PREFERRED_PROVIDER_virtual/compilerlibs = "gcc-runtime" | ||
21 | PREFERRED_PROVIDER_virtual/cross-cc:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" | ||
22 | PREFERRED_PROVIDER_virtual/cross-c++:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" | ||
23 | |||
24 | PREFERRED_PROVIDER_virtual/nativesdk-cross-cc = "gcc-crosssdk-${SDK_SYS}" | ||
25 | PREFERRED_PROVIDER_virtual/nativesdk-cross-c++ = "gcc-crosssdk-${SDK_SYS}" | ||
26 | PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs = "nativesdk-gcc-runtime" | ||
diff --git a/meta/conf/toolchain/gcc.inc b/meta/conf/toolchain/gcc.inc index c338d26c47..36d33f5d6d 100644 --- a/meta/conf/toolchain/gcc.inc +++ b/meta/conf/toolchain/gcc.inc | |||
@@ -1,4 +1,3 @@ | |||
1 | CCACHE ??= "" | ||
2 | CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | 1 | CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" |
3 | CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | 2 | CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" |
4 | FC = "${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | 3 | FC = "${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" |
@@ -15,18 +14,13 @@ STRINGS = "${HOST_PREFIX}strings" | |||
15 | NM = "${HOST_PREFIX}gcc-nm" | 14 | NM = "${HOST_PREFIX}gcc-nm" |
16 | READELF = "${HOST_PREFIX}readelf" | 15 | READELF = "${HOST_PREFIX}readelf" |
17 | 16 | ||
18 | BUILD_CC = "${CCACHE}${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}" | 17 | PREFERRED_PROVIDER_virtual/cross-cc = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" |
19 | BUILD_CXX = "${CCACHE}${BUILD_PREFIX}g++ ${BUILD_CC_ARCH}" | 18 | PREFERRED_PROVIDER_virtual/cross-c++ = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" |
20 | BUILD_FC = "${BUILD_PREFIX}gfortran ${BUILD_CC_ARCH}" | 19 | PREFERRED_PROVIDER_virtual/compilerlibs = "gcc-runtime" |
21 | BUILD_CPP = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH} -E" | 20 | PREFERRED_PROVIDER_virtual/cross-cc:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" |
22 | BUILD_LD = "${BUILD_PREFIX}ld ${BUILD_LD_ARCH}" | 21 | PREFERRED_PROVIDER_virtual/cross-c++:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" |
23 | BUILD_CCLD = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}" | 22 | |
24 | BUILD_AR = "${BUILD_PREFIX}ar" | 23 | PREFERRED_PROVIDER_virtual/nativesdk-cross-cc = "gcc-crosssdk-${SDK_SYS}" |
25 | BUILD_AS = "${BUILD_PREFIX}as ${BUILD_AS_ARCH}" | 24 | PREFERRED_PROVIDER_virtual/nativesdk-cross-c++ = "gcc-crosssdk-${SDK_SYS}" |
26 | BUILD_RANLIB = "${BUILD_PREFIX}ranlib -D" | 25 | PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs = "nativesdk-gcc-runtime" |
27 | BUILD_STRIP = "${BUILD_PREFIX}strip" | ||
28 | BUILD_OBJCOPY = "${BUILD_PREFIX}objcopy" | ||
29 | BUILD_OBJDUMP = "${BUILD_PREFIX}objdump" | ||
30 | BUILD_NM = "${BUILD_PREFIX}nm" | ||
31 | BUILD_READELF = "${BUILD_PREFIX}readelf" | ||
32 | 26 | ||
diff --git a/meta/files/overlayfs-create-dirs.service.in b/meta/files/overlayfs-create-dirs.service.in index d8d916365a..c8431548d7 100644 --- a/meta/files/overlayfs-create-dirs.service.in +++ b/meta/files/overlayfs-create-dirs.service.in | |||
@@ -1,7 +1,6 @@ | |||
1 | [Unit] | 1 | [Unit] |
2 | Description=Overlayfs directories setup {LOWERDIR} | 2 | Description=Overlayfs directories setup {LOWERDIR} |
3 | Requires={DATA_MOUNT_UNIT} | 3 | RequiresMountsFor={DATA_MOUNT_POINT} |
4 | After={DATA_MOUNT_UNIT} | ||
5 | DefaultDependencies=no | 4 | DefaultDependencies=no |
6 | 5 | ||
7 | [Service] | 6 | [Service] |
diff --git a/meta/lib/oe/classextend.py b/meta/lib/oe/classextend.py index 7dd4bf94e7..8ae5d3b715 100644 --- a/meta/lib/oe/classextend.py +++ b/meta/lib/oe/classextend.py | |||
@@ -32,8 +32,6 @@ class ClassExtender(object): | |||
32 | if name.endswith("-" + self.extname): | 32 | if name.endswith("-" + self.extname): |
33 | name = name.replace("-" + self.extname, "") | 33 | name = name.replace("-" + self.extname, "") |
34 | if name.startswith("virtual/"): | 34 | if name.startswith("virtual/"): |
35 | if "cross-sdk" in name: | ||
36 | return name | ||
37 | # Assume large numbers of dashes means a triplet is present and we don't need to convert | 35 | # Assume large numbers of dashes means a triplet is present and we don't need to convert |
38 | if name.count("-") >= 3 and name.endswith(("-go",)): | 36 | if name.count("-") >= 3 and name.endswith(("-go",)): |
39 | return name | 37 | return name |
diff --git a/meta/lib/oe/sbom30.py b/meta/lib/oe/sbom30.py index 7993e1fbef..f7c4b323d5 100644 --- a/meta/lib/oe/sbom30.py +++ b/meta/lib/oe/sbom30.py | |||
@@ -495,7 +495,7 @@ class ObjectSet(oe.spdx30.SHACLObjectSet): | |||
495 | return [] | 495 | return [] |
496 | 496 | ||
497 | if not to: | 497 | if not to: |
498 | to = [oe.spdx30.Element.NoneElement] | 498 | to = [oe.spdx30.IndividualElement.NoneElement] |
499 | 499 | ||
500 | ret = [] | 500 | ret = [] |
501 | 501 | ||
diff --git a/meta/lib/oe/spdx30.py b/meta/lib/oe/spdx30.py index 5cd2eb45c3..cd97eebd18 100644 --- a/meta/lib/oe/spdx30.py +++ b/meta/lib/oe/spdx30.py | |||
@@ -133,8 +133,9 @@ class DateTimeProp(Property): | |||
133 | if value.utcoffset() is None: | 133 | if value.utcoffset() is None: |
134 | value = value.astimezone() | 134 | value = value.astimezone() |
135 | offset = value.utcoffset() | 135 | offset = value.utcoffset() |
136 | if offset % timedelta(minutes=1): | 136 | seconds = offset % timedelta(minutes=-1 if offset.total_seconds() < 0 else 1) |
137 | offset = offset - (offset % timedelta(minutes=1)) | 137 | if seconds: |
138 | offset = offset - seconds | ||
138 | value = value.replace(tzinfo=timezone(offset)) | 139 | value = value.replace(tzinfo=timezone(offset)) |
139 | value = value.replace(microsecond=0) | 140 | value = value.replace(microsecond=0) |
140 | return value | 141 | return value |
@@ -922,6 +923,12 @@ class SHACLExtensibleObject(object): | |||
922 | return obj | 923 | return obj |
923 | 924 | ||
924 | def _decode_properties(self, decoder, objectset=None): | 925 | def _decode_properties(self, decoder, objectset=None): |
926 | def decode_value(d): | ||
927 | if not d.is_list(): | ||
928 | return d.read_value() | ||
929 | |||
930 | return [decode_value(val_d) for val_d in d.read_list()] | ||
931 | |||
925 | if self.CLOSED: | 932 | if self.CLOSED: |
926 | super()._decode_properties(decoder, objectset=objectset) | 933 | super()._decode_properties(decoder, objectset=objectset) |
927 | return | 934 | return |
@@ -936,7 +943,7 @@ class SHACLExtensibleObject(object): | |||
936 | ) | 943 | ) |
937 | 944 | ||
938 | with decoder.read_property(key) as prop_d: | 945 | with decoder.read_property(key) as prop_d: |
939 | self.__dict__["_obj_data"][key] = prop_d.read_value() | 946 | self.__dict__["_obj_data"][key] = decode_value(prop_d) |
940 | 947 | ||
941 | def _encode_properties(self, encoder, state): | 948 | def _encode_properties(self, encoder, state): |
942 | def encode_value(encoder, v): | 949 | def encode_value(encoder, v): |
@@ -948,6 +955,11 @@ class SHACLExtensibleObject(object): | |||
948 | encoder.write_integer(v) | 955 | encoder.write_integer(v) |
949 | elif isinstance(v, float): | 956 | elif isinstance(v, float): |
950 | encoder.write_float(v) | 957 | encoder.write_float(v) |
958 | elif isinstance(v, list): | ||
959 | with encoder.write_list() as list_s: | ||
960 | for i in v: | ||
961 | with list_s.write_list_item() as item_s: | ||
962 | encode_value(item_s, i) | ||
951 | else: | 963 | else: |
952 | raise TypeError( | 964 | raise TypeError( |
953 | f"Unsupported serialized type {type(v)} with value '{v}'" | 965 | f"Unsupported serialized type {type(v)} with value '{v}'" |
@@ -1197,7 +1209,7 @@ class SHACLObjectSet(object): | |||
1197 | 1209 | ||
1198 | return SHACLObjectSet(new_objects, link=True) | 1210 | return SHACLObjectSet(new_objects, link=True) |
1199 | 1211 | ||
1200 | def encode(self, encoder, force_list=False): | 1212 | def encode(self, encoder, force_list=False, *, key=None): |
1201 | """ | 1213 | """ |
1202 | Serialize a list of objects to a serialization encoder | 1214 | Serialize a list of objects to a serialization encoder |
1203 | 1215 | ||
@@ -1244,7 +1256,7 @@ class SHACLObjectSet(object): | |||
1244 | else: | 1256 | else: |
1245 | objects = list(self.objects) | 1257 | objects = list(self.objects) |
1246 | 1258 | ||
1247 | objects.sort() | 1259 | objects.sort(key=key) |
1248 | 1260 | ||
1249 | if use_list: | 1261 | if use_list: |
1250 | # Ensure top level objects are only written in the top level graph | 1262 | # Ensure top level objects are only written in the top level graph |
@@ -1265,7 +1277,7 @@ class SHACLObjectSet(object): | |||
1265 | with list_s.write_list_item() as item_s: | 1277 | with list_s.write_list_item() as item_s: |
1266 | o.encode(item_s, state) | 1278 | o.encode(item_s, state) |
1267 | 1279 | ||
1268 | else: | 1280 | elif objects: |
1269 | objects[0].encode(encoder, state) | 1281 | objects[0].encode(encoder, state) |
1270 | 1282 | ||
1271 | def decode(self, decoder): | 1283 | def decode(self, decoder): |
@@ -1410,6 +1422,15 @@ class Decoder(ABC): | |||
1410 | pass | 1422 | pass |
1411 | 1423 | ||
1412 | @abstractmethod | 1424 | @abstractmethod |
1425 | def is_list(self): | ||
1426 | """ | ||
1427 | Checks if the next item is a list | ||
1428 | |||
1429 | Returns True if the next item is a list, or False if it is a scalar | ||
1430 | """ | ||
1431 | pass | ||
1432 | |||
1433 | @abstractmethod | ||
1413 | def read_object(self): | 1434 | def read_object(self): |
1414 | """ | 1435 | """ |
1415 | Consume next item as an object | 1436 | Consume next item as an object |
@@ -1507,12 +1528,15 @@ class JSONLDDecoder(Decoder): | |||
1507 | return None | 1528 | return None |
1508 | 1529 | ||
1509 | def read_list(self): | 1530 | def read_list(self): |
1510 | if isinstance(self.data, (list, tuple, set)): | 1531 | if self.is_list(): |
1511 | for v in self.data: | 1532 | for v in self.data: |
1512 | yield self.__class__(v) | 1533 | yield self.__class__(v) |
1513 | else: | 1534 | else: |
1514 | yield self | 1535 | yield self |
1515 | 1536 | ||
1537 | def is_list(self): | ||
1538 | return isinstance(self.data, (list, tuple, set)) | ||
1539 | |||
1516 | def __get_value(self, *keys): | 1540 | def __get_value(self, *keys): |
1517 | for k in keys: | 1541 | for k in keys: |
1518 | if k and k in self.data: | 1542 | if k and k in self.data: |
@@ -1962,18 +1986,11 @@ CONTEXT_URLS = [ | |||
1962 | 1986 | ||
1963 | 1987 | ||
1964 | # CLASSES | 1988 | # CLASSES |
1965 | @register("http://spdx.invalid./AbstractClass", abstract=False) | ||
1966 | class http_spdx_invalid_AbstractClass(SHACLObject): | ||
1967 | NODE_KIND = NodeKind.BlankNodeOrIRI | ||
1968 | NAMED_INDIVIDUALS = { | ||
1969 | } | ||
1970 | |||
1971 | |||
1972 | # A class for describing the energy consumption incurred by an AI model in | 1989 | # A class for describing the energy consumption incurred by an AI model in |
1973 | # different stages of its lifecycle. | 1990 | # different stages of its lifecycle. |
1974 | @register("https://spdx.org/rdf/3.0.1/terms/AI/EnergyConsumption", compact_type="ai_EnergyConsumption", abstract=False) | 1991 | @register("https://spdx.org/rdf/3.0.1/terms/AI/EnergyConsumption", compact_type="ai_EnergyConsumption", abstract=False) |
1975 | class ai_EnergyConsumption(SHACLObject): | 1992 | class ai_EnergyConsumption(SHACLObject): |
1976 | NODE_KIND = NodeKind.BlankNode | 1993 | NODE_KIND = NodeKind.BlankNodeOrIRI |
1977 | NAMED_INDIVIDUALS = { | 1994 | NAMED_INDIVIDUALS = { |
1978 | } | 1995 | } |
1979 | 1996 | ||
@@ -2010,7 +2027,7 @@ class ai_EnergyConsumption(SHACLObject): | |||
2010 | # used for measurement. | 2027 | # used for measurement. |
2011 | @register("https://spdx.org/rdf/3.0.1/terms/AI/EnergyConsumptionDescription", compact_type="ai_EnergyConsumptionDescription", abstract=False) | 2028 | @register("https://spdx.org/rdf/3.0.1/terms/AI/EnergyConsumptionDescription", compact_type="ai_EnergyConsumptionDescription", abstract=False) |
2012 | class ai_EnergyConsumptionDescription(SHACLObject): | 2029 | class ai_EnergyConsumptionDescription(SHACLObject): |
2013 | NODE_KIND = NodeKind.BlankNode | 2030 | NODE_KIND = NodeKind.BlankNodeOrIRI |
2014 | NAMED_INDIVIDUALS = { | 2031 | NAMED_INDIVIDUALS = { |
2015 | } | 2032 | } |
2016 | 2033 | ||
@@ -2093,7 +2110,7 @@ class AnnotationType(SHACLObject): | |||
2093 | # Provides information about the creation of the Element. | 2110 | # Provides information about the creation of the Element. |
2094 | @register("https://spdx.org/rdf/3.0.1/terms/Core/CreationInfo", compact_type="CreationInfo", abstract=False) | 2111 | @register("https://spdx.org/rdf/3.0.1/terms/Core/CreationInfo", compact_type="CreationInfo", abstract=False) |
2095 | class CreationInfo(SHACLObject): | 2112 | class CreationInfo(SHACLObject): |
2096 | NODE_KIND = NodeKind.BlankNode | 2113 | NODE_KIND = NodeKind.BlankNodeOrIRI |
2097 | NAMED_INDIVIDUALS = { | 2114 | NAMED_INDIVIDUALS = { |
2098 | } | 2115 | } |
2099 | 2116 | ||
@@ -2147,7 +2164,7 @@ class CreationInfo(SHACLObject): | |||
2147 | # A key with an associated value. | 2164 | # A key with an associated value. |
2148 | @register("https://spdx.org/rdf/3.0.1/terms/Core/DictionaryEntry", compact_type="DictionaryEntry", abstract=False) | 2165 | @register("https://spdx.org/rdf/3.0.1/terms/Core/DictionaryEntry", compact_type="DictionaryEntry", abstract=False) |
2149 | class DictionaryEntry(SHACLObject): | 2166 | class DictionaryEntry(SHACLObject): |
2150 | NODE_KIND = NodeKind.BlankNode | 2167 | NODE_KIND = NodeKind.BlankNodeOrIRI |
2151 | NAMED_INDIVIDUALS = { | 2168 | NAMED_INDIVIDUALS = { |
2152 | } | 2169 | } |
2153 | 2170 | ||
@@ -2177,15 +2194,7 @@ class Element(SHACLObject): | |||
2177 | NODE_KIND = NodeKind.IRI | 2194 | NODE_KIND = NodeKind.IRI |
2178 | ID_ALIAS = "spdxId" | 2195 | ID_ALIAS = "spdxId" |
2179 | NAMED_INDIVIDUALS = { | 2196 | NAMED_INDIVIDUALS = { |
2180 | "NoAssertionElement": "https://spdx.org/rdf/3.0.1/terms/Core/NoAssertionElement", | ||
2181 | "NoneElement": "https://spdx.org/rdf/3.0.1/terms/Core/NoneElement", | ||
2182 | } | 2197 | } |
2183 | # An Individual Value for Element representing a set of Elements of unknown | ||
2184 | # identify or cardinality (number). | ||
2185 | NoAssertionElement = "https://spdx.org/rdf/3.0.1/terms/Core/NoAssertionElement" | ||
2186 | # An Individual Value for Element representing a set of Elements with | ||
2187 | # cardinality (number/count) of zero. | ||
2188 | NoneElement = "https://spdx.org/rdf/3.0.1/terms/Core/NoneElement" | ||
2189 | 2198 | ||
2190 | @classmethod | 2199 | @classmethod |
2191 | def _register_props(cls): | 2200 | def _register_props(cls): |
@@ -2276,10 +2285,10 @@ class ElementCollection(Element): | |||
2276 | "element", | 2285 | "element", |
2277 | ListProp(ObjectProp(Element, False, context=[ | 2286 | ListProp(ObjectProp(Element, False, context=[ |
2278 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoneElement", "NoneElement"), | 2287 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoneElement", "NoneElement"), |
2288 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoAssertionLicense", "expandedlicensing_NoAssertionLicense"), | ||
2289 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoneLicense", "expandedlicensing_NoneLicense"), | ||
2279 | ("https://spdx.org/rdf/3.0.1/terms/Core/SpdxOrganization", "SpdxOrganization"), | 2290 | ("https://spdx.org/rdf/3.0.1/terms/Core/SpdxOrganization", "SpdxOrganization"), |
2280 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoAssertionElement", "NoAssertionElement"), | 2291 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoAssertionElement", "NoAssertionElement"), |
2281 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoneLicense", "expandedlicensing_NoneLicense"), | ||
2282 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoAssertionLicense", "expandedlicensing_NoAssertionLicense"), | ||
2283 | ],)), | 2292 | ],)), |
2284 | iri="https://spdx.org/rdf/3.0.1/terms/Core/element", | 2293 | iri="https://spdx.org/rdf/3.0.1/terms/Core/element", |
2285 | compact="element", | 2294 | compact="element", |
@@ -2308,10 +2317,10 @@ class ElementCollection(Element): | |||
2308 | "rootElement", | 2317 | "rootElement", |
2309 | ListProp(ObjectProp(Element, False, context=[ | 2318 | ListProp(ObjectProp(Element, False, context=[ |
2310 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoneElement", "NoneElement"), | 2319 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoneElement", "NoneElement"), |
2320 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoAssertionLicense", "expandedlicensing_NoAssertionLicense"), | ||
2321 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoneLicense", "expandedlicensing_NoneLicense"), | ||
2311 | ("https://spdx.org/rdf/3.0.1/terms/Core/SpdxOrganization", "SpdxOrganization"), | 2322 | ("https://spdx.org/rdf/3.0.1/terms/Core/SpdxOrganization", "SpdxOrganization"), |
2312 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoAssertionElement", "NoAssertionElement"), | 2323 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoAssertionElement", "NoAssertionElement"), |
2313 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoneLicense", "expandedlicensing_NoneLicense"), | ||
2314 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoAssertionLicense", "expandedlicensing_NoAssertionLicense"), | ||
2315 | ],)), | 2324 | ],)), |
2316 | iri="https://spdx.org/rdf/3.0.1/terms/Core/rootElement", | 2325 | iri="https://spdx.org/rdf/3.0.1/terms/Core/rootElement", |
2317 | compact="rootElement", | 2326 | compact="rootElement", |
@@ -2321,7 +2330,7 @@ class ElementCollection(Element): | |||
2321 | # A reference to a resource identifier defined outside the scope of SPDX-3.0 content that uniquely identifies an Element. | 2330 | # A reference to a resource identifier defined outside the scope of SPDX-3.0 content that uniquely identifies an Element. |
2322 | @register("https://spdx.org/rdf/3.0.1/terms/Core/ExternalIdentifier", compact_type="ExternalIdentifier", abstract=False) | 2331 | @register("https://spdx.org/rdf/3.0.1/terms/Core/ExternalIdentifier", compact_type="ExternalIdentifier", abstract=False) |
2323 | class ExternalIdentifier(SHACLObject): | 2332 | class ExternalIdentifier(SHACLObject): |
2324 | NODE_KIND = NodeKind.BlankNode | 2333 | NODE_KIND = NodeKind.BlankNodeOrIRI |
2325 | NAMED_INDIVIDUALS = { | 2334 | NAMED_INDIVIDUALS = { |
2326 | } | 2335 | } |
2327 | 2336 | ||
@@ -2425,7 +2434,7 @@ class ExternalIdentifierType(SHACLObject): | |||
2425 | # external to that SpdxDocument. | 2434 | # external to that SpdxDocument. |
2426 | @register("https://spdx.org/rdf/3.0.1/terms/Core/ExternalMap", compact_type="ExternalMap", abstract=False) | 2435 | @register("https://spdx.org/rdf/3.0.1/terms/Core/ExternalMap", compact_type="ExternalMap", abstract=False) |
2427 | class ExternalMap(SHACLObject): | 2436 | class ExternalMap(SHACLObject): |
2428 | NODE_KIND = NodeKind.BlankNode | 2437 | NODE_KIND = NodeKind.BlankNodeOrIRI |
2429 | NAMED_INDIVIDUALS = { | 2438 | NAMED_INDIVIDUALS = { |
2430 | } | 2439 | } |
2431 | 2440 | ||
@@ -2469,7 +2478,7 @@ class ExternalMap(SHACLObject): | |||
2469 | # A reference to a resource outside the scope of SPDX-3.0 content related to an Element. | 2478 | # A reference to a resource outside the scope of SPDX-3.0 content related to an Element. |
2470 | @register("https://spdx.org/rdf/3.0.1/terms/Core/ExternalRef", compact_type="ExternalRef", abstract=False) | 2479 | @register("https://spdx.org/rdf/3.0.1/terms/Core/ExternalRef", compact_type="ExternalRef", abstract=False) |
2471 | class ExternalRef(SHACLObject): | 2480 | class ExternalRef(SHACLObject): |
2472 | NODE_KIND = NodeKind.BlankNode | 2481 | NODE_KIND = NodeKind.BlankNodeOrIRI |
2473 | NAMED_INDIVIDUALS = { | 2482 | NAMED_INDIVIDUALS = { |
2474 | } | 2483 | } |
2475 | 2484 | ||
@@ -2774,10 +2783,28 @@ class HashAlgorithm(SHACLObject): | |||
2774 | sha512 = "https://spdx.org/rdf/3.0.1/terms/Core/HashAlgorithm/sha512" | 2783 | sha512 = "https://spdx.org/rdf/3.0.1/terms/Core/HashAlgorithm/sha512" |
2775 | 2784 | ||
2776 | 2785 | ||
2786 | # A concrete subclass of Element used by Individuals in the | ||
2787 | # Core profile. | ||
2788 | @register("https://spdx.org/rdf/3.0.1/terms/Core/IndividualElement", compact_type="IndividualElement", abstract=False) | ||
2789 | class IndividualElement(Element): | ||
2790 | NODE_KIND = NodeKind.IRI | ||
2791 | ID_ALIAS = "spdxId" | ||
2792 | NAMED_INDIVIDUALS = { | ||
2793 | "NoAssertionElement": "https://spdx.org/rdf/3.0.1/terms/Core/NoAssertionElement", | ||
2794 | "NoneElement": "https://spdx.org/rdf/3.0.1/terms/Core/NoneElement", | ||
2795 | } | ||
2796 | # An Individual Value for Element representing a set of Elements of unknown | ||
2797 | # identify or cardinality (number). | ||
2798 | NoAssertionElement = "https://spdx.org/rdf/3.0.1/terms/Core/NoAssertionElement" | ||
2799 | # An Individual Value for Element representing a set of Elements with | ||
2800 | # cardinality (number/count) of zero. | ||
2801 | NoneElement = "https://spdx.org/rdf/3.0.1/terms/Core/NoneElement" | ||
2802 | |||
2803 | |||
2777 | # Provides an independently reproducible mechanism that permits verification of a specific Element. | 2804 | # Provides an independently reproducible mechanism that permits verification of a specific Element. |
2778 | @register("https://spdx.org/rdf/3.0.1/terms/Core/IntegrityMethod", compact_type="IntegrityMethod", abstract=True) | 2805 | @register("https://spdx.org/rdf/3.0.1/terms/Core/IntegrityMethod", compact_type="IntegrityMethod", abstract=True) |
2779 | class IntegrityMethod(SHACLObject): | 2806 | class IntegrityMethod(SHACLObject): |
2780 | NODE_KIND = NodeKind.BlankNode | 2807 | NODE_KIND = NodeKind.BlankNodeOrIRI |
2781 | NAMED_INDIVIDUALS = { | 2808 | NAMED_INDIVIDUALS = { |
2782 | } | 2809 | } |
2783 | 2810 | ||
@@ -2823,7 +2850,7 @@ class LifecycleScopeType(SHACLObject): | |||
2823 | # A mapping between prefixes and namespace partial URIs. | 2850 | # A mapping between prefixes and namespace partial URIs. |
2824 | @register("https://spdx.org/rdf/3.0.1/terms/Core/NamespaceMap", compact_type="NamespaceMap", abstract=False) | 2851 | @register("https://spdx.org/rdf/3.0.1/terms/Core/NamespaceMap", compact_type="NamespaceMap", abstract=False) |
2825 | class NamespaceMap(SHACLObject): | 2852 | class NamespaceMap(SHACLObject): |
2826 | NODE_KIND = NodeKind.BlankNode | 2853 | NODE_KIND = NodeKind.BlankNodeOrIRI |
2827 | NAMED_INDIVIDUALS = { | 2854 | NAMED_INDIVIDUALS = { |
2828 | } | 2855 | } |
2829 | 2856 | ||
@@ -2852,7 +2879,7 @@ class NamespaceMap(SHACLObject): | |||
2852 | # An SPDX version 2.X compatible verification method for software packages. | 2879 | # An SPDX version 2.X compatible verification method for software packages. |
2853 | @register("https://spdx.org/rdf/3.0.1/terms/Core/PackageVerificationCode", compact_type="PackageVerificationCode", abstract=False) | 2880 | @register("https://spdx.org/rdf/3.0.1/terms/Core/PackageVerificationCode", compact_type="PackageVerificationCode", abstract=False) |
2854 | class PackageVerificationCode(IntegrityMethod): | 2881 | class PackageVerificationCode(IntegrityMethod): |
2855 | NODE_KIND = NodeKind.BlankNode | 2882 | NODE_KIND = NodeKind.BlankNodeOrIRI |
2856 | NAMED_INDIVIDUALS = { | 2883 | NAMED_INDIVIDUALS = { |
2857 | } | 2884 | } |
2858 | 2885 | ||
@@ -2911,7 +2938,7 @@ class PackageVerificationCode(IntegrityMethod): | |||
2911 | # A tuple of two positive integers that define a range. | 2938 | # A tuple of two positive integers that define a range. |
2912 | @register("https://spdx.org/rdf/3.0.1/terms/Core/PositiveIntegerRange", compact_type="PositiveIntegerRange", abstract=False) | 2939 | @register("https://spdx.org/rdf/3.0.1/terms/Core/PositiveIntegerRange", compact_type="PositiveIntegerRange", abstract=False) |
2913 | class PositiveIntegerRange(SHACLObject): | 2940 | class PositiveIntegerRange(SHACLObject): |
2914 | NODE_KIND = NodeKind.BlankNode | 2941 | NODE_KIND = NodeKind.BlankNodeOrIRI |
2915 | NAMED_INDIVIDUALS = { | 2942 | NAMED_INDIVIDUALS = { |
2916 | } | 2943 | } |
2917 | 2944 | ||
@@ -2977,7 +3004,7 @@ class ProfileIdentifierType(SHACLObject): | |||
2977 | core = "https://spdx.org/rdf/3.0.1/terms/Core/ProfileIdentifierType/core" | 3004 | core = "https://spdx.org/rdf/3.0.1/terms/Core/ProfileIdentifierType/core" |
2978 | # the element follows the Dataset profile specification | 3005 | # the element follows the Dataset profile specification |
2979 | dataset = "https://spdx.org/rdf/3.0.1/terms/Core/ProfileIdentifierType/dataset" | 3006 | dataset = "https://spdx.org/rdf/3.0.1/terms/Core/ProfileIdentifierType/dataset" |
2980 | # the element follows the expanded Licensing profile specification | 3007 | # the element follows the ExpandedLicensing profile specification |
2981 | expandedLicensing = "https://spdx.org/rdf/3.0.1/terms/Core/ProfileIdentifierType/expandedLicensing" | 3008 | expandedLicensing = "https://spdx.org/rdf/3.0.1/terms/Core/ProfileIdentifierType/expandedLicensing" |
2982 | # the element follows the Extension profile specification | 3009 | # the element follows the Extension profile specification |
2983 | extension = "https://spdx.org/rdf/3.0.1/terms/Core/ProfileIdentifierType/extension" | 3010 | extension = "https://spdx.org/rdf/3.0.1/terms/Core/ProfileIdentifierType/extension" |
@@ -2985,7 +3012,7 @@ class ProfileIdentifierType(SHACLObject): | |||
2985 | lite = "https://spdx.org/rdf/3.0.1/terms/Core/ProfileIdentifierType/lite" | 3012 | lite = "https://spdx.org/rdf/3.0.1/terms/Core/ProfileIdentifierType/lite" |
2986 | # the element follows the Security profile specification | 3013 | # the element follows the Security profile specification |
2987 | security = "https://spdx.org/rdf/3.0.1/terms/Core/ProfileIdentifierType/security" | 3014 | security = "https://spdx.org/rdf/3.0.1/terms/Core/ProfileIdentifierType/security" |
2988 | # the element follows the simple Licensing profile specification | 3015 | # the element follows the SimpleLicensing profile specification |
2989 | simpleLicensing = "https://spdx.org/rdf/3.0.1/terms/Core/ProfileIdentifierType/simpleLicensing" | 3016 | simpleLicensing = "https://spdx.org/rdf/3.0.1/terms/Core/ProfileIdentifierType/simpleLicensing" |
2990 | # the element follows the Software profile specification | 3017 | # the element follows the Software profile specification |
2991 | software = "https://spdx.org/rdf/3.0.1/terms/Core/ProfileIdentifierType/software" | 3018 | software = "https://spdx.org/rdf/3.0.1/terms/Core/ProfileIdentifierType/software" |
@@ -3025,10 +3052,10 @@ class Relationship(Element): | |||
3025 | "from_", | 3052 | "from_", |
3026 | ObjectProp(Element, True, context=[ | 3053 | ObjectProp(Element, True, context=[ |
3027 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoneElement", "NoneElement"), | 3054 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoneElement", "NoneElement"), |
3055 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoAssertionLicense", "expandedlicensing_NoAssertionLicense"), | ||
3056 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoneLicense", "expandedlicensing_NoneLicense"), | ||
3028 | ("https://spdx.org/rdf/3.0.1/terms/Core/SpdxOrganization", "SpdxOrganization"), | 3057 | ("https://spdx.org/rdf/3.0.1/terms/Core/SpdxOrganization", "SpdxOrganization"), |
3029 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoAssertionElement", "NoAssertionElement"), | 3058 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoAssertionElement", "NoAssertionElement"), |
3030 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoneLicense", "expandedlicensing_NoneLicense"), | ||
3031 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoAssertionLicense", "expandedlicensing_NoAssertionLicense"), | ||
3032 | ],), | 3059 | ],), |
3033 | iri="https://spdx.org/rdf/3.0.1/terms/Core/from", | 3060 | iri="https://spdx.org/rdf/3.0.1/terms/Core/from", |
3034 | min_count=1, | 3061 | min_count=1, |
@@ -3114,10 +3141,10 @@ class Relationship(Element): | |||
3114 | "to", | 3141 | "to", |
3115 | ListProp(ObjectProp(Element, False, context=[ | 3142 | ListProp(ObjectProp(Element, False, context=[ |
3116 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoneElement", "NoneElement"), | 3143 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoneElement", "NoneElement"), |
3144 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoAssertionLicense", "expandedlicensing_NoAssertionLicense"), | ||
3145 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoneLicense", "expandedlicensing_NoneLicense"), | ||
3117 | ("https://spdx.org/rdf/3.0.1/terms/Core/SpdxOrganization", "SpdxOrganization"), | 3146 | ("https://spdx.org/rdf/3.0.1/terms/Core/SpdxOrganization", "SpdxOrganization"), |
3118 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoAssertionElement", "NoAssertionElement"), | 3147 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoAssertionElement", "NoAssertionElement"), |
3119 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoneLicense", "expandedlicensing_NoneLicense"), | ||
3120 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoAssertionLicense", "expandedlicensing_NoAssertionLicense"), | ||
3121 | ],)), | 3148 | ],)), |
3122 | iri="https://spdx.org/rdf/3.0.1/terms/Core/to", | 3149 | iri="https://spdx.org/rdf/3.0.1/terms/Core/to", |
3123 | min_count=1, | 3150 | min_count=1, |
@@ -3343,8 +3370,8 @@ class SpdxDocument(ElementCollection): | |||
3343 | cls._add_property( | 3370 | cls._add_property( |
3344 | "dataLicense", | 3371 | "dataLicense", |
3345 | ObjectProp(simplelicensing_AnyLicenseInfo, False, context=[ | 3372 | ObjectProp(simplelicensing_AnyLicenseInfo, False, context=[ |
3346 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoneLicense", "expandedlicensing_NoneLicense"), | ||
3347 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoAssertionLicense", "expandedlicensing_NoAssertionLicense"), | 3373 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoAssertionLicense", "expandedlicensing_NoAssertionLicense"), |
3374 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoneLicense", "expandedlicensing_NoneLicense"), | ||
3348 | ],), | 3375 | ],), |
3349 | iri="https://spdx.org/rdf/3.0.1/terms/Core/dataLicense", | 3376 | iri="https://spdx.org/rdf/3.0.1/terms/Core/dataLicense", |
3350 | compact="dataLicense", | 3377 | compact="dataLicense", |
@@ -3587,7 +3614,7 @@ class expandedlicensing_ListedLicenseException(expandedlicensing_LicenseAddition | |||
3587 | # A property name with an associated value. | 3614 | # A property name with an associated value. |
3588 | @register("https://spdx.org/rdf/3.0.1/terms/Extension/CdxPropertyEntry", compact_type="extension_CdxPropertyEntry", abstract=False) | 3615 | @register("https://spdx.org/rdf/3.0.1/terms/Extension/CdxPropertyEntry", compact_type="extension_CdxPropertyEntry", abstract=False) |
3589 | class extension_CdxPropertyEntry(SHACLObject): | 3616 | class extension_CdxPropertyEntry(SHACLObject): |
3590 | NODE_KIND = NodeKind.BlankNode | 3617 | NODE_KIND = NodeKind.BlankNodeOrIRI |
3591 | NAMED_INDIVIDUALS = { | 3618 | NAMED_INDIVIDUALS = { |
3592 | } | 3619 | } |
3593 | 3620 | ||
@@ -3614,7 +3641,7 @@ class extension_CdxPropertyEntry(SHACLObject): | |||
3614 | # A characterization of some aspect of an Element that is associated with the Element in a generalized fashion. | 3641 | # A characterization of some aspect of an Element that is associated with the Element in a generalized fashion. |
3615 | @register("https://spdx.org/rdf/3.0.1/terms/Extension/Extension", compact_type="extension_Extension", abstract=True) | 3642 | @register("https://spdx.org/rdf/3.0.1/terms/Extension/Extension", compact_type="extension_Extension", abstract=True) |
3616 | class extension_Extension(SHACLExtensibleObject, SHACLObject): | 3643 | class extension_Extension(SHACLExtensibleObject, SHACLObject): |
3617 | NODE_KIND = NodeKind.BlankNode | 3644 | NODE_KIND = NodeKind.BlankNodeOrIRI |
3618 | NAMED_INDIVIDUALS = { | 3645 | NAMED_INDIVIDUALS = { |
3619 | } | 3646 | } |
3620 | 3647 | ||
@@ -3724,13 +3751,7 @@ class security_VulnAssessmentRelationship(Relationship): | |||
3724 | # found. | 3751 | # found. |
3725 | cls._add_property( | 3752 | cls._add_property( |
3726 | "security_assessedElement", | 3753 | "security_assessedElement", |
3727 | ObjectProp(Element, False, context=[ | 3754 | ObjectProp(software_SoftwareArtifact, False), |
3728 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoneElement", "NoneElement"), | ||
3729 | ("https://spdx.org/rdf/3.0.1/terms/Core/SpdxOrganization", "SpdxOrganization"), | ||
3730 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoAssertionElement", "NoAssertionElement"), | ||
3731 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoneLicense", "expandedlicensing_NoneLicense"), | ||
3732 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoAssertionLicense", "expandedlicensing_NoAssertionLicense"), | ||
3733 | ],), | ||
3734 | iri="https://spdx.org/rdf/3.0.1/terms/Security/assessedElement", | 3755 | iri="https://spdx.org/rdf/3.0.1/terms/Security/assessedElement", |
3735 | compact="security_assessedElement", | 3756 | compact="security_assessedElement", |
3736 | ) | 3757 | ) |
@@ -3826,7 +3847,7 @@ class simplelicensing_SimpleLicensingText(Element): | |||
3826 | # A canonical, unique, immutable identifier | 3847 | # A canonical, unique, immutable identifier |
3827 | @register("https://spdx.org/rdf/3.0.1/terms/Software/ContentIdentifier", compact_type="software_ContentIdentifier", abstract=False) | 3848 | @register("https://spdx.org/rdf/3.0.1/terms/Software/ContentIdentifier", compact_type="software_ContentIdentifier", abstract=False) |
3828 | class software_ContentIdentifier(IntegrityMethod): | 3849 | class software_ContentIdentifier(IntegrityMethod): |
3829 | NODE_KIND = NodeKind.BlankNode | 3850 | NODE_KIND = NodeKind.BlankNodeOrIRI |
3830 | NAMED_INDIVIDUALS = { | 3851 | NAMED_INDIVIDUALS = { |
3831 | } | 3852 | } |
3832 | 3853 | ||
@@ -4134,10 +4155,10 @@ class Annotation(Element): | |||
4134 | "subject", | 4155 | "subject", |
4135 | ObjectProp(Element, True, context=[ | 4156 | ObjectProp(Element, True, context=[ |
4136 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoneElement", "NoneElement"), | 4157 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoneElement", "NoneElement"), |
4158 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoAssertionLicense", "expandedlicensing_NoAssertionLicense"), | ||
4159 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoneLicense", "expandedlicensing_NoneLicense"), | ||
4137 | ("https://spdx.org/rdf/3.0.1/terms/Core/SpdxOrganization", "SpdxOrganization"), | 4160 | ("https://spdx.org/rdf/3.0.1/terms/Core/SpdxOrganization", "SpdxOrganization"), |
4138 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoAssertionElement", "NoAssertionElement"), | 4161 | ("https://spdx.org/rdf/3.0.1/terms/Core/NoAssertionElement", "NoAssertionElement"), |
4139 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoneLicense", "expandedlicensing_NoneLicense"), | ||
4140 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoAssertionLicense", "expandedlicensing_NoAssertionLicense"), | ||
4141 | ],), | 4162 | ],), |
4142 | iri="https://spdx.org/rdf/3.0.1/terms/Core/subject", | 4163 | iri="https://spdx.org/rdf/3.0.1/terms/Core/subject", |
4143 | min_count=1, | 4164 | min_count=1, |
@@ -4245,7 +4266,7 @@ class Bundle(ElementCollection): | |||
4245 | # A mathematically calculated representation of a grouping of data. | 4266 | # A mathematically calculated representation of a grouping of data. |
4246 | @register("https://spdx.org/rdf/3.0.1/terms/Core/Hash", compact_type="Hash", abstract=False) | 4267 | @register("https://spdx.org/rdf/3.0.1/terms/Core/Hash", compact_type="Hash", abstract=False) |
4247 | class Hash(IntegrityMethod): | 4268 | class Hash(IntegrityMethod): |
4248 | NODE_KIND = NodeKind.BlankNode | 4269 | NODE_KIND = NodeKind.BlankNodeOrIRI |
4249 | NAMED_INDIVIDUALS = { | 4270 | NAMED_INDIVIDUALS = { |
4250 | } | 4271 | } |
4251 | 4272 | ||
@@ -4366,8 +4387,8 @@ class expandedlicensing_ConjunctiveLicenseSet(simplelicensing_AnyLicenseInfo): | |||
4366 | cls._add_property( | 4387 | cls._add_property( |
4367 | "expandedlicensing_member", | 4388 | "expandedlicensing_member", |
4368 | ListProp(ObjectProp(simplelicensing_AnyLicenseInfo, False, context=[ | 4389 | ListProp(ObjectProp(simplelicensing_AnyLicenseInfo, False, context=[ |
4369 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoneLicense", "expandedlicensing_NoneLicense"), | ||
4370 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoAssertionLicense", "expandedlicensing_NoAssertionLicense"), | 4390 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoAssertionLicense", "expandedlicensing_NoAssertionLicense"), |
4391 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoneLicense", "expandedlicensing_NoneLicense"), | ||
4371 | ],)), | 4392 | ],)), |
4372 | iri="https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/member", | 4393 | iri="https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/member", |
4373 | min_count=2, | 4394 | min_count=2, |
@@ -4400,8 +4421,8 @@ class expandedlicensing_DisjunctiveLicenseSet(simplelicensing_AnyLicenseInfo): | |||
4400 | cls._add_property( | 4421 | cls._add_property( |
4401 | "expandedlicensing_member", | 4422 | "expandedlicensing_member", |
4402 | ListProp(ObjectProp(simplelicensing_AnyLicenseInfo, False, context=[ | 4423 | ListProp(ObjectProp(simplelicensing_AnyLicenseInfo, False, context=[ |
4403 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoneLicense", "expandedlicensing_NoneLicense"), | ||
4404 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoAssertionLicense", "expandedlicensing_NoAssertionLicense"), | 4424 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoAssertionLicense", "expandedlicensing_NoAssertionLicense"), |
4425 | ("https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/NoneLicense", "expandedlicensing_NoneLicense"), | ||
4405 | ],)), | 4426 | ],)), |
4406 | iri="https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/member", | 4427 | iri="https://spdx.org/rdf/3.0.1/terms/ExpandedLicensing/member", |
4407 | min_count=2, | 4428 | min_count=2, |
@@ -4603,7 +4624,7 @@ class expandedlicensing_WithAdditionOperator(simplelicensing_AnyLicenseInfo): | |||
4603 | # A type of extension consisting of a list of name value pairs. | 4624 | # A type of extension consisting of a list of name value pairs. |
4604 | @register("https://spdx.org/rdf/3.0.1/terms/Extension/CdxPropertiesExtension", compact_type="extension_CdxPropertiesExtension", abstract=False) | 4625 | @register("https://spdx.org/rdf/3.0.1/terms/Extension/CdxPropertiesExtension", compact_type="extension_CdxPropertiesExtension", abstract=False) |
4605 | class extension_CdxPropertiesExtension(extension_Extension): | 4626 | class extension_CdxPropertiesExtension(extension_Extension): |
4606 | NODE_KIND = NodeKind.BlankNode | 4627 | NODE_KIND = NodeKind.BlankNodeOrIRI |
4607 | NAMED_INDIVIDUALS = { | 4628 | NAMED_INDIVIDUALS = { |
4608 | } | 4629 | } |
4609 | 4630 | ||
@@ -4831,7 +4852,7 @@ class security_SsvcVulnAssessmentRelationship(security_VulnAssessmentRelationshi | |||
4831 | ) | 4852 | ) |
4832 | 4853 | ||
4833 | 4854 | ||
4834 | # Asbtract ancestor class for all VEX relationships | 4855 | # Abstract ancestor class for all VEX relationships |
4835 | @register("https://spdx.org/rdf/3.0.1/terms/Security/VexVulnAssessmentRelationship", compact_type="security_VexVulnAssessmentRelationship", abstract=True) | 4856 | @register("https://spdx.org/rdf/3.0.1/terms/Security/VexVulnAssessmentRelationship", compact_type="security_VexVulnAssessmentRelationship", abstract=True) |
4836 | class security_VexVulnAssessmentRelationship(security_VulnAssessmentRelationship): | 4857 | class security_VexVulnAssessmentRelationship(security_VulnAssessmentRelationship): |
4837 | NODE_KIND = NodeKind.IRI | 4858 | NODE_KIND = NodeKind.IRI |
@@ -5040,13 +5061,14 @@ class security_VexAffectedVulnAssessmentRelationship(security_VexVulnAssessmentR | |||
5040 | "security_actionStatement", | 5061 | "security_actionStatement", |
5041 | StringProp(), | 5062 | StringProp(), |
5042 | iri="https://spdx.org/rdf/3.0.1/terms/Security/actionStatement", | 5063 | iri="https://spdx.org/rdf/3.0.1/terms/Security/actionStatement", |
5064 | min_count=1, | ||
5043 | compact="security_actionStatement", | 5065 | compact="security_actionStatement", |
5044 | ) | 5066 | ) |
5045 | # Records the time when a recommended action was communicated in a VEX statement | 5067 | # Records the time when a recommended action was communicated in a VEX statement |
5046 | # to mitigate a vulnerability. | 5068 | # to mitigate a vulnerability. |
5047 | cls._add_property( | 5069 | cls._add_property( |
5048 | "security_actionStatementTime", | 5070 | "security_actionStatementTime", |
5049 | ListProp(DateTimeStampProp(pattern=r"^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\dZ$",)), | 5071 | DateTimeStampProp(pattern=r"^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\dZ$",), |
5050 | iri="https://spdx.org/rdf/3.0.1/terms/Security/actionStatementTime", | 5072 | iri="https://spdx.org/rdf/3.0.1/terms/Security/actionStatementTime", |
5051 | compact="security_actionStatementTime", | 5073 | compact="security_actionStatementTime", |
5052 | ) | 5074 | ) |
diff --git a/meta/lib/oe/spdx30_tasks.py b/meta/lib/oe/spdx30_tasks.py index c60c97896c..658e533d75 100644 --- a/meta/lib/oe/spdx30_tasks.py +++ b/meta/lib/oe/spdx30_tasks.py | |||
@@ -135,7 +135,7 @@ def add_package_files( | |||
135 | topdir, | 135 | topdir, |
136 | get_spdxid, | 136 | get_spdxid, |
137 | get_purposes, | 137 | get_purposes, |
138 | license_data, | 138 | license_data=None, |
139 | *, | 139 | *, |
140 | archive=None, | 140 | archive=None, |
141 | ignore_dirs=[], | 141 | ignore_dirs=[], |
@@ -169,7 +169,10 @@ def add_package_files( | |||
169 | ) | 169 | ) |
170 | spdx_files.add(spdx_file) | 170 | spdx_files.add(spdx_file) |
171 | 171 | ||
172 | if oe.spdx30.software_SoftwarePurpose.source in file_purposes: | 172 | if ( |
173 | oe.spdx30.software_SoftwarePurpose.source in file_purposes | ||
174 | and license_data is not None | ||
175 | ): | ||
173 | objset.scan_declared_licenses(spdx_file, filepath, license_data) | 176 | objset.scan_declared_licenses(spdx_file, filepath, license_data) |
174 | 177 | ||
175 | if archive is not None: | 178 | if archive is not None: |
@@ -1072,25 +1075,45 @@ def create_image_spdx(d): | |||
1072 | for image in task["images"]: | 1075 | for image in task["images"]: |
1073 | image_filename = image["filename"] | 1076 | image_filename = image["filename"] |
1074 | image_path = image_deploy_dir / image_filename | 1077 | image_path = image_deploy_dir / image_filename |
1075 | a = objset.add_root( | 1078 | if os.path.isdir(image_path): |
1076 | oe.spdx30.software_File( | 1079 | a = add_package_files( |
1077 | _id=objset.new_spdxid("image", image_filename), | 1080 | d, |
1078 | creationInfo=objset.doc.creationInfo, | 1081 | objset, |
1079 | name=image_filename, | 1082 | image_path, |
1080 | verifiedUsing=[ | 1083 | lambda file_counter: objset.new_spdxid( |
1081 | oe.spdx30.Hash( | 1084 | "imagefile", str(file_counter) |
1082 | algorithm=oe.spdx30.HashAlgorithm.sha256, | 1085 | ), |
1083 | hashValue=bb.utils.sha256_file(image_path), | 1086 | lambda filepath: [], |
1084 | ) | 1087 | license_data=None, |
1085 | ], | 1088 | ignore_dirs=[], |
1089 | ignore_top_level_dirs=[], | ||
1090 | archive=None, | ||
1086 | ) | 1091 | ) |
1087 | ) | 1092 | artifacts.extend(a) |
1088 | set_purposes( | 1093 | else: |
1089 | d, a, "SPDX_IMAGE_PURPOSE:%s" % imagetype, "SPDX_IMAGE_PURPOSE" | 1094 | a = objset.add_root( |
1090 | ) | 1095 | oe.spdx30.software_File( |
1091 | set_timestamp_now(d, a, "builtTime") | 1096 | _id=objset.new_spdxid("image", image_filename), |
1097 | creationInfo=objset.doc.creationInfo, | ||
1098 | name=image_filename, | ||
1099 | verifiedUsing=[ | ||
1100 | oe.spdx30.Hash( | ||
1101 | algorithm=oe.spdx30.HashAlgorithm.sha256, | ||
1102 | hashValue=bb.utils.sha256_file(image_path), | ||
1103 | ) | ||
1104 | ], | ||
1105 | ) | ||
1106 | ) | ||
1107 | |||
1108 | artifacts.append(a) | ||
1109 | |||
1110 | for a in artifacts: | ||
1111 | set_purposes( | ||
1112 | d, a, "SPDX_IMAGE_PURPOSE:%s" % imagetype, "SPDX_IMAGE_PURPOSE" | ||
1113 | ) | ||
1114 | |||
1115 | set_timestamp_now(d, a, "builtTime") | ||
1092 | 1116 | ||
1093 | artifacts.append(a) | ||
1094 | 1117 | ||
1095 | if artifacts: | 1118 | if artifacts: |
1096 | objset.new_scoped_relationship( | 1119 | objset.new_scoped_relationship( |
diff --git a/meta/lib/oe/spdx_common.py b/meta/lib/oe/spdx_common.py index ff18d91780..23a17271d6 100644 --- a/meta/lib/oe/spdx_common.py +++ b/meta/lib/oe/spdx_common.py | |||
@@ -187,6 +187,8 @@ def get_patched_src(d): | |||
187 | bb.build.exec_func("do_unpack", d) | 187 | bb.build.exec_func("do_unpack", d) |
188 | 188 | ||
189 | if d.getVar("SRC_URI") != "": | 189 | if d.getVar("SRC_URI") != "": |
190 | if bb.data.inherits_class('dos2unix', d): | ||
191 | bb.build.exec_func('do_convert_crlf_to_lf', d) | ||
190 | bb.build.exec_func("do_patch", d) | 192 | bb.build.exec_func("do_patch", d) |
191 | 193 | ||
192 | # Copy source from work-share to spdx_workdir | 194 | # Copy source from work-share to spdx_workdir |
diff --git a/meta/lib/oeqa/sdk/context.py b/meta/lib/oeqa/sdk/context.py index 01c38c24e6..77e6a98f39 100644 --- a/meta/lib/oeqa/sdk/context.py +++ b/meta/lib/oeqa/sdk/context.py | |||
@@ -41,11 +41,13 @@ class OESDKTestContext(OETestContext): | |||
41 | 41 | ||
42 | def hasTargetPackage(self, pkg, multilib=False, regex=False): | 42 | def hasTargetPackage(self, pkg, multilib=False, regex=False): |
43 | if multilib: | 43 | if multilib: |
44 | # match multilib according to sdk_env | 44 | stripped_sdk_env = os.path.basename(self.sdk_env) |
45 | mls = self.td.get('MULTILIB_VARIANTS', '').split() | 45 | if stripped_sdk_env.startswith('environment-setup-'): |
46 | for ml in mls: | 46 | # match multilib according to sdk_env |
47 | if ('ml'+ml) in self.sdk_env: | 47 | mls = self.td.get('MULTILIB_VARIANTS', '').split() |
48 | pkg = ml + '-' + pkg | 48 | for ml in mls: |
49 | if ('ml'+ml) in stripped_sdk_env: | ||
50 | pkg = ml + '-' + pkg | ||
49 | return self._hasPackage(self.target_pkg_manifest, pkg, regex=regex) | 51 | return self._hasPackage(self.target_pkg_manifest, pkg, regex=regex) |
50 | 52 | ||
51 | class OESDKTestContextExecutor(OETestContextExecutor): | 53 | class OESDKTestContextExecutor(OETestContextExecutor): |
diff --git a/meta/lib/oeqa/selftest/cases/buildoptions.py b/meta/lib/oeqa/selftest/cases/buildoptions.py index 09272314bb..b509bcf951 100644 --- a/meta/lib/oeqa/selftest/cases/buildoptions.py +++ b/meta/lib/oeqa/selftest/cases/buildoptions.py | |||
@@ -234,6 +234,5 @@ PREMIRRORS = "\\ | |||
234 | 234 | ||
235 | class Poisoning(OESelftestTestCase): | 235 | class Poisoning(OESelftestTestCase): |
236 | def test_poisoning(self): | 236 | def test_poisoning(self): |
237 | res = bitbake("poison", ignore_status=True) | 237 | # The poison recipe fails if the poisoning didn't work |
238 | self.assertNotEqual(res.status, 0) | 238 | bitbake("poison") |
239 | self.assertTrue("is unsafe for cross-compilation" in res.output) | ||
diff --git a/meta/lib/oeqa/selftest/cases/recipetool.py b/meta/lib/oeqa/selftest/cases/recipetool.py index f742dd4d64..36557f270f 100644 --- a/meta/lib/oeqa/selftest/cases/recipetool.py +++ b/meta/lib/oeqa/selftest/cases/recipetool.py | |||
@@ -760,13 +760,13 @@ class RecipetoolCreateTests(RecipetoolBase): | |||
760 | temprecipe = os.path.join(self.tempdir, 'recipe') | 760 | temprecipe = os.path.join(self.tempdir, 'recipe') |
761 | os.makedirs(temprecipe) | 761 | os.makedirs(temprecipe) |
762 | 762 | ||
763 | recipefile = os.path.join(temprecipe, 'edgex-go_git.bb') | 763 | recipefile = os.path.join(temprecipe, 'recipetool-go-test_git.bb') |
764 | deps_require_file = os.path.join(temprecipe, 'edgex-go', 'edgex-go-modules.inc') | 764 | deps_require_file = os.path.join(temprecipe, 'recipetool-go-test', 'recipetool-go-test-modules.inc') |
765 | lics_require_file = os.path.join(temprecipe, 'edgex-go', 'edgex-go-licenses.inc') | 765 | lics_require_file = os.path.join(temprecipe, 'recipetool-go-test', 'recipetool-go-test-licenses.inc') |
766 | modules_txt_file = os.path.join(temprecipe, 'edgex-go', 'modules.txt') | 766 | modules_txt_file = os.path.join(temprecipe, 'recipetool-go-test', 'modules.txt') |
767 | 767 | ||
768 | srcuri = 'https://github.com/edgexfoundry/edgex-go.git' | 768 | srcuri = 'https://git.yoctoproject.org/recipetool-go-test.git' |
769 | srcrev = "v3.0.0" | 769 | srcrev = "c3e213c01b6c1406b430df03ef0d1ae77de5d2f7" |
770 | srcbranch = "main" | 770 | srcbranch = "main" |
771 | 771 | ||
772 | result = runCmd('recipetool create -o %s %s -S %s -B %s' % (temprecipe, srcuri, srcrev, srcbranch)) | 772 | result = runCmd('recipetool create -o %s %s -S %s -B %s' % (temprecipe, srcuri, srcrev, srcbranch)) |
@@ -775,207 +775,27 @@ class RecipetoolCreateTests(RecipetoolBase): | |||
775 | inherits = ['go-vendor'] | 775 | inherits = ['go-vendor'] |
776 | 776 | ||
777 | checkvars = {} | 777 | checkvars = {} |
778 | checkvars['GO_IMPORT'] = "github.com/edgexfoundry/edgex-go" | 778 | checkvars['GO_IMPORT'] = "git.yoctoproject.org/recipetool-go-test" |
779 | checkvars['SRC_URI'] = {'git://${GO_IMPORT};destsuffix=git/src/${GO_IMPORT};nobranch=1;name=${BPN};protocol=https', | 779 | checkvars['SRC_URI'] = {'git://${GO_IMPORT};destsuffix=git/src/${GO_IMPORT};nobranch=1;name=${BPN};protocol=https', |
780 | 'file://modules.txt'} | 780 | 'file://modules.txt'} |
781 | checkvars['LIC_FILES_CHKSUM'] = {'file://src/${GO_IMPORT}/LICENSE;md5=8f8bc924cf73f6a32381e5fd4c58d603'} | 781 | checkvars['LIC_FILES_CHKSUM'] = { |
782 | 'file://src/${GO_IMPORT}/LICENSE;md5=4e3933dd47afbf115e484d11385fb3bd', | ||
783 | 'file://src/${GO_IMPORT}/is/LICENSE;md5=62beaee5a116dd1e80161667b1df39ab' | ||
784 | } | ||
782 | 785 | ||
783 | self.assertTrue(os.path.isfile(recipefile)) | ||
784 | self._test_recipe_contents(recipefile, checkvars, inherits) | 786 | self._test_recipe_contents(recipefile, checkvars, inherits) |
787 | self.assertNotIn('Traceback', result.output) | ||
785 | 788 | ||
786 | checkvars = {} | 789 | checkvars = {} |
787 | checkvars['VENDORED_LIC_FILES_CHKSUM'] = set( | 790 | checkvars['VENDORED_LIC_FILES_CHKSUM'] = set( |
788 | ['file://src/${GO_IMPORT}/vendor/github.com/Microsoft/go-winio/LICENSE;md5=69205ff73858f2c22b2ca135b557e8ef', | 791 | ['file://src/${GO_IMPORT}/vendor/github.com/godbus/dbus/v5/LICENSE;md5=09042bd5c6c96a2b9e45ddf1bc517eed', |
789 | 'file://src/${GO_IMPORT}/vendor/github.com/armon/go-metrics/LICENSE;md5=d2d77030c0183e3d1e66d26dc1f243be', | 792 | 'file://src/${GO_IMPORT}/vendor/github.com/matryer/is/LICENSE;md5=62beaee5a116dd1e80161667b1df39ab']) |
790 | 'file://src/${GO_IMPORT}/vendor/github.com/cenkalti/backoff/LICENSE;md5=1571d94433e3f3aa05267efd4dbea68b', | ||
791 | 'file://src/${GO_IMPORT}/vendor/github.com/davecgh/go-spew/LICENSE;md5=c06795ed54b2a35ebeeb543cd3a73e56', | ||
792 | 'file://src/${GO_IMPORT}/vendor/github.com/eclipse/paho.mqtt.golang/LICENSE;md5=dcdb33474b60c38efd27356d8f2edec7', | ||
793 | 'file://src/${GO_IMPORT}/vendor/github.com/eclipse/paho.mqtt.golang/edl-v10;md5=3adfcc70f5aeb7a44f3f9b495aa1fbf3', | ||
794 | 'file://src/${GO_IMPORT}/vendor/github.com/edgexfoundry/go-mod-bootstrap/v3/LICENSE;md5=0d6dae39976133b2851fba4c1e1275ff', | ||
795 | 'file://src/${GO_IMPORT}/vendor/github.com/edgexfoundry/go-mod-configuration/v3/LICENSE;md5=0d6dae39976133b2851fba4c1e1275ff', | ||
796 | 'file://src/${GO_IMPORT}/vendor/github.com/edgexfoundry/go-mod-core-contracts/v3/LICENSE;md5=0d6dae39976133b2851fba4c1e1275ff', | ||
797 | 'file://src/${GO_IMPORT}/vendor/github.com/edgexfoundry/go-mod-messaging/v3/LICENSE;md5=0d6dae39976133b2851fba4c1e1275ff', | ||
798 | 'file://src/${GO_IMPORT}/vendor/github.com/edgexfoundry/go-mod-registry/v3/LICENSE;md5=0d6dae39976133b2851fba4c1e1275ff', | ||
799 | 'file://src/${GO_IMPORT}/vendor/github.com/edgexfoundry/go-mod-secrets/v3/LICENSE;md5=f9fa2f4f8e0ef8cc7b5dd150963eb457', | ||
800 | 'file://src/${GO_IMPORT}/vendor/github.com/fatih/color/LICENSE.md;md5=316e6d590bdcde7993fb175662c0dd5a', | ||
801 | 'file://src/${GO_IMPORT}/vendor/github.com/fxamacker/cbor/v2/LICENSE;md5=827f5a2fa861382d35a3943adf9ebb86', | ||
802 | 'file://src/${GO_IMPORT}/vendor/github.com/go-jose/go-jose/v3/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57', | ||
803 | 'file://src/${GO_IMPORT}/vendor/github.com/go-jose/go-jose/v3/json/LICENSE;md5=591778525c869cdde0ab5a1bf283cd81', | ||
804 | 'file://src/${GO_IMPORT}/vendor/github.com/go-kit/log/LICENSE;md5=5b7c15ad5fffe2ff6e9d58a6c161f082', | ||
805 | 'file://src/${GO_IMPORT}/vendor/github.com/go-logfmt/logfmt/LICENSE;md5=98e39517c38127f969de33057067091e', | ||
806 | 'file://src/${GO_IMPORT}/vendor/github.com/go-playground/locales/LICENSE;md5=3ccbda375ee345400ad1da85ba522301', | ||
807 | 'file://src/${GO_IMPORT}/vendor/github.com/go-playground/universal-translator/LICENSE;md5=2e2b21ef8f61057977d27c727c84bef1', | ||
808 | 'file://src/${GO_IMPORT}/vendor/github.com/go-playground/validator/v10/LICENSE;md5=a718a0f318d76f7c5d510cbae84f0b60', | ||
809 | 'file://src/${GO_IMPORT}/vendor/github.com/go-redis/redis/v7/LICENSE;md5=58103aa5ea1ee9b7a369c9c4a95ef9b5', | ||
810 | 'file://src/${GO_IMPORT}/vendor/github.com/golang/protobuf/LICENSE;md5=939cce1ec101726fa754e698ac871622', | ||
811 | 'file://src/${GO_IMPORT}/vendor/github.com/gomodule/redigo/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93', | ||
812 | 'file://src/${GO_IMPORT}/vendor/github.com/google/uuid/LICENSE;md5=88073b6dd8ec00fe09da59e0b6dfded1', | ||
813 | 'file://src/${GO_IMPORT}/vendor/github.com/gorilla/mux/LICENSE;md5=33fa1116c45f9e8de714033f99edde13', | ||
814 | 'file://src/${GO_IMPORT}/vendor/github.com/gorilla/websocket/LICENSE;md5=c007b54a1743d596f46b2748d9f8c044', | ||
815 | 'file://src/${GO_IMPORT}/vendor/github.com/hashicorp/consul/api/LICENSE;md5=b8a277a612171b7526e9be072f405ef4', | ||
816 | 'file://src/${GO_IMPORT}/vendor/github.com/hashicorp/errwrap/LICENSE;md5=b278a92d2c1509760384428817710378', | ||
817 | 'file://src/${GO_IMPORT}/vendor/github.com/hashicorp/go-cleanhttp/LICENSE;md5=65d26fcc2f35ea6a181ac777e42db1ea', | ||
818 | 'file://src/${GO_IMPORT}/vendor/github.com/hashicorp/go-hclog/LICENSE;md5=ec7f605b74b9ad03347d0a93a5cc7eb8', | ||
819 | 'file://src/${GO_IMPORT}/vendor/github.com/hashicorp/go-immutable-radix/LICENSE;md5=65d26fcc2f35ea6a181ac777e42db1ea', | ||
820 | 'file://src/${GO_IMPORT}/vendor/github.com/hashicorp/go-multierror/LICENSE;md5=d44fdeb607e2d2614db9464dbedd4094', | ||
821 | 'file://src/${GO_IMPORT}/vendor/github.com/hashicorp/go-rootcerts/LICENSE;md5=65d26fcc2f35ea6a181ac777e42db1ea', | ||
822 | 'file://src/${GO_IMPORT}/vendor/github.com/hashicorp/golang-lru/LICENSE;md5=f27a50d2e878867827842f2c60e30bfc', | ||
823 | 'file://src/${GO_IMPORT}/vendor/github.com/hashicorp/serf/LICENSE;md5=b278a92d2c1509760384428817710378', | ||
824 | 'file://src/${GO_IMPORT}/vendor/github.com/leodido/go-urn/LICENSE;md5=8f50db5538ec1148a9b3d14ed96c3418', | ||
825 | 'file://src/${GO_IMPORT}/vendor/github.com/mattn/go-colorable/LICENSE;md5=24ce168f90aec2456a73de1839037245', | ||
826 | 'file://src/${GO_IMPORT}/vendor/github.com/mattn/go-isatty/LICENSE;md5=f509beadd5a11227c27b5d2ad6c9f2c6', | ||
827 | 'file://src/${GO_IMPORT}/vendor/github.com/mitchellh/consulstructure/LICENSE;md5=96ada10a9e51c98c4656f2cede08c673', | ||
828 | 'file://src/${GO_IMPORT}/vendor/github.com/mitchellh/copystructure/LICENSE;md5=56da355a12d4821cda57b8f23ec34bc4', | ||
829 | 'file://src/${GO_IMPORT}/vendor/github.com/mitchellh/go-homedir/LICENSE;md5=3f7765c3d4f58e1f84c4313cecf0f5bd', | ||
830 | 'file://src/${GO_IMPORT}/vendor/github.com/mitchellh/mapstructure/LICENSE;md5=3f7765c3d4f58e1f84c4313cecf0f5bd', | ||
831 | 'file://src/${GO_IMPORT}/vendor/github.com/mitchellh/reflectwalk/LICENSE;md5=3f7765c3d4f58e1f84c4313cecf0f5bd', | ||
832 | 'file://src/${GO_IMPORT}/vendor/github.com/nats-io/nats.go/LICENSE;md5=86d3f3a95c324c9479bd8986968f4327', | ||
833 | 'file://src/${GO_IMPORT}/vendor/github.com/nats-io/nkeys/LICENSE;md5=86d3f3a95c324c9479bd8986968f4327', | ||
834 | 'file://src/${GO_IMPORT}/vendor/github.com/nats-io/nuid/LICENSE;md5=86d3f3a95c324c9479bd8986968f4327', | ||
835 | 'file://src/${GO_IMPORT}/vendor/github.com/pmezard/go-difflib/LICENSE;md5=e9a2ebb8de779a07500ddecca806145e', | ||
836 | 'file://src/${GO_IMPORT}/vendor/github.com/rcrowley/go-metrics/LICENSE;md5=1bdf5d819f50f141366dabce3be1460f', | ||
837 | 'file://src/${GO_IMPORT}/vendor/github.com/spiffe/go-spiffe/v2/LICENSE;md5=86d3f3a95c324c9479bd8986968f4327', | ||
838 | 'file://src/${GO_IMPORT}/vendor/github.com/stretchr/objx/LICENSE;md5=d023fd31d3ca39ec61eec65a91732735', | ||
839 | 'file://src/${GO_IMPORT}/vendor/github.com/stretchr/testify/LICENSE;md5=188f01994659f3c0d310612333d2a26f', | ||
840 | 'file://src/${GO_IMPORT}/vendor/github.com/x448/float16/LICENSE;md5=de8f8e025d57fe7ee0b67f30d571323b', | ||
841 | 'file://src/${GO_IMPORT}/vendor/github.com/zeebo/errs/LICENSE;md5=84914ab36fc0eb48edbaa53e66e8d326', | ||
842 | 'file://src/${GO_IMPORT}/vendor/golang.org/x/crypto/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707', | ||
843 | 'file://src/${GO_IMPORT}/vendor/golang.org/x/mod/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707', | ||
844 | 'file://src/${GO_IMPORT}/vendor/golang.org/x/net/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707', | ||
845 | 'file://src/${GO_IMPORT}/vendor/golang.org/x/sync/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707', | ||
846 | 'file://src/${GO_IMPORT}/vendor/golang.org/x/sys/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707', | ||
847 | 'file://src/${GO_IMPORT}/vendor/golang.org/x/text/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707', | ||
848 | 'file://src/${GO_IMPORT}/vendor/golang.org/x/tools/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707', | ||
849 | 'file://src/${GO_IMPORT}/vendor/google.golang.org/genproto/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57', | ||
850 | 'file://src/${GO_IMPORT}/vendor/google.golang.org/grpc/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57', | ||
851 | 'file://src/${GO_IMPORT}/vendor/google.golang.org/protobuf/LICENSE;md5=02d4002e9171d41a8fad93aa7faf3956', | ||
852 | 'file://src/${GO_IMPORT}/vendor/gopkg.in/eapache/queue.v1/LICENSE;md5=1bfd4408d3de090ef6b908b0cc45a316', | ||
853 | 'file://src/${GO_IMPORT}/vendor/gopkg.in/yaml.v3/LICENSE;md5=3c91c17266710e16afdbb2b6d15c761c']) | ||
854 | |||
855 | self.assertTrue(os.path.isfile(lics_require_file)) | 793 | self.assertTrue(os.path.isfile(lics_require_file)) |
856 | self._test_recipe_contents(lics_require_file, checkvars, []) | 794 | self._test_recipe_contents(lics_require_file, checkvars, []) |
857 | 795 | ||
796 | # make sure that dependencies don't mention local directory ./matryer/is | ||
858 | dependencies = \ | 797 | dependencies = \ |
859 | [ ('github.com/eclipse/paho.mqtt.golang','v1.4.2', '', '', ''), | 798 | [ ('github.com/godbus/dbus','v5.1.0', 'github.com/godbus/dbus/v5', '/v5', ''), |
860 | ('github.com/edgexfoundry/go-mod-bootstrap','v3.0.1','github.com/edgexfoundry/go-mod-bootstrap/v3','/v3', ''), | ||
861 | ('github.com/edgexfoundry/go-mod-configuration','v3.0.0','github.com/edgexfoundry/go-mod-configuration/v3','/v3', ''), | ||
862 | ('github.com/edgexfoundry/go-mod-core-contracts','v3.0.0','github.com/edgexfoundry/go-mod-core-contracts/v3','/v3', ''), | ||
863 | ('github.com/edgexfoundry/go-mod-messaging','v3.0.0','github.com/edgexfoundry/go-mod-messaging/v3','/v3', ''), | ||
864 | ('github.com/edgexfoundry/go-mod-secrets','v3.0.1','github.com/edgexfoundry/go-mod-secrets/v3','/v3', ''), | ||
865 | ('github.com/fxamacker/cbor','v2.4.0','github.com/fxamacker/cbor/v2','/v2', ''), | ||
866 | ('github.com/gomodule/redigo','v1.8.9', '', '', ''), | ||
867 | ('github.com/google/uuid','v1.3.0', '', '', ''), | ||
868 | ('github.com/gorilla/mux','v1.8.0', '', '', ''), | ||
869 | ('github.com/rcrowley/go-metrics','v0.0.0-20201227073835-cf1acfcdf475', '', '', ''), | ||
870 | ('github.com/spiffe/go-spiffe','v2.1.4','github.com/spiffe/go-spiffe/v2','/v2', ''), | ||
871 | ('github.com/stretchr/testify','v1.8.2', '', '', ''), | ||
872 | ('go.googlesource.com/crypto','v0.8.0','golang.org/x/crypto', '', ''), | ||
873 | ('gopkg.in/eapache/queue.v1','v1.1.0', '', '', ''), | ||
874 | ('gopkg.in/yaml.v3','v3.0.1', '', '', ''), | ||
875 | ('github.com/microsoft/go-winio','v0.6.0','github.com/Microsoft/go-winio', '', ''), | ||
876 | ('github.com/hashicorp/go-metrics','v0.3.10','github.com/armon/go-metrics', '', ''), | ||
877 | ('github.com/cenkalti/backoff','v2.2.1+incompatible', '', '', ''), | ||
878 | ('github.com/davecgh/go-spew','v1.1.1', '', '', ''), | ||
879 | ('github.com/edgexfoundry/go-mod-registry','v3.0.0','github.com/edgexfoundry/go-mod-registry/v3','/v3', ''), | ||
880 | ('github.com/fatih/color','v1.9.0', '', '', ''), | ||
881 | ('github.com/go-jose/go-jose','v3.0.0','github.com/go-jose/go-jose/v3','/v3', ''), | ||
882 | ('github.com/go-kit/log','v0.2.1', '', '', ''), | ||
883 | ('github.com/go-logfmt/logfmt','v0.5.1', '', '', ''), | ||
884 | ('github.com/go-playground/locales','v0.14.1', '', '', ''), | ||
885 | ('github.com/go-playground/universal-translator','v0.18.1', '', '', ''), | ||
886 | ('github.com/go-playground/validator','v10.13.0','github.com/go-playground/validator/v10','/v10', ''), | ||
887 | ('github.com/go-redis/redis','v7.3.0','github.com/go-redis/redis/v7','/v7', ''), | ||
888 | ('github.com/golang/protobuf','v1.5.2', '', '', ''), | ||
889 | ('github.com/gorilla/websocket','v1.4.2', '', '', ''), | ||
890 | ('github.com/hashicorp/consul','v1.20.0','github.com/hashicorp/consul/api', '', 'api'), | ||
891 | ('github.com/hashicorp/errwrap','v1.0.0', '', '', ''), | ||
892 | ('github.com/hashicorp/go-cleanhttp','v0.5.1', '', '', ''), | ||
893 | ('github.com/hashicorp/go-hclog','v0.14.1', '', '', ''), | ||
894 | ('github.com/hashicorp/go-immutable-radix','v1.3.0', '', '', ''), | ||
895 | ('github.com/hashicorp/go-multierror','v1.1.1', '', '', ''), | ||
896 | ('github.com/hashicorp/go-rootcerts','v1.0.2', '', '', ''), | ||
897 | ('github.com/hashicorp/golang-lru','v0.5.4', '', '', ''), | ||
898 | ('github.com/hashicorp/serf','v0.10.1', '', '', ''), | ||
899 | ('github.com/leodido/go-urn','v1.2.3', '', '', ''), | ||
900 | ('github.com/mattn/go-colorable','v0.1.12', '', '', ''), | ||
901 | ('github.com/mattn/go-isatty','v0.0.14', '', '', ''), | ||
902 | ('github.com/mitchellh/consulstructure','v0.0.0-20190329231841-56fdc4d2da54', '', '', ''), | ||
903 | ('github.com/mitchellh/copystructure','v1.2.0', '', '', ''), | ||
904 | ('github.com/mitchellh/go-homedir','v1.1.0', '', '', ''), | ||
905 | ('github.com/mitchellh/mapstructure','v1.5.0', '', '', ''), | ||
906 | ('github.com/mitchellh/reflectwalk','v1.0.2', '', '', ''), | ||
907 | ('github.com/nats-io/nats.go','v1.25.0', '', '', ''), | ||
908 | ('github.com/nats-io/nkeys','v0.4.4', '', '', ''), | ||
909 | ('github.com/nats-io/nuid','v1.0.1', '', '', ''), | ||
910 | ('github.com/pmezard/go-difflib','v1.0.0', '', '', ''), | ||
911 | ('github.com/stretchr/objx','v0.5.0', '', '', ''), | ||
912 | ('github.com/x448/float16','v0.8.4', '', '', ''), | ||
913 | ('github.com/zeebo/errs','v1.3.0', '', '', ''), | ||
914 | ('go.googlesource.com/mod','v0.8.0','golang.org/x/mod', '', ''), | ||
915 | ('go.googlesource.com/net','v0.9.0','golang.org/x/net', '', ''), | ||
916 | ('go.googlesource.com/sync','v0.1.0','golang.org/x/sync', '', ''), | ||
917 | ('go.googlesource.com/sys','v0.7.0','golang.org/x/sys', '', ''), | ||
918 | ('go.googlesource.com/text','v0.9.0','golang.org/x/text', '', ''), | ||
919 | ('go.googlesource.com/tools','v0.6.0','golang.org/x/tools', '', ''), | ||
920 | ('github.com/googleapis/go-genproto','v0.0.0-20230223222841-637eb2293923','google.golang.org/genproto', '', ''), | ||
921 | ('github.com/grpc/grpc-go','v1.53.0','google.golang.org/grpc', '', ''), | ||
922 | ('go.googlesource.com/protobuf','v1.28.1','google.golang.org/protobuf', '', ''), | ||
923 | ] | ||
924 | |||
925 | src_uri = set() | ||
926 | for d in dependencies: | ||
927 | src_uri.add(self._go_urifiy(*d)) | ||
928 | |||
929 | checkvars = {} | ||
930 | checkvars['GO_DEPENDENCIES_SRC_URI'] = src_uri | ||
931 | |||
932 | self.assertTrue(os.path.isfile(deps_require_file)) | ||
933 | self._test_recipe_contents(deps_require_file, checkvars, []) | ||
934 | |||
935 | def test_recipetool_create_go_replace_modules(self): | ||
936 | # Check handling of replaced modules | ||
937 | temprecipe = os.path.join(self.tempdir, 'recipe') | ||
938 | os.makedirs(temprecipe) | ||
939 | |||
940 | recipefile = os.path.join(temprecipe, 'openapi-generator_git.bb') | ||
941 | deps_require_file = os.path.join(temprecipe, 'openapi-generator', 'go-modules.inc') | ||
942 | lics_require_file = os.path.join(temprecipe, 'openapi-generator', 'go-licenses.inc') | ||
943 | modules_txt_file = os.path.join(temprecipe, 'openapi-generator', 'modules.txt') | ||
944 | |||
945 | srcuri = 'https://github.com/OpenAPITools/openapi-generator.git' | ||
946 | srcrev = "v7.2.0" | ||
947 | srcbranch = "master" | ||
948 | srcsubdir = "samples/openapi3/client/petstore/go" | ||
949 | |||
950 | result = runCmd('recipetool create -o %s %s -S %s -B %s --src-subdir %s' % (temprecipe, srcuri, srcrev, srcbranch, srcsubdir)) | ||
951 | |||
952 | self.maxDiff = None | ||
953 | inherits = ['go-vendor'] | ||
954 | |||
955 | checkvars = {} | ||
956 | checkvars['GO_IMPORT'] = "github.com/OpenAPITools/openapi-generator/samples/openapi3/client/petstore/go" | ||
957 | checkvars['SRC_URI'] = {'git://${GO_IMPORT};destsuffix=git/src/${GO_IMPORT};nobranch=1;name=${BPN};protocol=https', | ||
958 | 'file://modules.txt'} | ||
959 | |||
960 | self.assertNotIn('Traceback', result.output) | ||
961 | self.assertIn('No license file was detected for the main module', result.output) | ||
962 | self.assertTrue(os.path.isfile(recipefile)) | ||
963 | self._test_recipe_contents(recipefile, checkvars, inherits) | ||
964 | |||
965 | # make sure that dependencies don't mention local directory ./go-petstore | ||
966 | dependencies = \ | ||
967 | [ ('github.com/stretchr/testify','v1.8.4', '', '', ''), | ||
968 | ('go.googlesource.com/oauth2','v0.10.0','golang.org/x/oauth2', '', ''), | ||
969 | ('github.com/davecgh/go-spew','v1.1.1', '', '', ''), | ||
970 | ('github.com/golang/protobuf','v1.5.3', '', '', ''), | ||
971 | ('github.com/kr/pretty','v0.3.0', '', '', ''), | ||
972 | ('github.com/pmezard/go-difflib','v1.0.0', '', '', ''), | ||
973 | ('github.com/rogpeppe/go-internal','v1.9.0', '', '', ''), | ||
974 | ('go.googlesource.com/net','v0.12.0','golang.org/x/net', '', ''), | ||
975 | ('github.com/golang/appengine','v1.6.7','google.golang.org/appengine', '', ''), | ||
976 | ('go.googlesource.com/protobuf','v1.31.0','google.golang.org/protobuf', '', ''), | ||
977 | ('gopkg.in/check.v1','v1.0.0-20201130134442-10cb98267c6c', '', '', ''), | ||
978 | ('gopkg.in/yaml.v3','v3.0.1', '', '', ''), | ||
979 | ] | 799 | ] |
980 | 800 | ||
981 | src_uri = set() | 801 | src_uri = set() |
diff --git a/meta/lib/oeqa/selftest/cases/runtime_test.py b/meta/lib/oeqa/selftest/cases/runtime_test.py index 27090ae5cd..4843d810a2 100644 --- a/meta/lib/oeqa/selftest/cases/runtime_test.py +++ b/meta/lib/oeqa/selftest/cases/runtime_test.py | |||
@@ -273,6 +273,8 @@ TEST_RUNQEMUPARAMS += " slirp" | |||
273 | import subprocess, os | 273 | import subprocess, os |
274 | 274 | ||
275 | distro = oe.lsb.distro_identifier() | 275 | distro = oe.lsb.distro_identifier() |
276 | # Merge request to address the issue on centos/rhel/derivatives: | ||
277 | # https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3449 | ||
276 | if distro and (distro in ['debian-9', 'debian-10', 'centos-7', 'centos-8', 'centos-9', 'ubuntu-16.04', 'ubuntu-18.04'] or | 278 | if distro and (distro in ['debian-9', 'debian-10', 'centos-7', 'centos-8', 'centos-9', 'ubuntu-16.04', 'ubuntu-18.04'] or |
277 | distro.startswith('almalinux') or distro.startswith('rocky')): | 279 | distro.startswith('almalinux') or distro.startswith('rocky')): |
278 | self.skipTest('virgl headless cannot be tested with %s' %(distro)) | 280 | self.skipTest('virgl headless cannot be tested with %s' %(distro)) |
diff --git a/meta/lib/oeqa/utils/sshcontrol.py b/meta/lib/oeqa/utils/sshcontrol.py index 36c2ecb3db..6c5648779a 100644 --- a/meta/lib/oeqa/utils/sshcontrol.py +++ b/meta/lib/oeqa/utils/sshcontrol.py | |||
@@ -57,8 +57,10 @@ class SSHProcess(object): | |||
57 | if select.select([self.process.stdout], [], [], 5)[0] != []: | 57 | if select.select([self.process.stdout], [], [], 5)[0] != []: |
58 | data = os.read(self.process.stdout.fileno(), 1024) | 58 | data = os.read(self.process.stdout.fileno(), 1024) |
59 | if not data: | 59 | if not data: |
60 | self.process.stdout.close() | 60 | self.process.poll() |
61 | eof = True | 61 | if self.process.returncode is None: |
62 | self.process.stdout.close() | ||
63 | eof = True | ||
62 | else: | 64 | else: |
63 | data = data.decode("utf-8") | 65 | data = data.decode("utf-8") |
64 | output += data | 66 | output += data |
diff --git a/meta/recipes-bsp/efivar/efivar_39.bb b/meta/recipes-bsp/efivar/efivar_39.bb index fe213326a4..b052e3838f 100644 --- a/meta/recipes-bsp/efivar/efivar_39.bb +++ b/meta/recipes-bsp/efivar/efivar_39.bb | |||
@@ -5,7 +5,7 @@ HOMEPAGE = "https://github.com/rhboot/efivar" | |||
5 | LICENSE = "LGPL-2.1-or-later" | 5 | LICENSE = "LGPL-2.1-or-later" |
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=6626bb1e20189cfa95f2c508ba286393" | 6 | LIC_FILES_CHKSUM = "file://COPYING;md5=6626bb1e20189cfa95f2c508ba286393" |
7 | 7 | ||
8 | COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" | 8 | COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64|riscv64).*-linux" |
9 | 9 | ||
10 | SRC_URI = "git://github.com/rhinstaller/efivar.git;branch=main;protocol=https \ | 10 | SRC_URI = "git://github.com/rhinstaller/efivar.git;branch=main;protocol=https \ |
11 | file://0001-docs-do-not-build-efisecdb-manpage.patch \ | 11 | file://0001-docs-do-not-build-efisecdb-manpage.patch \ |
diff --git a/meta/recipes-bsp/grub/grub-bootconf_1.00.bb b/meta/recipes-bsp/grub/grub-bootconf_1.00.bb index fed3c7e9a3..a004e3a3b2 100644 --- a/meta/recipes-bsp/grub/grub-bootconf_1.00.bb +++ b/meta/recipes-bsp/grub/grub-bootconf_1.00.bb | |||
@@ -23,7 +23,7 @@ python do_configure() { | |||
23 | bb.build.exec_func('build_efi_cfg', d) | 23 | bb.build.exec_func('build_efi_cfg', d) |
24 | } | 24 | } |
25 | 25 | ||
26 | do_configure[vardeps] += "APPEND ROOT" | 26 | do_configure[vardeps] += "APPEND ROOT GRUB_TITLE" |
27 | 27 | ||
28 | do_install() { | 28 | do_install() { |
29 | install -d ${D}${EFI_FILES_PATH} | 29 | install -d ${D}${EFI_FILES_PATH} |
diff --git a/meta/recipes-connectivity/ofono/ofono/CVE-2024-7539.patch b/meta/recipes-connectivity/ofono/ofono/CVE-2024-7539.patch new file mode 100644 index 0000000000..e41596959b --- /dev/null +++ b/meta/recipes-connectivity/ofono/ofono/CVE-2024-7539.patch | |||
@@ -0,0 +1,88 @@ | |||
1 | From 389e2344f86319265fb72ae590b470716e038fdc Mon Sep 17 00:00:00 2001 | ||
2 | From: Sicelo A. Mhlongo <absicsz@gmail.com> | ||
3 | Date: Tue, 17 Dec 2024 11:31:29 +0200 | ||
4 | Subject: [PATCH] ussd: ensure ussd content fits in buffers | ||
5 | |||
6 | Fixes: CVE-2024-7539 | ||
7 | |||
8 | CVE: CVE-2024-7539 | ||
9 | Upstream-Status: Backport [https://git.kernel.org/pub/scm/network/ofono/ofono.git/commit/?id=389e2344f86319265fb72ae590b470716e038fdc] | ||
10 | |||
11 | Signed-off-by: Yogita Urade <yogita.urade@windriver.com> | ||
12 | --- | ||
13 | drivers/atmodem/ussd.c | 5 ++++- | ||
14 | drivers/huaweimodem/ussd.c | 5 ++++- | ||
15 | drivers/speedupmodem/ussd.c | 5 ++++- | ||
16 | 3 files changed, 12 insertions(+), 3 deletions(-) | ||
17 | |||
18 | diff --git a/drivers/atmodem/ussd.c b/drivers/atmodem/ussd.c | ||
19 | index 32a9fe9..99da559 100644 | ||
20 | --- a/drivers/atmodem/ussd.c | ||
21 | +++ b/drivers/atmodem/ussd.c | ||
22 | @@ -93,7 +93,7 @@ static void cusd_parse(GAtResult *result, struct ofono_ussd *ussd) | ||
23 | const char *content; | ||
24 | int dcs; | ||
25 | enum sms_charset charset; | ||
26 | - unsigned char msg[160]; | ||
27 | + unsigned char msg[160] = {0}; | ||
28 | const unsigned char *msg_ptr = NULL; | ||
29 | long msg_len; | ||
30 | |||
31 | @@ -113,6 +113,9 @@ static void cusd_parse(GAtResult *result, struct ofono_ussd *ussd) | ||
32 | if (!g_at_result_iter_next_number(&iter, &dcs)) | ||
33 | dcs = 0; | ||
34 | |||
35 | + if (strlen(content) > sizeof(msg) * 2) | ||
36 | + goto out; | ||
37 | + | ||
38 | if (!cbs_dcs_decode(dcs, NULL, NULL, &charset, NULL, NULL, NULL)) { | ||
39 | ofono_error("Unsupported USSD data coding scheme (%02x)", dcs); | ||
40 | status = 4; /* Not supported */ | ||
41 | diff --git a/drivers/huaweimodem/ussd.c b/drivers/huaweimodem/ussd.c | ||
42 | index 5e1c907..3d165c8 100644 | ||
43 | --- a/drivers/huaweimodem/ussd.c | ||
44 | +++ b/drivers/huaweimodem/ussd.c | ||
45 | @@ -38,7 +38,7 @@ static void cusd_parse(GAtResult *result, struct ofono_ussd *ussd) | ||
46 | int status; | ||
47 | int dcs = 0; | ||
48 | const char *content; | ||
49 | - unsigned char msg[160]; | ||
50 | + unsigned char msg[160] = {0}; | ||
51 | const unsigned char *msg_ptr = NULL; | ||
52 | long msg_len; | ||
53 | |||
54 | @@ -55,6 +55,9 @@ static void cusd_parse(GAtResult *result, struct ofono_ussd *ussd) | ||
55 | |||
56 | g_at_result_iter_next_number(&iter, &dcs); | ||
57 | |||
58 | + if (strlen(content) > sizeof(msg) * 2) | ||
59 | + goto out; | ||
60 | + | ||
61 | msg_ptr = decode_hex_own_buf(content, -1, &msg_len, 0, msg); | ||
62 | |||
63 | out: | ||
64 | diff --git a/drivers/speedupmodem/ussd.c b/drivers/speedupmodem/ussd.c | ||
65 | index aafa4bc..a5efde0 100644 | ||
66 | --- a/drivers/speedupmodem/ussd.c | ||
67 | +++ b/drivers/speedupmodem/ussd.c | ||
68 | @@ -37,7 +37,7 @@ static void cusd_parse(GAtResult *result, struct ofono_ussd *ussd) | ||
69 | int status; | ||
70 | int dcs = 0; | ||
71 | const char *content; | ||
72 | - unsigned char msg[160]; | ||
73 | + unsigned char msg[160] = {0}; | ||
74 | const unsigned char *msg_ptr = NULL; | ||
75 | long msg_len; | ||
76 | |||
77 | @@ -54,6 +54,9 @@ static void cusd_parse(GAtResult *result, struct ofono_ussd *ussd) | ||
78 | |||
79 | g_at_result_iter_next_number(&iter, &dcs); | ||
80 | |||
81 | + if (strlen(content) > sizeof(msg) * 2) | ||
82 | + goto out; | ||
83 | + | ||
84 | msg_ptr = decode_hex_own_buf(content, -1, &msg_len, 0, msg); | ||
85 | |||
86 | out: | ||
87 | -- | ||
88 | 2.40.0 | ||
diff --git a/meta/recipes-connectivity/ofono/ofono/CVE-2024-7540_CVE-2024-7541_CVE-2024-7542.patch b/meta/recipes-connectivity/ofono/ofono/CVE-2024-7540_CVE-2024-7541_CVE-2024-7542.patch new file mode 100644 index 0000000000..fd97d4b51b --- /dev/null +++ b/meta/recipes-connectivity/ofono/ofono/CVE-2024-7540_CVE-2024-7541_CVE-2024-7542.patch | |||
@@ -0,0 +1,52 @@ | |||
1 | From 29ff6334b492504ace101be748b256e6953d2c2f Mon Sep 17 00:00:00 2001 | ||
2 | From: "Sicelo A. Mhlongo" <absicsz@gmail.com> | ||
3 | Date: Tue, 17 Dec 2024 11:31:28 +0200 | ||
4 | Subject: [PATCH] atmodem: sms: ensure buffer is initialized before use | ||
5 | |||
6 | Fixes: CVE-2024-7540 | ||
7 | Fixes: CVE-2024-7541 | ||
8 | Fixes: CVE-2024-7542 | ||
9 | |||
10 | CVE: CVE-2024-7540 | ||
11 | CVE: CVE-2024-7541 | ||
12 | CVE: CVE-2024-7542 | ||
13 | Upstream-Status: Backport [https://git.kernel.org/pub/scm/network/ofono/ofono.git/commit/?id=29ff6334b492504ace101be748b256e6953d2c2f] | ||
14 | Signed-off-by: Peter Marko <peter.marko@siemens.com> | ||
15 | --- | ||
16 | drivers/atmodem/sms.c | 6 +++--- | ||
17 | 1 file changed, 3 insertions(+), 3 deletions(-) | ||
18 | |||
19 | diff --git a/drivers/atmodem/sms.c b/drivers/atmodem/sms.c | ||
20 | index d994856b..0668c631 100644 | ||
21 | --- a/drivers/atmodem/sms.c | ||
22 | +++ b/drivers/atmodem/sms.c | ||
23 | @@ -399,7 +399,7 @@ static void at_cmt_notify(GAtResult *result, gpointer user_data) | ||
24 | struct sms_data *data = ofono_sms_get_data(sms); | ||
25 | GAtResultIter iter; | ||
26 | const char *hexpdu; | ||
27 | - unsigned char pdu[176]; | ||
28 | + unsigned char pdu[176] = {0}; | ||
29 | long pdu_len; | ||
30 | int tpdu_len; | ||
31 | |||
32 | @@ -466,7 +466,7 @@ static void at_cmgr_notify(GAtResult *result, gpointer user_data) | ||
33 | struct sms_data *data = ofono_sms_get_data(sms); | ||
34 | GAtResultIter iter; | ||
35 | const char *hexpdu; | ||
36 | - unsigned char pdu[176]; | ||
37 | + unsigned char pdu[176] = {0}; | ||
38 | long pdu_len; | ||
39 | int tpdu_len; | ||
40 | |||
41 | @@ -648,7 +648,7 @@ static void at_cmgl_notify(GAtResult *result, gpointer user_data) | ||
42 | struct sms_data *data = ofono_sms_get_data(sms); | ||
43 | GAtResultIter iter; | ||
44 | const char *hexpdu; | ||
45 | - unsigned char pdu[176]; | ||
46 | + unsigned char pdu[176] = {0}; | ||
47 | long pdu_len; | ||
48 | int tpdu_len; | ||
49 | int index; | ||
50 | -- | ||
51 | 2.30.2 | ||
52 | |||
diff --git a/meta/recipes-connectivity/ofono/ofono_2.14.bb b/meta/recipes-connectivity/ofono/ofono_2.14.bb index 5d11d6cb45..9a91afaa7b 100644 --- a/meta/recipes-connectivity/ofono/ofono_2.14.bb +++ b/meta/recipes-connectivity/ofono/ofono_2.14.bb | |||
@@ -11,6 +11,8 @@ SRC_URI = "\ | |||
11 | ${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \ | 11 | ${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \ |
12 | file://rmnet.patch \ | 12 | file://rmnet.patch \ |
13 | file://ofono \ | 13 | file://ofono \ |
14 | file://CVE-2024-7539.patch \ | ||
15 | file://CVE-2024-7540_CVE-2024-7541_CVE-2024-7542.patch \ | ||
14 | " | 16 | " |
15 | SRC_URI[sha256sum] = "983cbfd5e1e1a410ba7ad2db7f50fadc91e50b29f1ede40cdc73f941da7ba95f" | 17 | SRC_URI[sha256sum] = "983cbfd5e1e1a410ba7ad2db7f50fadc91e50b29f1ede40cdc73f941da7ba95f" |
16 | 18 | ||
diff --git a/meta/recipes-connectivity/openssl/openssl_3.4.0.bb b/meta/recipes-connectivity/openssl/openssl_3.4.0.bb index b7f96db394..9d99c21c20 100644 --- a/meta/recipes-connectivity/openssl/openssl_3.4.0.bb +++ b/meta/recipes-connectivity/openssl/openssl_3.4.0.bb | |||
@@ -265,6 +265,3 @@ INSANE_SKIP:${PN} = "already-stripped" | |||
265 | BBCLASSEXTEND = "native nativesdk" | 265 | BBCLASSEXTEND = "native nativesdk" |
266 | 266 | ||
267 | CVE_PRODUCT = "openssl:openssl" | 267 | CVE_PRODUCT = "openssl:openssl" |
268 | |||
269 | CVE_VERSION_SUFFIX = "alphabetical" | ||
270 | |||
diff --git a/meta/recipes-core/base-files/base-files_3.0.14.bb b/meta/recipes-core/base-files/base-files_3.0.14.bb index 8bcd91e699..60253fcd42 100644 --- a/meta/recipes-core/base-files/base-files_3.0.14.bb +++ b/meta/recipes-core/base-files/base-files_3.0.14.bb | |||
@@ -72,29 +72,6 @@ hostname = "${MACHINE}" | |||
72 | 72 | ||
73 | BASEFILESISSUEINSTALL ?= "do_install_basefilesissue" | 73 | BASEFILESISSUEINSTALL ?= "do_install_basefilesissue" |
74 | 74 | ||
75 | # In previous versions of base-files, /run was a softlink to /var/run and the | ||
76 | # directory was located in /var/volatlie/run. Also, /var/lock was a softlink | ||
77 | # to /var/volatile/lock which is where the real directory was located. Now, | ||
78 | # /run and /run/lock are the real directories. If we are upgrading, we may | ||
79 | # need to remove the symbolic links first before we create the directories. | ||
80 | # Otherwise the directory creation will fail and we will have circular symbolic | ||
81 | # links. | ||
82 | # | ||
83 | pkg_preinst:${PN} () { | ||
84 | #!/bin/sh -e | ||
85 | if [ x"$D" = "x" ]; then | ||
86 | if [ -h "/var/lock" ]; then | ||
87 | # Remove the symbolic link | ||
88 | rm -f /var/lock | ||
89 | fi | ||
90 | |||
91 | if [ -h "/run" ]; then | ||
92 | # Remove the symbolic link | ||
93 | rm -f /run | ||
94 | fi | ||
95 | fi | ||
96 | } | ||
97 | |||
98 | do_install () { | 75 | do_install () { |
99 | for d in ${dirs555}; do | 76 | for d in ${dirs555}; do |
100 | install -m 0555 -d ${D}$d | 77 | install -m 0555 -d ${D}$d |
diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc index f778cff0f4..cebfd3c48c 100644 --- a/meta/recipes-core/busybox/busybox.inc +++ b/meta/recipes-core/busybox/busybox.inc | |||
@@ -7,7 +7,7 @@ DEPENDS += "kern-tools-native virtual/crypt" | |||
7 | 7 | ||
8 | # bzip2 applet in busybox is based on lightly-modified bzip2-1.0.4 source | 8 | # bzip2 applet in busybox is based on lightly-modified bzip2-1.0.4 source |
9 | # the GPL is version 2 only | 9 | # the GPL is version 2 only |
10 | LICENSE = "GPL-2.0-only & bzip2-1.0.4" | 10 | LICENSE = "GPL-2.0-only & bzip2-1.0.6" |
11 | LIC_FILES_CHKSUM = "file://LICENSE;md5=de10de48642ab74318e893a61105afbb \ | 11 | LIC_FILES_CHKSUM = "file://LICENSE;md5=de10de48642ab74318e893a61105afbb \ |
12 | file://archival/libarchive/bz/LICENSE;md5=28e3301eae987e8cfe19988e98383dae" | 12 | file://archival/libarchive/bz/LICENSE;md5=28e3301eae987e8cfe19988e98383dae" |
13 | 13 | ||
diff --git a/meta/recipes-core/images/build-appliance-image_15.0.0.bb b/meta/recipes-core/images/build-appliance-image_15.0.0.bb index 52b6088dd1..8869c92de1 100644 --- a/meta/recipes-core/images/build-appliance-image_15.0.0.bb +++ b/meta/recipes-core/images/build-appliance-image_15.0.0.bb | |||
@@ -26,7 +26,7 @@ inherit core-image setuptools3 features_check | |||
26 | 26 | ||
27 | REQUIRED_DISTRO_FEATURES += "xattr" | 27 | REQUIRED_DISTRO_FEATURES += "xattr" |
28 | 28 | ||
29 | SRCREV ?= "a7c0cf3fab3bea1ca6703f9737bb8d92a62a2c4d" | 29 | SRCREV ?= "df026a95e3eec32e7a010c09b8e98351e74876b2" |
30 | SRC_URI = "git://git.yoctoproject.org/poky;branch=master \ | 30 | SRC_URI = "git://git.yoctoproject.org/poky;branch=master \ |
31 | file://Yocto_Build_Appliance.vmx \ | 31 | file://Yocto_Build_Appliance.vmx \ |
32 | file://Yocto_Build_Appliance.vmxf \ | 32 | file://Yocto_Build_Appliance.vmxf \ |
diff --git a/meta/recipes-core/meta/cve-update-db-native.bb b/meta/recipes-core/meta/cve-update-db-native.bb deleted file mode 100644 index b889c9e6a7..0000000000 --- a/meta/recipes-core/meta/cve-update-db-native.bb +++ /dev/null | |||
@@ -1,405 +0,0 @@ | |||
1 | SUMMARY = "Updates the NVD CVE database" | ||
2 | LICENSE = "MIT" | ||
3 | |||
4 | INHIBIT_DEFAULT_DEPS = "1" | ||
5 | |||
6 | inherit native | ||
7 | |||
8 | deltask do_patch | ||
9 | deltask do_configure | ||
10 | deltask do_compile | ||
11 | deltask do_install | ||
12 | deltask do_populate_sysroot | ||
13 | |||
14 | NVDCVE_URL ?= "https://nvd.nist.gov/feeds/json/cve/1.1/nvdcve-1.1-" | ||
15 | FKIE_URL ?= "https://github.com/fkie-cad/nvd-json-data-feeds/releases/latest/download/CVE-" | ||
16 | |||
17 | # CVE database update interval, in seconds. By default: once a day (24*60*60). | ||
18 | # Use 0 to force the update | ||
19 | # Use a negative value to skip the update | ||
20 | CVE_DB_UPDATE_INTERVAL ?= "86400" | ||
21 | |||
22 | # Timeout for blocking socket operations, such as the connection attempt. | ||
23 | CVE_SOCKET_TIMEOUT ?= "60" | ||
24 | |||
25 | CVE_CHECK_DB_DLDIR_FILE ?= "${DL_DIR}/CVE_CHECK2/${CVE_CHECK_DB_FILENAME}" | ||
26 | CVE_CHECK_DB_DLDIR_LOCK ?= "${CVE_CHECK_DB_DLDIR_FILE}.lock" | ||
27 | |||
28 | CVE_DB_TEMP_FILE ?= "${CVE_CHECK_DB_DIR}/temp_nvdcve_1.1.db" | ||
29 | |||
30 | python () { | ||
31 | if not bb.data.inherits_class("cve-check", d): | ||
32 | raise bb.parse.SkipRecipe("Skip recipe when cve-check class is not loaded.") | ||
33 | } | ||
34 | |||
35 | python do_fetch() { | ||
36 | """ | ||
37 | Update NVD database with json data feed | ||
38 | """ | ||
39 | import bb.utils | ||
40 | import bb.progress | ||
41 | import shutil | ||
42 | |||
43 | bb.utils.export_proxies(d) | ||
44 | |||
45 | db_file = d.getVar("CVE_CHECK_DB_DLDIR_FILE") | ||
46 | db_dir = os.path.dirname(db_file) | ||
47 | db_tmp_file = d.getVar("CVE_DB_TEMP_FILE") | ||
48 | |||
49 | cleanup_db_download(db_file, db_tmp_file) | ||
50 | |||
51 | # The NVD database changes once a day, so no need to update more frequently | ||
52 | # Allow the user to force-update | ||
53 | try: | ||
54 | import time | ||
55 | update_interval = int(d.getVar("CVE_DB_UPDATE_INTERVAL")) | ||
56 | if update_interval < 0: | ||
57 | bb.note("CVE database update skipped") | ||
58 | return | ||
59 | if time.time() - os.path.getmtime(db_file) < update_interval: | ||
60 | bb.debug(2, "Recently updated, skipping") | ||
61 | return | ||
62 | |||
63 | except OSError: | ||
64 | pass | ||
65 | |||
66 | bb.utils.mkdirhier(db_dir) | ||
67 | if os.path.exists(db_file): | ||
68 | shutil.copy2(db_file, db_tmp_file) | ||
69 | |||
70 | if update_db_file(db_tmp_file, d) == True: | ||
71 | # Update downloaded correctly, can swap files | ||
72 | shutil.move(db_tmp_file, db_file) | ||
73 | else: | ||
74 | # Update failed, do not modify the database | ||
75 | bb.note("CVE database update failed") | ||
76 | os.remove(db_tmp_file) | ||
77 | } | ||
78 | |||
79 | do_fetch[lockfiles] += "${CVE_CHECK_DB_DLDIR_LOCK}" | ||
80 | do_fetch[file-checksums] = "" | ||
81 | do_fetch[vardeps] = "" | ||
82 | |||
83 | python do_unpack() { | ||
84 | import shutil | ||
85 | shutil.copyfile(d.getVar("CVE_CHECK_DB_DLDIR_FILE"), d.getVar("CVE_CHECK_DB_FILE")) | ||
86 | } | ||
87 | do_unpack[lockfiles] += "${CVE_CHECK_DB_DLDIR_LOCK} ${CVE_CHECK_DB_FILE_LOCK}" | ||
88 | |||
89 | def cleanup_db_download(db_file, db_tmp_file): | ||
90 | """ | ||
91 | Cleanup the download space from possible failed downloads | ||
92 | """ | ||
93 | |||
94 | # Clean up the updates done on the main file | ||
95 | # Remove it only if a journal file exists - it means a complete re-download | ||
96 | if os.path.exists("{0}-journal".format(db_file)): | ||
97 | # If a journal is present the last update might have been interrupted. In that case, | ||
98 | # just wipe any leftovers and force the DB to be recreated. | ||
99 | os.remove("{0}-journal".format(db_file)) | ||
100 | |||
101 | if os.path.exists(db_file): | ||
102 | os.remove(db_file) | ||
103 | |||
104 | # Clean-up the temporary file downloads, we can remove both journal | ||
105 | # and the temporary database | ||
106 | if os.path.exists("{0}-journal".format(db_tmp_file)): | ||
107 | # If a journal is present the last update might have been interrupted. In that case, | ||
108 | # just wipe any leftovers and force the DB to be recreated. | ||
109 | os.remove("{0}-journal".format(db_tmp_file)) | ||
110 | |||
111 | if os.path.exists(db_tmp_file): | ||
112 | os.remove(db_tmp_file) | ||
113 | |||
114 | def db_file_names(d, year, is_nvd): | ||
115 | if is_nvd: | ||
116 | year_url = d.getVar('NVDCVE_URL') + str(year) | ||
117 | meta_url = year_url + ".meta" | ||
118 | json_url = year_url + ".json.gz" | ||
119 | return json_url, meta_url | ||
120 | year_url = d.getVar('FKIE_URL') + str(year) | ||
121 | meta_url = year_url + ".meta" | ||
122 | json_url = year_url + ".json.xz" | ||
123 | return json_url, meta_url | ||
124 | |||
125 | def host_db_name(d, is_nvd): | ||
126 | if is_nvd: | ||
127 | return "nvd.nist.gov" | ||
128 | return "github.com" | ||
129 | |||
130 | def db_decompress(d, data, is_nvd): | ||
131 | import gzip, lzma | ||
132 | |||
133 | if is_nvd: | ||
134 | return gzip.decompress(data).decode('utf-8') | ||
135 | # otherwise | ||
136 | return lzma.decompress(data) | ||
137 | |||
138 | def update_db_file(db_tmp_file, d): | ||
139 | """ | ||
140 | Update the given database file | ||
141 | """ | ||
142 | import bb.utils, bb.progress | ||
143 | from datetime import date | ||
144 | import urllib, gzip, sqlite3 | ||
145 | |||
146 | YEAR_START = 2002 | ||
147 | cve_socket_timeout = int(d.getVar("CVE_SOCKET_TIMEOUT")) | ||
148 | is_nvd = d.getVar("NVD_DB_VERSION") == "NVD1" | ||
149 | |||
150 | # Connect to database | ||
151 | conn = sqlite3.connect(db_tmp_file) | ||
152 | initialize_db(conn) | ||
153 | |||
154 | with bb.progress.ProgressHandler(d) as ph, open(os.path.join(d.getVar("TMPDIR"), 'cve_check'), 'a') as cve_f: | ||
155 | total_years = date.today().year + 1 - YEAR_START | ||
156 | for i, year in enumerate(range(YEAR_START, date.today().year + 1)): | ||
157 | bb.debug(2, "Updating %d" % year) | ||
158 | ph.update((float(i + 1) / total_years) * 100) | ||
159 | json_url, meta_url = db_file_names(d, year, is_nvd) | ||
160 | |||
161 | # Retrieve meta last modified date | ||
162 | try: | ||
163 | response = urllib.request.urlopen(meta_url, timeout=cve_socket_timeout) | ||
164 | except urllib.error.URLError as e: | ||
165 | cve_f.write('Warning: CVE db update error, Unable to fetch CVE data.\n\n') | ||
166 | bb.warn("Failed to fetch CVE data (%s)" % e) | ||
167 | import socket | ||
168 | result = socket.getaddrinfo(host_db_name(d, is_nvd), 443, proto=socket.IPPROTO_TCP) | ||
169 | bb.warn("Host IPs are %s" % (", ".join(t[4][0] for t in result))) | ||
170 | return False | ||
171 | |||
172 | if response: | ||
173 | for l in response.read().decode("utf-8").splitlines(): | ||
174 | key, value = l.split(":", 1) | ||
175 | if key == "lastModifiedDate": | ||
176 | last_modified = value | ||
177 | break | ||
178 | else: | ||
179 | bb.warn("Cannot parse CVE metadata, update failed") | ||
180 | return False | ||
181 | |||
182 | # Compare with current db last modified date | ||
183 | cursor = conn.execute("select DATE from META where YEAR = ?", (year,)) | ||
184 | meta = cursor.fetchone() | ||
185 | cursor.close() | ||
186 | |||
187 | if not meta or meta[0] != last_modified: | ||
188 | bb.debug(2, "Updating entries") | ||
189 | # Clear products table entries corresponding to current year | ||
190 | conn.execute("delete from PRODUCTS where ID like ?", ('CVE-%d%%' % year,)).close() | ||
191 | |||
192 | # Update db with current year json file | ||
193 | try: | ||
194 | response = urllib.request.urlopen(json_url, timeout=cve_socket_timeout) | ||
195 | if response: | ||
196 | update_db(d, conn, db_decompress(d, response.read(), is_nvd)) | ||
197 | conn.execute("insert or replace into META values (?, ?)", [year, last_modified]).close() | ||
198 | except urllib.error.URLError as e: | ||
199 | cve_f.write('Warning: CVE db update error, CVE data is outdated.\n\n') | ||
200 | bb.warn("Cannot parse CVE data (%s), update failed" % e.reason) | ||
201 | return False | ||
202 | else: | ||
203 | bb.debug(2, "Already up to date (last modified %s)" % last_modified) | ||
204 | # Update success, set the date to cve_check file. | ||
205 | if year == date.today().year: | ||
206 | cve_f.write('CVE database update : %s\n\n' % date.today()) | ||
207 | |||
208 | conn.commit() | ||
209 | conn.close() | ||
210 | return True | ||
211 | |||
212 | def initialize_db(conn): | ||
213 | with conn: | ||
214 | c = conn.cursor() | ||
215 | |||
216 | c.execute("CREATE TABLE IF NOT EXISTS META (YEAR INTEGER UNIQUE, DATE TEXT)") | ||
217 | |||
218 | c.execute("CREATE TABLE IF NOT EXISTS NVD (ID TEXT UNIQUE, SUMMARY TEXT, \ | ||
219 | SCOREV2 TEXT, SCOREV3 TEXT, SCOREV4 TEXT, MODIFIED INTEGER, VECTOR TEXT, VECTORSTRING TEXT)") | ||
220 | |||
221 | c.execute("CREATE TABLE IF NOT EXISTS PRODUCTS (ID TEXT, \ | ||
222 | VENDOR TEXT, PRODUCT TEXT, VERSION_START TEXT, OPERATOR_START TEXT, \ | ||
223 | VERSION_END TEXT, OPERATOR_END TEXT)") | ||
224 | c.execute("CREATE INDEX IF NOT EXISTS PRODUCT_ID_IDX on PRODUCTS(ID);") | ||
225 | |||
226 | c.close() | ||
227 | |||
228 | def parse_node_and_insert(conn, node, cveId, is_nvd): | ||
229 | # Parse children node if needed | ||
230 | for child in node.get('children', ()): | ||
231 | parse_node_and_insert(conn, child, cveId, is_nvd) | ||
232 | |||
233 | def cpe_generator(is_nvd): | ||
234 | match_string = "cpeMatch" | ||
235 | cpe_string = 'criteria' | ||
236 | if is_nvd: | ||
237 | match_string = "cpe_match" | ||
238 | cpe_string = 'cpe23Uri' | ||
239 | |||
240 | for cpe in node.get(match_string, ()): | ||
241 | if not cpe['vulnerable']: | ||
242 | return | ||
243 | cpe23 = cpe.get(cpe_string) | ||
244 | if not cpe23: | ||
245 | return | ||
246 | cpe23 = cpe23.split(':') | ||
247 | if len(cpe23) < 6: | ||
248 | return | ||
249 | vendor = cpe23[3] | ||
250 | product = cpe23[4] | ||
251 | version = cpe23[5] | ||
252 | |||
253 | if cpe23[6] == '*' or cpe23[6] == '-': | ||
254 | version_suffix = "" | ||
255 | else: | ||
256 | version_suffix = "_" + cpe23[6] | ||
257 | |||
258 | if version != '*' and version != '-': | ||
259 | # Version is defined, this is a '=' match | ||
260 | yield [cveId, vendor, product, version + version_suffix, '=', '', ''] | ||
261 | elif version == '-': | ||
262 | # no version information is available | ||
263 | yield [cveId, vendor, product, version, '', '', ''] | ||
264 | else: | ||
265 | # Parse start version, end version and operators | ||
266 | op_start = '' | ||
267 | op_end = '' | ||
268 | v_start = '' | ||
269 | v_end = '' | ||
270 | |||
271 | if 'versionStartIncluding' in cpe: | ||
272 | op_start = '>=' | ||
273 | v_start = cpe['versionStartIncluding'] | ||
274 | |||
275 | if 'versionStartExcluding' in cpe: | ||
276 | op_start = '>' | ||
277 | v_start = cpe['versionStartExcluding'] | ||
278 | |||
279 | if 'versionEndIncluding' in cpe: | ||
280 | op_end = '<=' | ||
281 | v_end = cpe['versionEndIncluding'] | ||
282 | |||
283 | if 'versionEndExcluding' in cpe: | ||
284 | op_end = '<' | ||
285 | v_end = cpe['versionEndExcluding'] | ||
286 | |||
287 | if op_start or op_end or v_start or v_end: | ||
288 | yield [cveId, vendor, product, v_start, op_start, v_end, op_end] | ||
289 | else: | ||
290 | # This is no version information, expressed differently. | ||
291 | # Save processing by representing as -. | ||
292 | yield [cveId, vendor, product, '-', '', '', ''] | ||
293 | |||
294 | conn.executemany("insert into PRODUCTS values (?, ?, ?, ?, ?, ?, ?)", cpe_generator(is_nvd)).close() | ||
295 | |||
296 | def update_db_nvdjson(conn, jsondata): | ||
297 | import json | ||
298 | root = json.loads(jsondata) | ||
299 | |||
300 | for elt in root['CVE_Items']: | ||
301 | if not elt['impact']: | ||
302 | continue | ||
303 | |||
304 | accessVector = None | ||
305 | vectorString = None | ||
306 | cvssv2 = 0.0 | ||
307 | cvssv3 = 0.0 | ||
308 | cvssv4 = 0.0 | ||
309 | cveId = elt['cve']['CVE_data_meta']['ID'] | ||
310 | cveDesc = elt['cve']['description']['description_data'][0]['value'] | ||
311 | date = elt['lastModifiedDate'] | ||
312 | try: | ||
313 | accessVector = elt['impact']['baseMetricV2']['cvssV2']['accessVector'] | ||
314 | vectorString = elt['impact']['baseMetricV2']['cvssV2']['vectorString'] | ||
315 | cvssv2 = elt['impact']['baseMetricV2']['cvssV2']['baseScore'] | ||
316 | except KeyError: | ||
317 | cvssv2 = 0.0 | ||
318 | try: | ||
319 | accessVector = accessVector or elt['impact']['baseMetricV3']['cvssV3']['attackVector'] | ||
320 | vectorString = vectorString or elt['impact']['baseMetricV3']['cvssV3']['vectorString'] | ||
321 | cvssv3 = elt['impact']['baseMetricV3']['cvssV3']['baseScore'] | ||
322 | except KeyError: | ||
323 | accessVector = accessVector or "UNKNOWN" | ||
324 | cvssv3 = 0.0 | ||
325 | |||
326 | conn.execute("insert or replace into NVD values (?, ?, ?, ?, ?, ?, ?, ?)", | ||
327 | [cveId, cveDesc, cvssv2, cvssv3, cvssv4, date, accessVector, vectorString]).close() | ||
328 | |||
329 | configurations = elt['configurations']['nodes'] | ||
330 | for config in configurations: | ||
331 | parse_node_and_insert(conn, config, cveId, True) | ||
332 | |||
333 | def update_db_fkie(conn, jsondata): | ||
334 | import json | ||
335 | root = json.loads(jsondata) | ||
336 | |||
337 | for elt in root['cve_items']: | ||
338 | if not 'vulnStatus' in elt or elt['vulnStatus'] == 'Rejected': | ||
339 | continue | ||
340 | |||
341 | if not 'configurations' in elt: | ||
342 | continue | ||
343 | |||
344 | accessVector = None | ||
345 | vectorString = None | ||
346 | cvssv2 = 0.0 | ||
347 | cvssv3 = 0.0 | ||
348 | cvssv4 = 0.0 | ||
349 | cveId = elt['id'] | ||
350 | cveDesc = elt['descriptions'][0]['value'] | ||
351 | date = elt['lastModified'] | ||
352 | try: | ||
353 | for m in elt['metrics']['cvssMetricV2']: | ||
354 | if m['type'] == 'Primary': | ||
355 | accessVector = m['cvssData']['accessVector'] | ||
356 | vectorString = m['cvssData']['vectorString'] | ||
357 | cvssv2 = m['cvssData']['baseScore'] | ||
358 | except KeyError: | ||
359 | cvssv2 = 0.0 | ||
360 | try: | ||
361 | for m in elt['metrics']['cvssMetricV30']: | ||
362 | if m['type'] == 'Primary': | ||
363 | accessVector = m['cvssData']['accessVector'] | ||
364 | vectorString = m['cvssData']['vectorString'] | ||
365 | cvssv3 = m['cvssData']['baseScore'] | ||
366 | except KeyError: | ||
367 | accessVector = accessVector or "UNKNOWN" | ||
368 | cvssv3 = 0.0 | ||
369 | try: | ||
370 | for m in elt['metrics']['cvssMetricV31']: | ||
371 | if m['type'] == 'Primary': | ||
372 | accessVector = m['cvssData']['accessVector'] | ||
373 | vectorString = m['cvssData']['vectorString'] | ||
374 | cvssv3 = m['cvssData']['baseScore'] | ||
375 | except KeyError: | ||
376 | accessVector = accessVector or "UNKNOWN" | ||
377 | cvssv3 = 0.0 | ||
378 | try: | ||
379 | for m in elt['metrics']['cvssMetricV40']: | ||
380 | if m['type'] == 'Primary': | ||
381 | accessVector = m['cvssData']['accessVector'] | ||
382 | vectorString = m['cvssData']['vectorString'] | ||
383 | cvssv4 = m['cvssData']['baseScore'] | ||
384 | except KeyError: | ||
385 | accessVector = accessVector or "UNKNOWN" | ||
386 | cvssv4 = 0.0 | ||
387 | |||
388 | conn.execute("insert or replace into NVD values (?, ?, ?, ?, ?, ?, ?, ?)", | ||
389 | [cveId, cveDesc, cvssv2, cvssv3, cvssv4, date, accessVector, vectorString]).close() | ||
390 | |||
391 | for config in elt['configurations']: | ||
392 | # This is suboptimal as it doesn't handle AND/OR and negate, but is better than nothing | ||
393 | for node in config["nodes"]: | ||
394 | parse_node_and_insert(conn, node, cveId, False) | ||
395 | |||
396 | |||
397 | def update_db(d, conn, jsondata): | ||
398 | if (d.getVar("NVD_DB_VERSION") == "FKIE"): | ||
399 | return update_db_fkie(conn, jsondata) | ||
400 | else: | ||
401 | return update_db_nvdjson(conn, jsondata) | ||
402 | |||
403 | do_fetch[nostamp] = "1" | ||
404 | |||
405 | EXCLUDE_FROM_WORLD = "1" | ||
diff --git a/meta/recipes-core/ncurses/ncurses.inc b/meta/recipes-core/ncurses/ncurses.inc index e96ee075bd..3f93550cf9 100644 --- a/meta/recipes-core/ncurses/ncurses.inc +++ b/meta/recipes-core/ncurses/ncurses.inc | |||
@@ -70,6 +70,7 @@ ncurses_configure() { | |||
70 | --without-debug \ | 70 | --without-debug \ |
71 | --without-ada \ | 71 | --without-ada \ |
72 | --without-gpm \ | 72 | --without-gpm \ |
73 | --with-xterm-kbs=del \ | ||
73 | --enable-hard-tabs \ | 74 | --enable-hard-tabs \ |
74 | --enable-xmc-glitch \ | 75 | --enable-xmc-glitch \ |
75 | --enable-colorfgbg \ | 76 | --enable-colorfgbg \ |
diff --git a/meta/recipes-core/systemd/systemd-systemctl/systemctl b/meta/recipes-core/systemd/systemd-systemctl/systemctl index 2229bc7b6d..81c246a5b2 100755 --- a/meta/recipes-core/systemd/systemd-systemctl/systemctl +++ b/meta/recipes-core/systemd/systemd-systemctl/systemctl | |||
@@ -29,15 +29,15 @@ class SystemdFile(): | |||
29 | 29 | ||
30 | _clearable_keys = ['WantedBy'] | 30 | _clearable_keys = ['WantedBy'] |
31 | 31 | ||
32 | def __init__(self, root, path, instance_unit_name): | 32 | def __init__(self, root, path, instance_unit_name, unit_type): |
33 | self.sections = dict() | 33 | self.sections = dict() |
34 | self._parse(root, path) | 34 | self._parse(root, path) |
35 | dirname = os.path.basename(path.name) + ".d" | 35 | dirname = os.path.basename(path.name) + ".d" |
36 | for location in locations: | 36 | for location in locations: |
37 | files = (root / location / "system" / dirname).glob("*.conf") | 37 | files = (root / location / unit_type / dirname).glob("*.conf") |
38 | if instance_unit_name: | 38 | if instance_unit_name: |
39 | inst_dirname = instance_unit_name + ".d" | 39 | inst_dirname = instance_unit_name + ".d" |
40 | files = chain(files, (root / location / "system" / inst_dirname).glob("*.conf")) | 40 | files = chain(files, (root / location / unit_type / inst_dirname).glob("*.conf")) |
41 | for path2 in sorted(files): | 41 | for path2 in sorted(files): |
42 | self._parse(root, path2) | 42 | self._parse(root, path2) |
43 | 43 | ||
@@ -182,21 +182,22 @@ class SystemdUnitNotFoundError(Exception): | |||
182 | 182 | ||
183 | 183 | ||
184 | class SystemdUnit(): | 184 | class SystemdUnit(): |
185 | def __init__(self, root, unit): | 185 | def __init__(self, root, unit, unit_type): |
186 | self.root = root | 186 | self.root = root |
187 | self.unit = unit | 187 | self.unit = unit |
188 | self.unit_type = unit_type | ||
188 | self.config = None | 189 | self.config = None |
189 | 190 | ||
190 | def _path_for_unit(self, unit): | 191 | def _path_for_unit(self, unit): |
191 | for location in locations: | 192 | for location in locations: |
192 | path = self.root / location / "system" / unit | 193 | path = self.root / location / self.unit_type / unit |
193 | if path.exists() or path.is_symlink(): | 194 | if path.exists() or path.is_symlink(): |
194 | return path | 195 | return path |
195 | 196 | ||
196 | raise SystemdUnitNotFoundError(self.root, unit) | 197 | raise SystemdUnitNotFoundError(self.root, unit) |
197 | 198 | ||
198 | def _process_deps(self, config, service, location, prop, dirstem, instance): | 199 | def _process_deps(self, config, service, location, prop, dirstem, instance): |
199 | systemdir = self.root / SYSCONFDIR / "systemd" / "system" | 200 | systemdir = self.root / SYSCONFDIR / "systemd" / self.unit_type |
200 | 201 | ||
201 | target = ROOT / location.relative_to(self.root) | 202 | target = ROOT / location.relative_to(self.root) |
202 | try: | 203 | try: |
@@ -229,7 +230,7 @@ class SystemdUnit(): | |||
229 | # ignore aliases | 230 | # ignore aliases |
230 | return | 231 | return |
231 | 232 | ||
232 | config = SystemdFile(self.root, path, instance_unit_name) | 233 | config = SystemdFile(self.root, path, instance_unit_name, self.unit_type) |
233 | if instance == "": | 234 | if instance == "": |
234 | try: | 235 | try: |
235 | default_instance = config.get('Install', 'DefaultInstance')[0] | 236 | default_instance = config.get('Install', 'DefaultInstance')[0] |
@@ -250,14 +251,14 @@ class SystemdUnit(): | |||
250 | try: | 251 | try: |
251 | units_enabled.append(unit) | 252 | units_enabled.append(unit) |
252 | if also not in units_enabled: | 253 | if also not in units_enabled: |
253 | SystemdUnit(self.root, also).enable(units_enabled) | 254 | SystemdUnit(self.root, also, self.unit_type).enable(units_enabled) |
254 | except SystemdUnitNotFoundError as e: | 255 | except SystemdUnitNotFoundError as e: |
255 | sys.exit("Error: Systemctl also enable issue with %s (%s)" % (service, e.unit)) | 256 | sys.exit("Error: Systemctl also enable issue with %s (%s)" % (service, e.unit)) |
256 | 257 | ||
257 | except KeyError: | 258 | except KeyError: |
258 | pass | 259 | pass |
259 | 260 | ||
260 | systemdir = self.root / SYSCONFDIR / "systemd" / "system" | 261 | systemdir = self.root / SYSCONFDIR / "systemd" / self.unit_type |
261 | target = ROOT / path.relative_to(self.root) | 262 | target = ROOT / path.relative_to(self.root) |
262 | try: | 263 | try: |
263 | for dest in config.get('Install', 'Alias'): | 264 | for dest in config.get('Install', 'Alias'): |
@@ -268,15 +269,15 @@ class SystemdUnit(): | |||
268 | pass | 269 | pass |
269 | 270 | ||
270 | def mask(self): | 271 | def mask(self): |
271 | systemdir = self.root / SYSCONFDIR / "systemd" / "system" | 272 | systemdir = self.root / SYSCONFDIR / "systemd" / self.unit_type |
272 | add_link(systemdir / self.unit, "/dev/null") | 273 | add_link(systemdir / self.unit, "/dev/null") |
273 | 274 | ||
274 | 275 | ||
275 | def collect_services(root): | 276 | def collect_services(root, unit_type): |
276 | """Collect list of service files""" | 277 | """Collect list of service files""" |
277 | services = set() | 278 | services = set() |
278 | for location in locations: | 279 | for location in locations: |
279 | paths = (root / location / "system").glob("*") | 280 | paths = (root / location / unit_type).glob("*") |
280 | for path in paths: | 281 | for path in paths: |
281 | if path.is_dir(): | 282 | if path.is_dir(): |
282 | continue | 283 | continue |
@@ -285,16 +286,16 @@ def collect_services(root): | |||
285 | return services | 286 | return services |
286 | 287 | ||
287 | 288 | ||
288 | def preset_all(root): | 289 | def preset_all(root, unit_type): |
289 | presets = Presets('system-preset', root) | 290 | presets = Presets('{}-preset'.format(unit_type), root) |
290 | services = collect_services(root) | 291 | services = collect_services(root, unit_type) |
291 | 292 | ||
292 | for service in services: | 293 | for service in services: |
293 | state = presets.state(service) | 294 | state = presets.state(service) |
294 | 295 | ||
295 | if state == "enable" or state is None: | 296 | if state == "enable" or state is None: |
296 | try: | 297 | try: |
297 | SystemdUnit(root, service).enable() | 298 | SystemdUnit(root, service, unit_type).enable() |
298 | except SystemdUnitNotFoundError: | 299 | except SystemdUnitNotFoundError: |
299 | sys.exit("Error: Systemctl preset_all issue in %s" % service) | 300 | sys.exit("Error: Systemctl preset_all issue in %s" % service) |
300 | 301 | ||
@@ -320,6 +321,7 @@ def main(): | |||
320 | parser.add_argument('--preset-mode', | 321 | parser.add_argument('--preset-mode', |
321 | choices=['full', 'enable-only', 'disable-only'], | 322 | choices=['full', 'enable-only', 'disable-only'], |
322 | default='full') | 323 | default='full') |
324 | parser.add_argument('--global', dest="opt_global", action="store_true", default=False) | ||
323 | 325 | ||
324 | args = parser.parse_args() | 326 | args = parser.parse_args() |
325 | 327 | ||
@@ -336,16 +338,18 @@ def main(): | |||
336 | parser.print_help() | 338 | parser.print_help() |
337 | return 0 | 339 | return 0 |
338 | 340 | ||
341 | unit_type = "user" if args.opt_global else "system" | ||
342 | |||
339 | if command == "mask": | 343 | if command == "mask": |
340 | for service in args.service: | 344 | for service in args.service: |
341 | try: | 345 | try: |
342 | SystemdUnit(root, service).mask() | 346 | SystemdUnit(root, service, unit_type).mask() |
343 | except SystemdUnitNotFoundError as e: | 347 | except SystemdUnitNotFoundError as e: |
344 | sys.exit("Error: Systemctl main mask issue in %s (%s)" % (service, e.unit)) | 348 | sys.exit("Error: Systemctl main mask issue in %s (%s)" % (service, e.unit)) |
345 | elif command == "enable": | 349 | elif command == "enable": |
346 | for service in args.service: | 350 | for service in args.service: |
347 | try: | 351 | try: |
348 | SystemdUnit(root, service).enable() | 352 | SystemdUnit(root, service, unit_type).enable() |
349 | except SystemdUnitNotFoundError as e: | 353 | except SystemdUnitNotFoundError as e: |
350 | sys.exit("Error: Systemctl main enable issue in %s (%s)" % (service, e.unit)) | 354 | sys.exit("Error: Systemctl main enable issue in %s (%s)" % (service, e.unit)) |
351 | elif command == "preset-all": | 355 | elif command == "preset-all": |
@@ -353,7 +357,7 @@ def main(): | |||
353 | sys.exit("Too many arguments.") | 357 | sys.exit("Too many arguments.") |
354 | if args.preset_mode != "enable-only": | 358 | if args.preset_mode != "enable-only": |
355 | sys.exit("Only enable-only is supported as preset-mode.") | 359 | sys.exit("Only enable-only is supported as preset-mode.") |
356 | preset_all(root) | 360 | preset_all(root, unit_type) |
357 | else: | 361 | else: |
358 | raise RuntimeError() | 362 | raise RuntimeError() |
359 | 363 | ||
diff --git a/meta/recipes-core/systemd/systemd/0001-Do-not-create-var-log-README.patch b/meta/recipes-core/systemd/systemd/0001-Do-not-create-var-log-README.patch new file mode 100644 index 0000000000..850e356b2f --- /dev/null +++ b/meta/recipes-core/systemd/systemd/0001-Do-not-create-var-log-README.patch | |||
@@ -0,0 +1,30 @@ | |||
1 | From 425ad51e727058b48dd4580fd6afe7e51e96a28a Mon Sep 17 00:00:00 2001 | ||
2 | From: Peter Kjellerstedt <pkj@axis.com> | ||
3 | Date: Tue, 21 Jan 2025 05:02:00 +0100 | ||
4 | Subject: [PATCH] Do not create /var/log/README | ||
5 | |||
6 | /var/log/README is a link to /usr/share/doc/systemd/README.logs. The | ||
7 | latter is packaged in systemd-doc and likely not installed, which leaves | ||
8 | /var/log/README as a dead link. Since /var/log/README is not very | ||
9 | useful, just remove it. | ||
10 | |||
11 | Upstream-Status: Inappropriate [OE specific] | ||
12 | Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> | ||
13 | --- | ||
14 | tmpfiles.d/legacy.conf.in | 3 --- | ||
15 | 1 file changed, 3 deletions(-) | ||
16 | |||
17 | diff --git a/tmpfiles.d/legacy.conf.in b/tmpfiles.d/legacy.conf.in | ||
18 | index b475500e58..650c91a8da 100644 | ||
19 | --- a/tmpfiles.d/legacy.conf.in | ||
20 | +++ b/tmpfiles.d/legacy.conf.in | ||
21 | @@ -13,9 +13,6 @@ | ||
22 | |||
23 | d /run/lock 0755 root root - | ||
24 | L /var/lock - - - - ../run/lock | ||
25 | -{% if CREATE_LOG_DIRS %} | ||
26 | -L$ /var/log/README - - - - ../..{{DOC_DIR}}/README.logs | ||
27 | -{% endif %} | ||
28 | |||
29 | {% if HAVE_SYSV_COMPAT %} | ||
30 | # /run/lock/subsys is used for serializing SysV service execution, and | ||
diff --git a/meta/recipes-core/systemd/systemd_257.1.bb b/meta/recipes-core/systemd/systemd_257.1.bb index e7dae83957..cdf72a5015 100644 --- a/meta/recipes-core/systemd/systemd_257.1.bb +++ b/meta/recipes-core/systemd/systemd_257.1.bb | |||
@@ -28,6 +28,7 @@ SRC_URI += " \ | |||
28 | file://systemd-pager.sh \ | 28 | file://systemd-pager.sh \ |
29 | file://0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ | 29 | file://0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ |
30 | file://0002-implment-systemd-sysv-install-for-OE.patch \ | 30 | file://0002-implment-systemd-sysv-install-for-OE.patch \ |
31 | file://0001-Do-not-create-var-log-README.patch \ | ||
31 | " | 32 | " |
32 | 33 | ||
33 | # patches needed by musl | 34 | # patches needed by musl |
@@ -405,10 +406,6 @@ do_install() { | |||
405 | # Actively disable Predictable Network Interface Names | 406 | # Actively disable Predictable Network Interface Names |
406 | sed -i 's/^NamePolicy=.*/NamePolicy=/;s/^AlternativeNamesPolicy=.*/AlternativeNamesPolicy=/' ${D}${nonarch_libdir}/systemd/network/99-default.link | 407 | sed -i 's/^NamePolicy=.*/NamePolicy=/;s/^AlternativeNamesPolicy=.*/AlternativeNamesPolicy=/' ${D}${nonarch_libdir}/systemd/network/99-default.link |
407 | fi | 408 | fi |
408 | |||
409 | if [ -e ${D}${nonarch_libdir}/tmpfiles.d/legacy.conf ];then | ||
410 | sed -i -e '/^L \/var\/log\/README/d' ${D}${nonarch_libdir}/tmpfiles.d/legacy.conf | ||
411 | fi | ||
412 | } | 409 | } |
413 | 410 | ||
414 | python populate_packages:prepend (){ | 411 | python populate_packages:prepend (){ |
diff --git a/meta/recipes-core/udev/eudev/0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch b/meta/recipes-core/udev/eudev/0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch new file mode 100644 index 0000000000..668aa731ac --- /dev/null +++ b/meta/recipes-core/udev/eudev/0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch | |||
@@ -0,0 +1,138 @@ | |||
1 | From 95c871b7b912f39539777ac222ef7f8798bb0225 Mon Sep 17 00:00:00 2001 | ||
2 | From: Masahisa Kojima <kojima.masahisa@socionext.com> | ||
3 | Date: Thu, 25 Apr 2024 17:23:10 +0900 | ||
4 | Subject: [PATCH] random-util.c: sync dev_urandom implementation to | ||
5 | systemd-udev | ||
6 | |||
7 | Current dev_urandom() assumes that reading /dev/urandom | ||
8 | will never block regardless if the random pool is fully | ||
9 | initialized or not. | ||
10 | This assumption is no longer applicable since linux kerrnel | ||
11 | enforces the /dev/urandom entropy initialization from | ||
12 | v5.18-rc2 with the commit: | ||
13 | 48bff1053c17 ("random: opportunistically initialize on /dev/urandom reads"). | ||
14 | |||
15 | With this, when we use the linux v5.18-rc2 or later, | ||
16 | dev_urandom() will block if enough random pool is not supplied. | ||
17 | It causes the boot delay, typically 1024msec(4msec * 256 = 1024msec) | ||
18 | delay to fill the 256 bits entropy for the case CONFIG_HZ=250. | ||
19 | |||
20 | To prevent this boot delay, this commit syncs dev_urandom() | ||
21 | implementation to the systemd-udev. | ||
22 | The systemd-udev implementation of reading /dev/urandom is as follows. | ||
23 | - Try to get random with calling getrandom(GRND_INSECURE) | ||
24 | - If kernel does not support GRND_INSECURE, fallback to GRND_NONBLOCK | ||
25 | - If enough entropy is not supplied, fallback to reading /dev/urandom, | ||
26 | this will block when the kernel version is v5.18-rc2 or later | ||
27 | |||
28 | With this modification, dev_urandom() tries not to block | ||
29 | as much as possible. | ||
30 | |||
31 | This modification still keeps the backword compatibility, | ||
32 | dev_random() will never block if the commit(48bff1053c17) is not | ||
33 | applied to the linux kernel, the behavior is same as before | ||
34 | in this case. | ||
35 | |||
36 | Upstream-Status: Backport [a49a3aaa460add6ae7ea208b4cac630e56fe1180] | ||
37 | Signed-off-by: Masahisa Kojima <kojima.masahisa@socionext.com> | ||
38 | --- | ||
39 | src/shared/missing.h | 4 +++ | ||
40 | src/shared/random-util.c | 70 ++++++++++++++++++---------------------- | ||
41 | 2 files changed, 35 insertions(+), 39 deletions(-) | ||
42 | |||
43 | diff --git a/src/shared/missing.h b/src/shared/missing.h | ||
44 | index 1967840cdbf3..1caec0f9207c 100644 | ||
45 | --- a/src/shared/missing.h | ||
46 | +++ b/src/shared/missing.h | ||
47 | @@ -79,6 +79,10 @@ static inline int getrandom(void *buffer, size_t count, unsigned flags) { | ||
48 | #define GRND_RANDOM 0x0002 | ||
49 | #endif | ||
50 | |||
51 | +#ifndef GRND_INSECURE | ||
52 | +#define GRND_INSECURE 0x0004 | ||
53 | +#endif | ||
54 | + | ||
55 | #ifndef BTRFS_IOCTL_MAGIC | ||
56 | #define BTRFS_IOCTL_MAGIC 0x94 | ||
57 | #endif | ||
58 | diff --git a/src/shared/random-util.c b/src/shared/random-util.c | ||
59 | index 01a28c8ef4e9..852b00e4ce2b 100644 | ||
60 | --- a/src/shared/random-util.c | ||
61 | +++ b/src/shared/random-util.c | ||
62 | @@ -31,45 +31,37 @@ | ||
63 | #include "util.h" | ||
64 | |||
65 | int dev_urandom(void *p, size_t n) { | ||
66 | - static int have_syscall = -1; | ||
67 | - | ||
68 | - _cleanup_close_ int fd = -1; | ||
69 | - int r; | ||
70 | - | ||
71 | - /* Gathers some randomness from the kernel. This call will | ||
72 | - * never block, and will always return some data from the | ||
73 | - * kernel, regardless if the random pool is fully initialized | ||
74 | - * or not. It thus makes no guarantee for the quality of the | ||
75 | - * returned entropy, but is good enough for or usual usecases | ||
76 | - * of seeding the hash functions for hashtable */ | ||
77 | - | ||
78 | - /* Use the getrandom() syscall unless we know we don't have | ||
79 | - * it, or when the requested size is too large for it. */ | ||
80 | - if (have_syscall != 0 || (size_t) (int) n != n) { | ||
81 | - r = getrandom(p, n, GRND_NONBLOCK); | ||
82 | - if (r == (int) n) { | ||
83 | - have_syscall = true; | ||
84 | - return 0; | ||
85 | - } | ||
86 | - | ||
87 | - if (r < 0) { | ||
88 | - if (errno == ENOSYS) | ||
89 | - /* we lack the syscall, continue with | ||
90 | - * reading from /dev/urandom */ | ||
91 | - have_syscall = false; | ||
92 | - else if (errno == EAGAIN) | ||
93 | - /* not enough entropy for now. Let's | ||
94 | - * remember to use the syscall the | ||
95 | - * next time, again, but also read | ||
96 | - * from /dev/urandom for now, which | ||
97 | - * doesn't care about the current | ||
98 | - * amount of entropy. */ | ||
99 | - have_syscall = true; | ||
100 | - else | ||
101 | - return -errno; | ||
102 | - } else | ||
103 | - /* too short read? */ | ||
104 | - return -ENODATA; | ||
105 | + static bool have_getrandom = true, have_grndinsecure = true; | ||
106 | + _cleanup_close_ int fd = -EBADF; | ||
107 | + | ||
108 | + if (n == 0) | ||
109 | + return 0; | ||
110 | + | ||
111 | + for (;;) { | ||
112 | + ssize_t l; | ||
113 | + | ||
114 | + if (!have_getrandom) | ||
115 | + break; | ||
116 | + | ||
117 | + l = getrandom(p, n, have_grndinsecure ? GRND_INSECURE : GRND_NONBLOCK); | ||
118 | + if (l > 0) { | ||
119 | + if ((size_t) l == n) | ||
120 | + return 0; /* Done reading, success. */ | ||
121 | + p = (uint8_t *) p + l; | ||
122 | + n -= l; | ||
123 | + continue; /* Interrupted by a signal; keep going. */ | ||
124 | + } else if (l == 0) | ||
125 | + break; /* Weird, so fallback to /dev/urandom. */ | ||
126 | + else if (errno == ENOSYS) { | ||
127 | + have_getrandom = false; | ||
128 | + break; /* No syscall, so fallback to /dev/urandom. */ | ||
129 | + } else if (errno == EINVAL && have_grndinsecure) { | ||
130 | + have_grndinsecure = false; | ||
131 | + continue; /* No GRND_INSECURE; fallback to GRND_NONBLOCK. */ | ||
132 | + } else if (errno == EAGAIN && !have_grndinsecure) | ||
133 | + break; /* Will block, but no GRND_INSECURE, so fallback to /dev/urandom. */ | ||
134 | + | ||
135 | + break; /* Unexpected, so just give up and fallback to /dev/urandom. */ | ||
136 | } | ||
137 | |||
138 | fd = open("/dev/urandom", O_RDONLY|O_CLOEXEC|O_NOCTTY); | ||
diff --git a/meta/recipes-core/udev/eudev_3.2.14.bb b/meta/recipes-core/udev/eudev_3.2.14.bb index 0e5610f77c..b3e7d092c5 100644 --- a/meta/recipes-core/udev/eudev_3.2.14.bb +++ b/meta/recipes-core/udev/eudev_3.2.14.bb | |||
@@ -13,6 +13,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \ | |||
13 | file://netifnames.patch \ | 13 | file://netifnames.patch \ |
14 | file://init \ | 14 | file://init \ |
15 | file://local.rules \ | 15 | file://local.rules \ |
16 | file://0001-random-util.c-sync-dev_urandom-implementation-to-sys.patch \ | ||
16 | " | 17 | " |
17 | 18 | ||
18 | SRC_URI[sha256sum] = "8da4319102f24abbf7fff5ce9c416af848df163b29590e666d334cc1927f006f" | 19 | SRC_URI[sha256sum] = "8da4319102f24abbf7fff5ce9c416af848df163b29590e666d334cc1927f006f" |
diff --git a/meta/recipes-core/util-linux/util-linux.inc b/meta/recipes-core/util-linux/util-linux.inc index 1dc30c0535..56162ab147 100644 --- a/meta/recipes-core/util-linux/util-linux.inc +++ b/meta/recipes-core/util-linux/util-linux.inc | |||
@@ -6,7 +6,7 @@ disk partitioning, kernel message management, filesystem creation, and system lo | |||
6 | 6 | ||
7 | SECTION = "base" | 7 | SECTION = "base" |
8 | 8 | ||
9 | LICENSE = "GPL-1.0-or-later & GPL-2.0-only & GPL-2.0-or-later & LGPL-2.1-or-later & BSD-2-Clause & BSD-3-Clause & BSD-4-Clause & MIT" | 9 | LICENSE = "GPL-1.0-or-later & GPL-2.0-only & GPL-2.0-or-later & LGPL-2.1-or-later & BSD-2-Clause & BSD-3-Clause & BSD-4-Clause-UC & MIT" |
10 | LICENSE:${PN}-fcntl-lock = "MIT" | 10 | LICENSE:${PN}-fcntl-lock = "MIT" |
11 | LICENSE:${PN}-fdisk = "GPL-1.0-or-later" | 11 | LICENSE:${PN}-fdisk = "GPL-1.0-or-later" |
12 | LICENSE:${PN}-libblkid = "LGPL-2.1-or-later" | 12 | LICENSE:${PN}-libblkid = "LGPL-2.1-or-later" |
diff --git a/meta/recipes-devtools/binutils/binutils-cross-canadian.inc b/meta/recipes-devtools/binutils/binutils-cross-canadian.inc index a322114b52..c1fda1a465 100644 --- a/meta/recipes-devtools/binutils/binutils-cross-canadian.inc +++ b/meta/recipes-devtools/binutils/binutils-cross-canadian.inc | |||
@@ -4,7 +4,7 @@ SUMMARY = "GNU binary utilities (cross-canadian for ${TARGET_ARCH} target)" | |||
4 | PN = "binutils-cross-canadian-${TRANSLATED_TARGET_ARCH}" | 4 | PN = "binutils-cross-canadian-${TRANSLATED_TARGET_ARCH}" |
5 | BPN = "binutils" | 5 | BPN = "binutils" |
6 | 6 | ||
7 | DEPENDS = "flex-native bison-native virtual/cross-sdk-cc virtual/nativesdk-libc nativesdk-zlib nativesdk-gettext nativesdk-flex" | 7 | DEPENDS = "flex-native bison-native virtual/nativesdk-cross-cc virtual/nativesdk-libc nativesdk-zlib nativesdk-gettext nativesdk-flex" |
8 | EXTRA_OECONF += "--with-sysroot=${SDKPATH}/sysroots/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS} \ | 8 | EXTRA_OECONF += "--with-sysroot=${SDKPATH}/sysroots/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS} \ |
9 | --enable-poison-system-directories \ | 9 | --enable-poison-system-directories \ |
10 | " | 10 | " |
diff --git a/meta/recipes-devtools/cmake/cmake-native_3.31.3.bb b/meta/recipes-devtools/cmake/cmake-native_3.31.4.bb index e285a17681..e285a17681 100644 --- a/meta/recipes-devtools/cmake/cmake-native_3.31.3.bb +++ b/meta/recipes-devtools/cmake/cmake-native_3.31.4.bb | |||
diff --git a/meta/recipes-devtools/cmake/cmake.inc b/meta/recipes-devtools/cmake/cmake.inc index 14cd9ffc5e..f1410a2c4b 100644 --- a/meta/recipes-devtools/cmake/cmake.inc +++ b/meta/recipes-devtools/cmake/cmake.inc | |||
@@ -20,7 +20,7 @@ SRC_URI = "https://cmake.org/files/v${CMAKE_MAJOR_VERSION}/cmake-${PV}.tar.gz \ | |||
20 | file://0001-CMakeDetermineCompilerABI-Strip-pipe-from-compile-fl.patch \ | 20 | file://0001-CMakeDetermineCompilerABI-Strip-pipe-from-compile-fl.patch \ |
21 | " | 21 | " |
22 | 22 | ||
23 | SRC_URI[sha256sum] = "fac45bc6d410b49b3113ab866074888d6c9e9dc81a141874446eb239ac38cb87" | 23 | SRC_URI[sha256sum] = "a6130bfe75f5ba5c73e672e34359f7c0a1931521957e8393a5c2922c8b0f7f25" |
24 | 24 | ||
25 | UPSTREAM_CHECK_REGEX = "cmake-(?P<pver>\d+(\.\d+)+)\.tar" | 25 | UPSTREAM_CHECK_REGEX = "cmake-(?P<pver>\d+(\.\d+)+)\.tar" |
26 | 26 | ||
diff --git a/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineCompilerABI-Strip-pipe-from-compile-fl.patch b/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineCompilerABI-Strip-pipe-from-compile-fl.patch index 68c1020a42..cf00964a9c 100644 --- a/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineCompilerABI-Strip-pipe-from-compile-fl.patch +++ b/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineCompilerABI-Strip-pipe-from-compile-fl.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From d6e3cb98ffa81c6234ad5a563354ef5f442e1bb3 Mon Sep 17 00:00:00 2001 | 1 | From 969b2d07ad955fdc117bf2ea30305a5b2e74ea76 Mon Sep 17 00:00:00 2001 |
2 | From: Philip Lorenz <philip.lorenz@bmw.de> | 2 | From: Philip Lorenz <philip.lorenz@bmw.de> |
3 | Date: Mon, 3 Jun 2024 13:19:24 +0200 | 3 | Date: Mon, 3 Jun 2024 13:19:24 +0200 |
4 | Subject: [PATCH] CMakeDetermineCompilerABI: Strip -pipe from compile flags | 4 | Subject: [PATCH] CMakeDetermineCompilerABI: Strip -pipe from compile flags |
diff --git a/meta/recipes-devtools/cmake/cmake/0001-CMakeLists.txt-disable-USE_NGHTTP2.patch b/meta/recipes-devtools/cmake/cmake/0001-CMakeLists.txt-disable-USE_NGHTTP2.patch index fe3bf33c60..a01e3fe8c7 100644 --- a/meta/recipes-devtools/cmake/cmake/0001-CMakeLists.txt-disable-USE_NGHTTP2.patch +++ b/meta/recipes-devtools/cmake/cmake/0001-CMakeLists.txt-disable-USE_NGHTTP2.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 3f9b36a52f12e8f8860cf4337acc9a9514a2095b Mon Sep 17 00:00:00 2001 | 1 | From 8faeaefaf00f8d443511077b82624a8bd19cf725 Mon Sep 17 00:00:00 2001 |
2 | From: Changqing Li <changqing.li@windriver.com> | 2 | From: Changqing Li <changqing.li@windriver.com> |
3 | Date: Wed, 28 Dec 2022 17:51:27 +0800 | 3 | Date: Wed, 28 Dec 2022 17:51:27 +0800 |
4 | Subject: [PATCH] CMakeLists.txt: disable USE_NGHTTP2 | 4 | Subject: [PATCH] CMakeLists.txt: disable USE_NGHTTP2 |
diff --git a/meta/recipes-devtools/cmake/cmake/0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch b/meta/recipes-devtools/cmake/cmake/0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch index ea4c76f99f..95ae9108aa 100644 --- a/meta/recipes-devtools/cmake/cmake/0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch +++ b/meta/recipes-devtools/cmake/cmake/0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 7a4c1ed7b4dd038ef99c4a82e1d27743b2801757 Mon Sep 17 00:00:00 2001 | 1 | From c0ca5859788189a81c53face2ab5eaeadc1236b4 Mon Sep 17 00:00:00 2001 |
2 | From: Otavio Salvador <otavio@ossystems.com.br> | 2 | From: Otavio Salvador <otavio@ossystems.com.br> |
3 | Date: Thu, 5 Jul 2018 10:28:04 -0300 | 3 | Date: Thu, 5 Jul 2018 10:28:04 -0300 |
4 | Subject: [PATCH] Disable use of ext2fs/ext2_fs.h by cmake's internal | 4 | Subject: [PATCH] Disable use of ext2fs/ext2_fs.h by cmake's internal |
diff --git a/meta/recipes-devtools/cmake/cmake_3.31.3.bb b/meta/recipes-devtools/cmake/cmake_3.31.4.bb index 9146fa8c0f..9146fa8c0f 100644 --- a/meta/recipes-devtools/cmake/cmake_3.31.3.bb +++ b/meta/recipes-devtools/cmake/cmake_3.31.4.bb | |||
diff --git a/meta/recipes-devtools/fmt/files/fix-gcc9.patch b/meta/recipes-devtools/fmt/files/fix-gcc9.patch new file mode 100644 index 0000000000..1d67f7094d --- /dev/null +++ b/meta/recipes-devtools/fmt/files/fix-gcc9.patch | |||
@@ -0,0 +1,26 @@ | |||
1 | From 5f0572acdca120e11f6d810765d7a6a3c593fcbb Mon Sep 17 00:00:00 2001 | ||
2 | From: Victor Zverovich <viz@meta.com> | ||
3 | Date: Sat, 18 Jan 2025 09:00:22 -0800 | ||
4 | Subject: [PATCH] Workaround a compilation error on gcc 9.4 | ||
5 | |||
6 | Upstream-Status: Backport [5f0572acdca120e11f6d810765d7a6a3c593fcbb] | ||
7 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
8 | --- | ||
9 | include/fmt/format.h | 4 +++- | ||
10 | 1 file changed, 3 insertions(+), 1 deletion(-) | ||
11 | |||
12 | diff --git a/include/fmt/format.h b/include/fmt/format.h | ||
13 | index 9cd523a9e6a5..4466b4f4d24b 100644 | ||
14 | --- a/include/fmt/format.h | ||
15 | +++ b/include/fmt/format.h | ||
16 | @@ -227,7 +227,9 @@ FMT_CONSTEXPR inline void abort_fuzzing_if(bool condition) { | ||
17 | #if defined(FMT_USE_STRING_VIEW) | ||
18 | template <typename Char> using std_string_view = std::basic_string_view<Char>; | ||
19 | #else | ||
20 | -template <typename T> struct std_string_view {}; | ||
21 | +template <typename Char> struct std_string_view { | ||
22 | + operator basic_string_view<Char>() const; | ||
23 | +}; | ||
24 | #endif | ||
25 | |||
26 | template <typename Char, Char... C> struct string_literal { | ||
diff --git a/meta/recipes-devtools/fmt/fmt_11.1.1.bb b/meta/recipes-devtools/fmt/fmt_11.1.1.bb index a99a377ad4..cfacd81a11 100644 --- a/meta/recipes-devtools/fmt/fmt_11.1.1.bb +++ b/meta/recipes-devtools/fmt/fmt_11.1.1.bb | |||
@@ -4,7 +4,8 @@ HOMEPAGE = "https://fmt.dev" | |||
4 | LICENSE = "MIT" | 4 | LICENSE = "MIT" |
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=b9257785fc4f3803a4b71b76c1412729" | 5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=b9257785fc4f3803a4b71b76c1412729" |
6 | 6 | ||
7 | SRC_URI = "git://github.com/fmtlib/fmt;branch=master;protocol=https" | 7 | SRC_URI = "git://github.com/fmtlib/fmt;branch=master;protocol=https \ |
8 | file://fix-gcc9.patch" | ||
8 | SRCREV = "e3ddede6c4ee818825c4e5a6dfa1d384860c27d9" | 9 | SRCREV = "e3ddede6c4ee818825c4e5a6dfa1d384860c27d9" |
9 | 10 | ||
10 | S = "${WORKDIR}/git" | 11 | S = "${WORKDIR}/git" |
diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc index a97329e58f..9b55ec21e0 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc +++ b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc | |||
@@ -3,7 +3,7 @@ inherit cross-canadian | |||
3 | SUMMARY = "GNU cc and gcc C compilers (cross-canadian for ${TARGET_ARCH} target)" | 3 | SUMMARY = "GNU cc and gcc C compilers (cross-canadian for ${TARGET_ARCH} target)" |
4 | PN = "gcc-cross-canadian-${TRANSLATED_TARGET_ARCH}" | 4 | PN = "gcc-cross-canadian-${TRANSLATED_TARGET_ARCH}" |
5 | 5 | ||
6 | DEPENDS = "virtual/cross-sdk-cc virtual/cross-cc virtual/cross-sdk-binutils virtual/nativesdk-libc nativesdk-gettext flex-native virtual/libc" | 6 | DEPENDS = "virtual/nativesdk-cross-cc virtual/cross-cc virtual/nativesdk-cross-binutils virtual/nativesdk-libc nativesdk-gettext flex-native virtual/libc" |
7 | 7 | ||
8 | GCCMULTILIB = "--enable-multilib" | 8 | GCCMULTILIB = "--enable-multilib" |
9 | 9 | ||
diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk.inc b/meta/recipes-devtools/gcc/gcc-crosssdk.inc index 1adce65cf8..4397dd898d 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk.inc +++ b/meta/recipes-devtools/gcc/gcc-crosssdk.inc | |||
@@ -8,7 +8,7 @@ SYSTEMLIBS1 = "${SDKPATHNATIVE}${libdir_nativesdk}/" | |||
8 | 8 | ||
9 | GCCMULTILIB = "--disable-multilib" | 9 | GCCMULTILIB = "--disable-multilib" |
10 | 10 | ||
11 | DEPENDS = "virtual/cross-sdk-binutils gettext-native ${NATIVEDEPS}" | 11 | DEPENDS = "virtual/nativesdk-cross-binutils gettext-native ${NATIVEDEPS}" |
12 | PROVIDES = "virtual/cross-sdk-cc virtual/cross-sdk-c++" | 12 | PROVIDES = "virtual/nativesdk-cross-cc virtual/nativesdk-cross-c++" |
13 | 13 | ||
14 | gcc_multilib_setup[vardepsexclude] = "MULTILIB_VARIANTS" | 14 | gcc_multilib_setup[vardepsexclude] = "MULTILIB_VARIANTS" |
diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc b/meta/recipes-devtools/gcc/gcc-runtime.inc index 7380123ab6..291ace2d09 100644 --- a/meta/recipes-devtools/gcc/gcc-runtime.inc +++ b/meta/recipes-devtools/gcc/gcc-runtime.inc | |||
@@ -157,7 +157,7 @@ do_install:append:class-target () { | |||
157 | 157 | ||
158 | INHIBIT_DEFAULT_DEPS = "1" | 158 | INHIBIT_DEFAULT_DEPS = "1" |
159 | DEPENDS = "virtual/cross-cc virtual/cross-c++ ${MLPREFIX}libgcc virtual/${MLPREFIX}libc" | 159 | DEPENDS = "virtual/cross-cc virtual/cross-c++ ${MLPREFIX}libgcc virtual/${MLPREFIX}libc" |
160 | DEPENDS:class-nativesdk = "virtual/cross-sdk-cc virtual/cross-sdk-c++ ${MLPREFIX}libgcc virtual/${MLPREFIX}libc" | 160 | DEPENDS:class-nativesdk = "virtual/nativesdk-cross-cc virtual/nativesdk-cross-c++ ${MLPREFIX}libgcc virtual/${MLPREFIX}libc" |
161 | PROVIDES = "virtual/${MLPREFIX}compilerlibs" | 161 | PROVIDES = "virtual/${MLPREFIX}compilerlibs" |
162 | 162 | ||
163 | BBCLASSEXTEND = "nativesdk" | 163 | BBCLASSEXTEND = "nativesdk" |
diff --git a/meta/recipes-devtools/gcc/gcc-sanitizers.inc b/meta/recipes-devtools/gcc/gcc-sanitizers.inc index 4163e87e1f..6c81d30243 100644 --- a/meta/recipes-devtools/gcc/gcc-sanitizers.inc +++ b/meta/recipes-devtools/gcc/gcc-sanitizers.inc | |||
@@ -11,6 +11,10 @@ EXTRA_OECONF_PATHS = "\ | |||
11 | --with-build-sysroot=${STAGING_DIR_TARGET} \ | 11 | --with-build-sysroot=${STAGING_DIR_TARGET} \ |
12 | " | 12 | " |
13 | 13 | ||
14 | # Workaround for this issue: https://github.com/llvm/llvm-project/issues/65144 on aarch64 | ||
15 | # compiler-rt/sanitizers/aarch64: CHECK failed: sanitizer_allocator_primary64.h:133 | ||
16 | CXXFLAGS:append:aarch64 = " -DSANITIZER_CAN_USE_ALLOCATOR64=0" | ||
17 | |||
14 | do_configure () { | 18 | do_configure () { |
15 | rm -rf ${B}/${TARGET_SYS}/libsanitizer/ | 19 | rm -rf ${B}/${TARGET_SYS}/libsanitizer/ |
16 | mkdir -p ${B}/${TARGET_SYS}/libsanitizer/ | 20 | mkdir -p ${B}/${TARGET_SYS}/libsanitizer/ |
diff --git a/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch b/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch index 367c9e3821..8523af1281 100644 --- a/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch +++ b/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch | |||
@@ -160,10 +160,23 @@ index f82f7d2817b..1da91813b0e 100644 | |||
160 | @opindex Wno-float-equal | 160 | @opindex Wno-float-equal |
161 | @item -Wfloat-equal | 161 | @item -Wfloat-equal |
162 | diff --git a/gcc/gcc.cc b/gcc/gcc.cc | 162 | diff --git a/gcc/gcc.cc b/gcc/gcc.cc |
163 | index 728332b8153..343e4915097 100644 | 163 | index 728332b8153..a63f128cb95 100644 |
164 | --- a/gcc/gcc.cc | 164 | --- a/gcc/gcc.cc |
165 | +++ b/gcc/gcc.cc | 165 | +++ b/gcc/gcc.cc |
166 | @@ -1159,6 +1159,8 @@ proper position among the other output files. */ | 166 | @@ -902,6 +902,12 @@ proper position among the other output files. */ |
167 | #define ASM_MAP "" | ||
168 | #endif | ||
169 | |||
170 | +#ifdef POISON_BY_DEFAULT | ||
171 | +#define POISON_IS_ERROR " -Werror=poison-system-directories" | ||
172 | +#else | ||
173 | +#define POISON_IS_ERROR | ||
174 | +#endif | ||
175 | + | ||
176 | /* Assembler options for compressed debug sections. */ | ||
177 | #if HAVE_LD_COMPRESS_DEBUG == 0 | ||
178 | /* Reject if the linker cannot write compressed debug sections. */ | ||
179 | @@ -1159,6 +1163,8 @@ proper position among the other output files. */ | ||
167 | "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \ | 180 | "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \ |
168 | "%X %{o*} %{e*} %{N} %{n} %{r}\ | 181 | "%X %{o*} %{e*} %{N} %{n} %{r}\ |
169 | %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \ | 182 | %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \ |
@@ -172,20 +185,24 @@ index 728332b8153..343e4915097 100644 | |||
172 | %{static|no-pie|static-pie:} %@{L*} %(link_libgcc) " \ | 185 | %{static|no-pie|static-pie:} %@{L*} %(link_libgcc) " \ |
173 | VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \ | 186 | VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \ |
174 | %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\ | 187 | %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\ |
175 | @@ -1260,8 +1262,11 @@ static const char *cpp_unique_options = | 188 | @@ -1261,7 +1267,7 @@ static const char *cpp_options = |
176 | static const char *cpp_options = | ||
177 | "%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\ | 189 | "%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\ |
178 | %{f*} %{g*:%{%:debug-level-gt(0):%{g*}\ | 190 | %{f*} %{g*:%{%:debug-level-gt(0):%{g*}\ |
179 | - %{!fno-working-directory:-fworking-directory}}} %{O*}\ | 191 | %{!fno-working-directory:-fworking-directory}}} %{O*}\ |
180 | - %{undef} %{save-temps*:-fpch-preprocess}"; | 192 | - %{undef} %{save-temps*:-fpch-preprocess}"; |
181 | + %{!fno-working-directory:-fworking-directory}}} %{O*}" | 193 | + %{undef} %{save-temps*:-fpch-preprocess}" POISON_IS_ERROR; |
182 | +#ifdef POISON_BY_DEFAULT | ||
183 | + " -Werror=poison-system-directories" | ||
184 | +#endif | ||
185 | + " %{undef} %{save-temps*:-fpch-preprocess}"; | ||
186 | 194 | ||
187 | /* Pass -d* flags, possibly modifying -dumpdir, -dumpbase et al. | 195 | /* Pass -d* flags, possibly modifying -dumpdir, -dumpbase et al. |
188 | 196 | ||
197 | @@ -1290,7 +1296,7 @@ static const char *cc1_options = | ||
198 | %{coverage:-fprofile-arcs -ftest-coverage}\ | ||
199 | %{fprofile-arcs|fcondition-coverage|fprofile-generate*|coverage:\ | ||
200 | %{!fprofile-update=single:\ | ||
201 | - %{pthread:-fprofile-update=prefer-atomic}}}"; | ||
202 | + %{pthread:-fprofile-update=prefer-atomic}}}" POISON_IS_ERROR; | ||
203 | |||
204 | static const char *asm_options = | ||
205 | "%{-target-help:%:print-asm-header()} " | ||
189 | diff --git a/gcc/incpath.cc b/gcc/incpath.cc | 206 | diff --git a/gcc/incpath.cc b/gcc/incpath.cc |
190 | index 64cdd2f4a..89f42900d 100644 | 207 | index 64cdd2f4a..89f42900d 100644 |
191 | --- a/gcc/incpath.cc | 208 | --- a/gcc/incpath.cc |
diff --git a/meta/recipes-devtools/gdb/gdb-cross-canadian.inc b/meta/recipes-devtools/gdb/gdb-cross-canadian.inc index b4b6742d13..9150c196a8 100644 --- a/meta/recipes-devtools/gdb/gdb-cross-canadian.inc +++ b/meta/recipes-devtools/gdb/gdb-cross-canadian.inc | |||
@@ -7,7 +7,7 @@ PN = "gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}" | |||
7 | BPN = "gdb" | 7 | BPN = "gdb" |
8 | 8 | ||
9 | DEPENDS = "nativesdk-ncurses nativesdk-expat nativesdk-gettext nativesdk-gmp nativesdk-mpfr \ | 9 | DEPENDS = "nativesdk-ncurses nativesdk-expat nativesdk-gettext nativesdk-gmp nativesdk-mpfr \ |
10 | virtual/cross-sdk-cc virtual/cross-sdk-binutils virtual/nativesdk-libc" | 10 | virtual/nativesdk-cross-cc virtual/nativesdk-cross-binutils virtual/nativesdk-libc" |
11 | 11 | ||
12 | GDBPROPREFIX = "--program-prefix='${TARGET_PREFIX}'" | 12 | GDBPROPREFIX = "--program-prefix='${TARGET_PREFIX}'" |
13 | 13 | ||
diff --git a/meta/recipes-devtools/gdb/gdb-cross-canadian_15.2.bb b/meta/recipes-devtools/gdb/gdb-cross-canadian_16.1.bb index 4ab2b7156d..4ab2b7156d 100644 --- a/meta/recipes-devtools/gdb/gdb-cross-canadian_15.2.bb +++ b/meta/recipes-devtools/gdb/gdb-cross-canadian_16.1.bb | |||
diff --git a/meta/recipes-devtools/gdb/gdb-cross_15.2.bb b/meta/recipes-devtools/gdb/gdb-cross_16.1.bb index 3b654a2f0d..3b654a2f0d 100644 --- a/meta/recipes-devtools/gdb/gdb-cross_15.2.bb +++ b/meta/recipes-devtools/gdb/gdb-cross_16.1.bb | |||
diff --git a/meta/recipes-devtools/gdb/gdb.inc b/meta/recipes-devtools/gdb/gdb.inc index ff0db68da7..41f92be3cb 100644 --- a/meta/recipes-devtools/gdb/gdb.inc +++ b/meta/recipes-devtools/gdb/gdb.inc | |||
@@ -12,6 +12,5 @@ SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \ | |||
12 | file://0005-Change-order-of-CFLAGS.patch \ | 12 | file://0005-Change-order-of-CFLAGS.patch \ |
13 | file://0006-Fix-invalid-sigprocmask-call.patch \ | 13 | file://0006-Fix-invalid-sigprocmask-call.patch \ |
14 | file://0007-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch \ | 14 | file://0007-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch \ |
15 | file://0001-Fix-Wenum-constexpr-conversion-in-enum-flags.h.patch \ | ||
16 | " | 15 | " |
17 | SRC_URI[sha256sum] = "83350ccd35b5b5a0cba6b334c41294ea968158c573940904f00b92f76345314d" | 16 | SRC_URI[sha256sum] = "c2cc5ccca029b7a7c3879ce8a96528fdfd056b4d884f2b0511e8f7bc723355c6" |
diff --git a/meta/recipes-devtools/gdb/gdb/0001-Fix-Wenum-constexpr-conversion-in-enum-flags.h.patch b/meta/recipes-devtools/gdb/gdb/0001-Fix-Wenum-constexpr-conversion-in-enum-flags.h.patch deleted file mode 100644 index 8866db2e93..0000000000 --- a/meta/recipes-devtools/gdb/gdb/0001-Fix-Wenum-constexpr-conversion-in-enum-flags.h.patch +++ /dev/null | |||
@@ -1,313 +0,0 @@ | |||
1 | From dd22f64329c46797b3a3de2605ad1fa14cf77dd4 Mon Sep 17 00:00:00 2001 | ||
2 | From: Carlos Galvez <carlosgalvezp@gmail.com> | ||
3 | Date: Sun, 30 Jun 2024 21:36:24 +0200 | ||
4 | Subject: [PATCH] Fix -Wenum-constexpr-conversion in enum-flags.h | ||
5 | |||
6 | This fixes PR 31331: | ||
7 | https://sourceware.org/bugzilla/show_bug.cgi?id=31331 | ||
8 | |||
9 | Currently, enum-flags.h is suppressing the warning | ||
10 | -Wenum-constexpr-conversion coming from recent versions of Clang. | ||
11 | This warning is intended to be made a compiler error | ||
12 | (non-downgradeable) in future versions of Clang: | ||
13 | |||
14 | https://github.com/llvm/llvm-project/issues/59036 | ||
15 | |||
16 | The rationale is that casting a value of an integral type into an | ||
17 | enumeration is Undefined Behavior if the value does not fit in the | ||
18 | range of values of the enum: | ||
19 | https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1766 | ||
20 | |||
21 | Undefined Behavior is not allowed in constant expressions, leading to | ||
22 | an ill-formed program. | ||
23 | |||
24 | In this case, in enum-flags.h, we are casting the value -1 to an enum | ||
25 | of a positive range only, which is UB as per the Standard and thus not | ||
26 | allowed in a constexpr context. | ||
27 | |||
28 | The purpose of doing this instead of using std::underlying_type is | ||
29 | because, for C-style enums, std::underlying_type typically returns | ||
30 | "unsigned int". However, when operating with it arithmetically, the | ||
31 | enum is promoted to *signed* int, which is what we want to avoid. | ||
32 | |||
33 | This patch solves this issue as follows: | ||
34 | |||
35 | * Use std::underlying_type and remove the custom enum_underlying_type. | ||
36 | |||
37 | * Ensure that operator~ is called always on an unsigned integer. We do | ||
38 | this by casting the input enum into std::size_t, which can fit any | ||
39 | unsigned integer. We have the guarantee that the cast is safe, | ||
40 | because we have checked that the underlying type is unsigned. If the | ||
41 | enum had negative values, the underlying type would be signed. | ||
42 | |||
43 | This solves the issue with C-style enums, but also solves a hidden | ||
44 | issue: enums with underlying type of std::uint8_t or std::uint16_t are | ||
45 | *also* promoted to signed int. Now they are all explicitly casted | ||
46 | to the largest unsigned int type and operator~ is safe to use. | ||
47 | |||
48 | * There is one more thing that needs fix. Currently, operator~ is | ||
49 | implemented as follows: | ||
50 | |||
51 | return (enum_type) ~underlying(e); | ||
52 | |||
53 | After applying ~underlying(e), the result is a very large value, | ||
54 | which we then cast to "enum_type". This cast is Undefined Behavior | ||
55 | if the large value does not fit in the range of the enum. For | ||
56 | C++ enums (scoped and/or with explicit underlying type), the range | ||
57 | of the enum is the entire range of the underlying type, so the cast | ||
58 | is safe. However, for C-style enums, the range is the smallest | ||
59 | bit-field that can hold all the values of the enumeration. So the | ||
60 | range is a lot smaller and casting a large value to the enum would | ||
61 | invoke Undefined Behavior. | ||
62 | |||
63 | To solve this problem, we create a new trait | ||
64 | EnumHasFixedUnderlyingType, to ensure operator~ may only be called | ||
65 | on C++-style enums. This behavior is roughly the same as what we | ||
66 | had on trunk, but relying on different properties of the enums. | ||
67 | |||
68 | * Once this is implemented, the following tests fail to compile: | ||
69 | |||
70 | CHECK_VALID (true, int, true ? EF () : EF2 ()) | ||
71 | |||
72 | This is because it expects the enums to be promoted to signed int, | ||
73 | instead of unsigned int (which is the true underlying type). | ||
74 | |||
75 | I propose to remove these tests altogether, because: | ||
76 | |||
77 | - The comment nearby say they are not very important. | ||
78 | - Comparing 2 enums of different type like that is strange, relies | ||
79 | on integer promotions and thus hurts readability. As per comments | ||
80 | in the related PR, we likely don't want this type of code in gdb | ||
81 | code anyway, so there's no point in testing it. | ||
82 | - Most importantly, this type of comparison will be ill-formed in | ||
83 | C++26 for regular enums, so enum_flags does not need to emulate | ||
84 | that. | ||
85 | |||
86 | Since this is the only place where the warning was suppressed, remove | ||
87 | also the corresponding macro in include/diagnostics.h. | ||
88 | |||
89 | The change has been tested by running the entire gdb test suite | ||
90 | (make check) and comparing the results (testsuite/gdb.sum) against | ||
91 | trunk. No noticeable differences have been observed. | ||
92 | Tested-by: Keith Seitz <keiths@redhat.com> | ||
93 | |||
94 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
95 | Upstream-Status: Submitted [https://patchwork.sourceware.org/project/gdb/patch/20240630193624.2906762-1-carlosgalvezp@gmail.com/] | ||
96 | --- | ||
97 | gdb/unittests/enum-flags-selftests.c | 27 ------- | ||
98 | gdbsupport/enum-flags.h | 104 ++++++++++++++++++--------- | ||
99 | include/diagnostics.h | 5 -- | ||
100 | 3 files changed, 70 insertions(+), 66 deletions(-) | ||
101 | |||
102 | diff --git a/gdb/unittests/enum-flags-selftests.c b/gdb/unittests/enum-flags-selftests.c | ||
103 | index b55d8c3..02563e5 100644 | ||
104 | --- a/gdb/unittests/enum-flags-selftests.c | ||
105 | +++ b/gdb/unittests/enum-flags-selftests.c | ||
106 | @@ -233,33 +233,6 @@ CHECK_VALID (true, UEF, ~UEF ()) | ||
107 | CHECK_VALID (true, EF, true ? EF () : RE ()) | ||
108 | CHECK_VALID (true, EF, true ? RE () : EF ()) | ||
109 | |||
110 | -/* These are valid, but it's not a big deal since you won't be able to | ||
111 | - assign the resulting integer to an enum or an enum_flags without a | ||
112 | - cast. | ||
113 | - | ||
114 | - The latter two tests are disabled on older GCCs because they | ||
115 | - incorrectly fail with gcc 4.8 and 4.9 at least. Running the test | ||
116 | - outside a SFINAE context shows: | ||
117 | - | ||
118 | - invalid user-defined conversion from ‘EF’ to ‘RE2’ | ||
119 | - | ||
120 | - They've been confirmed to compile/pass with gcc 5.3, gcc 7.1 and | ||
121 | - clang 3.7. */ | ||
122 | - | ||
123 | -CHECK_VALID (true, int, true ? EF () : EF2 ()) | ||
124 | -CHECK_VALID (true, int, true ? EF2 () : EF ()) | ||
125 | -CHECK_VALID (true, int, true ? EF () : RE2 ()) | ||
126 | -CHECK_VALID (true, int, true ? RE2 () : EF ()) | ||
127 | - | ||
128 | -/* Same, but with an unsigned enum. */ | ||
129 | - | ||
130 | -typedef unsigned int uns; | ||
131 | - | ||
132 | -CHECK_VALID (true, uns, true ? EF () : UEF ()) | ||
133 | -CHECK_VALID (true, uns, true ? UEF () : EF ()) | ||
134 | -CHECK_VALID (true, uns, true ? EF () : URE ()) | ||
135 | -CHECK_VALID (true, uns, true ? URE () : EF ()) | ||
136 | - | ||
137 | /* Unfortunately this can't work due to the way C++ computes the | ||
138 | return type of the ternary conditional operator. int isn't | ||
139 | implicitly convertible to the raw enum type, so the type of the | ||
140 | diff --git a/gdbsupport/enum-flags.h b/gdbsupport/enum-flags.h | ||
141 | index 5078004..acec203 100644 | ||
142 | --- a/gdbsupport/enum-flags.h | ||
143 | +++ b/gdbsupport/enum-flags.h | ||
144 | @@ -75,30 +75,6 @@ | ||
145 | namespace. The compiler finds the corresponding | ||
146 | is_enum_flags_enum_type function via ADL. */ | ||
147 | |||
148 | -/* Note that std::underlying_type<enum_type> is not what we want here, | ||
149 | - since that returns unsigned int even when the enum decays to signed | ||
150 | - int. */ | ||
151 | -template<int size, bool sign> class integer_for_size { typedef void type; }; | ||
152 | -template<> struct integer_for_size<1, 0> { typedef uint8_t type; }; | ||
153 | -template<> struct integer_for_size<2, 0> { typedef uint16_t type; }; | ||
154 | -template<> struct integer_for_size<4, 0> { typedef uint32_t type; }; | ||
155 | -template<> struct integer_for_size<8, 0> { typedef uint64_t type; }; | ||
156 | -template<> struct integer_for_size<1, 1> { typedef int8_t type; }; | ||
157 | -template<> struct integer_for_size<2, 1> { typedef int16_t type; }; | ||
158 | -template<> struct integer_for_size<4, 1> { typedef int32_t type; }; | ||
159 | -template<> struct integer_for_size<8, 1> { typedef int64_t type; }; | ||
160 | - | ||
161 | -template<typename T> | ||
162 | -struct enum_underlying_type | ||
163 | -{ | ||
164 | - DIAGNOSTIC_PUSH | ||
165 | - DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION | ||
166 | - typedef typename | ||
167 | - integer_for_size<sizeof (T), static_cast<bool>(T (-1) < T (0))>::type | ||
168 | - type; | ||
169 | - DIAGNOSTIC_POP | ||
170 | -}; | ||
171 | - | ||
172 | namespace enum_flags_detail | ||
173 | { | ||
174 | |||
175 | @@ -119,10 +95,62 @@ struct zero_type; | ||
176 | /* gdb::Requires trait helpers. */ | ||
177 | template <typename enum_type> | ||
178 | using EnumIsUnsigned | ||
179 | - = std::is_unsigned<typename enum_underlying_type<enum_type>::type>; | ||
180 | + = std::is_unsigned<typename std::underlying_type<enum_type>::type>; | ||
181 | + | ||
182 | +/* Helper to detect whether an enum has a fixed underlying type. This can be | ||
183 | + achieved by using a scoped enum (in which case the type is "int") or | ||
184 | + an explicit underlying type. C-style enums that are unscoped or do not | ||
185 | + have an explicit underlying type have an implementation-defined underlying | ||
186 | + type. | ||
187 | + | ||
188 | + https://timsong-cpp.github.io/cppwp/n4659/dcl.enum#5 | ||
189 | + | ||
190 | + We need this trait in order to ensure that operator~ below does NOT | ||
191 | + operate on old-style enums. This is because we apply operator~ on | ||
192 | + the value and then cast the result to the enum_type. This is however | ||
193 | + Undefined Behavior if the result does not fit in the range of possible | ||
194 | + values for the enum. For enums with fixed underlying type, the entire | ||
195 | + range of the integer is available. However, for old-style enums, the range | ||
196 | + is only the smallest bit-field that can hold all the values of the | ||
197 | + enumeration, typically much smaller than the underlying integer: | ||
198 | + | ||
199 | + https://timsong-cpp.github.io/cppwp/n4659/expr.static.cast#10 | ||
200 | + https://timsong-cpp.github.io/cppwp/n4659/dcl.enum#8 | ||
201 | + | ||
202 | + To implement this, we leverage the fact that, since C++17, enums with | ||
203 | + fixed underlying type can be list-initialized from an integer: | ||
204 | + https://timsong-cpp.github.io/cppwp/n4659/dcl.init.list#3.7 | ||
205 | + | ||
206 | + Old-style enums cannot be initialized like that, leading to ill-formed | ||
207 | + code. | ||
208 | + | ||
209 | + We then use this together with SFINAE to create the desired trait. | ||
210 | + | ||
211 | +*/ | ||
212 | +// Primary template | ||
213 | +template <typename enum_type, typename = void> | ||
214 | +struct EnumHasFixedUnderlyingType : std::false_type | ||
215 | +{ | ||
216 | + static_assert(std::is_enum<enum_type>::value); | ||
217 | +}; | ||
218 | + | ||
219 | +// Specialization that is active only if enum_type can be list-initialized | ||
220 | +// from an integer (0). Only enums with fixed underlying type satisfy this | ||
221 | +// property in C++17. | ||
222 | +template <typename enum_type> | ||
223 | +struct EnumHasFixedUnderlyingType<enum_type, std::void_t<decltype(enum_type{0})>> : std::true_type | ||
224 | +{ | ||
225 | + static_assert(std::is_enum<enum_type>::value); | ||
226 | +}; | ||
227 | + | ||
228 | +template <typename enum_type> | ||
229 | +using EnumIsSafeForBitwiseComplement = std::conjunction< | ||
230 | + EnumIsUnsigned<enum_type>, | ||
231 | + EnumHasFixedUnderlyingType<enum_type> | ||
232 | +>; | ||
233 | + | ||
234 | template <typename enum_type> | ||
235 | -using EnumIsSigned | ||
236 | - = std::is_signed<typename enum_underlying_type<enum_type>::type>; | ||
237 | +using EnumIsUnsafeForBitwiseComplement = std::negation<EnumIsSafeForBitwiseComplement<enum_type>>; | ||
238 | |||
239 | } | ||
240 | |||
241 | @@ -131,7 +159,7 @@ class enum_flags | ||
242 | { | ||
243 | public: | ||
244 | typedef E enum_type; | ||
245 | - typedef typename enum_underlying_type<enum_type>::type underlying_type; | ||
246 | + typedef typename std::underlying_type<enum_type>::type underlying_type; | ||
247 | |||
248 | /* For to_string. Maps one enumerator of E to a string. */ | ||
249 | struct string_mapping | ||
250 | @@ -394,33 +422,41 @@ ENUM_FLAGS_GEN_COMP (operator!=, !=) | ||
251 | template <typename enum_type, | ||
252 | typename = is_enum_flags_enum_type_t<enum_type>, | ||
253 | typename | ||
254 | - = gdb::Requires<enum_flags_detail::EnumIsUnsigned<enum_type>>> | ||
255 | + = gdb::Requires<enum_flags_detail::EnumIsSafeForBitwiseComplement<enum_type>>> | ||
256 | constexpr enum_type | ||
257 | operator~ (enum_type e) | ||
258 | { | ||
259 | using underlying = typename enum_flags<enum_type>::underlying_type; | ||
260 | - return (enum_type) ~underlying (e); | ||
261 | + // Cast to std::size_t first, to prevent integer promotions from | ||
262 | + // enums with fixed underlying type std::uint8_t or std::uint16_t | ||
263 | + // to signed int. | ||
264 | + // This ensures we apply the bitwise complement on an unsigned type. | ||
265 | + return (enum_type)(underlying) ~std::size_t (e); | ||
266 | } | ||
267 | |||
268 | template <typename enum_type, | ||
269 | typename = is_enum_flags_enum_type_t<enum_type>, | ||
270 | - typename = gdb::Requires<enum_flags_detail::EnumIsSigned<enum_type>>> | ||
271 | + typename = gdb::Requires<enum_flags_detail::EnumIsUnsafeForBitwiseComplement<enum_type>>> | ||
272 | constexpr void operator~ (enum_type e) = delete; | ||
273 | |||
274 | template <typename enum_type, | ||
275 | typename = is_enum_flags_enum_type_t<enum_type>, | ||
276 | typename | ||
277 | - = gdb::Requires<enum_flags_detail::EnumIsUnsigned<enum_type>>> | ||
278 | + = gdb::Requires<enum_flags_detail::EnumIsSafeForBitwiseComplement<enum_type>>> | ||
279 | constexpr enum_flags<enum_type> | ||
280 | operator~ (enum_flags<enum_type> e) | ||
281 | { | ||
282 | using underlying = typename enum_flags<enum_type>::underlying_type; | ||
283 | - return (enum_type) ~underlying (e); | ||
284 | + // Cast to std::size_t first, to prevent integer promotions from | ||
285 | + // enums with fixed underlying type std::uint8_t or std::uint16_t | ||
286 | + // to signed int. | ||
287 | + // This ensures we apply the bitwise complement on an unsigned type. | ||
288 | + return (enum_type)(underlying) ~std::size_t (e); | ||
289 | } | ||
290 | |||
291 | template <typename enum_type, | ||
292 | typename = is_enum_flags_enum_type_t<enum_type>, | ||
293 | - typename = gdb::Requires<enum_flags_detail::EnumIsSigned<enum_type>>> | ||
294 | + typename = gdb::Requires<enum_flags_detail::EnumIsUnsafeForBitwiseComplement<enum_type>>> | ||
295 | constexpr void operator~ (enum_flags<enum_type> e) = delete; | ||
296 | |||
297 | /* Delete operator<< and operator>>. */ | ||
298 | diff --git a/include/diagnostics.h b/include/diagnostics.h | ||
299 | index 97e30ab..14575e2 100644 | ||
300 | --- a/include/diagnostics.h | ||
301 | +++ b/include/diagnostics.h | ||
302 | @@ -76,11 +76,6 @@ | ||
303 | # define DIAGNOSTIC_ERROR_SWITCH \ | ||
304 | DIAGNOSTIC_ERROR ("-Wswitch") | ||
305 | |||
306 | -# if __has_warning ("-Wenum-constexpr-conversion") | ||
307 | -# define DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION \ | ||
308 | - DIAGNOSTIC_IGNORE ("-Wenum-constexpr-conversion") | ||
309 | -# endif | ||
310 | - | ||
311 | #elif defined (__GNUC__) /* GCC */ | ||
312 | |||
313 | # define DIAGNOSTIC_IGNORE_DEPRECATED_DECLARATIONS \ | ||
diff --git a/meta/recipes-devtools/gdb/gdb/0002-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch b/meta/recipes-devtools/gdb/gdb/0002-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch index 56602b4116..69d4d51af0 100644 --- a/meta/recipes-devtools/gdb/gdb/0002-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch +++ b/meta/recipes-devtools/gdb/gdb/0002-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch | |||
@@ -16,8 +16,8 @@ index b51e2278f4b..f1bc07df0e9 100644 | |||
16 | --- a/gdb/nat/ppc-linux.h | 16 | --- a/gdb/nat/ppc-linux.h |
17 | +++ b/gdb/nat/ppc-linux.h | 17 | +++ b/gdb/nat/ppc-linux.h |
18 | @@ -18,7 +18,13 @@ | 18 | @@ -18,7 +18,13 @@ |
19 | #ifndef NAT_PPC_LINUX_H | 19 | #ifndef GDB_NAT_PPC_LINUX_H |
20 | #define NAT_PPC_LINUX_H | 20 | #define GDB_NAT_PPC_LINUX_H |
21 | 21 | ||
22 | +#if !defined(__GLIBC__) | 22 | +#if !defined(__GLIBC__) |
23 | +# define pt_regs uapi_pt_regs | 23 | +# define pt_regs uapi_pt_regs |
diff --git a/meta/recipes-devtools/gdb/gdb_15.2.bb b/meta/recipes-devtools/gdb/gdb_16.1.bb index 9c6db4ca2c..9c6db4ca2c 100644 --- a/meta/recipes-devtools/gdb/gdb_15.2.bb +++ b/meta/recipes-devtools/gdb/gdb_16.1.bb | |||
diff --git a/meta/recipes-devtools/go/go-1.22.8.inc b/meta/recipes-devtools/go/go-1.22.11.inc index 542519b930..21222bea4e 100644 --- a/meta/recipes-devtools/go/go-1.22.8.inc +++ b/meta/recipes-devtools/go/go-1.22.11.inc | |||
@@ -15,4 +15,4 @@ SRC_URI += "\ | |||
15 | file://0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch \ | 15 | file://0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch \ |
16 | file://0009-go-Filter-build-paths-on-staticly-linked-arches.patch \ | 16 | file://0009-go-Filter-build-paths-on-staticly-linked-arches.patch \ |
17 | " | 17 | " |
18 | SRC_URI[main.sha256sum] = "df12c23ebf19dea0f4bf46a22cbeda4a3eca6f474f318390ce774974278440b8" | 18 | SRC_URI[main.sha256sum] = "a60c23dec95d10a2576265ce580f57869d5ac2471c4f4aca805addc9ea0fc9fe" |
diff --git a/meta/recipes-devtools/go/go-binary-native_1.22.8.bb b/meta/recipes-devtools/go/go-binary-native_1.22.11.bb index 98799eb503..a526cc88bc 100644 --- a/meta/recipes-devtools/go/go-binary-native_1.22.8.bb +++ b/meta/recipes-devtools/go/go-binary-native_1.22.11.bb | |||
@@ -9,9 +9,9 @@ PROVIDES = "go-native" | |||
9 | 9 | ||
10 | # Checksums available at https://go.dev/dl/ | 10 | # Checksums available at https://go.dev/dl/ |
11 | SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}" | 11 | SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}" |
12 | SRC_URI[go_linux_amd64.sha256sum] = "5f467d29fc67c7ae6468cb6ad5b047a274bae8180cac5e0b7ddbfeba3e47e18f" | 12 | SRC_URI[go_linux_amd64.sha256sum] = "0fc88d966d33896384fbde56e9a8d80a305dc17a9f48f1832e061724b1719991" |
13 | SRC_URI[go_linux_arm64.sha256sum] = "5c616b32dab04bb8c4c8700478381daea0174dc70083e4026321163879278a4a" | 13 | SRC_URI[go_linux_arm64.sha256sum] = "9ebfcab26801fa4cf0627c6439db7a4da4d3c6766142a3dd83508240e4f21031" |
14 | SRC_URI[go_linux_ppc64le.sha256sum] = "c546f27866510bf8e54e86fe6f58c705af0e894341e5572c91f197a734152c27" | 14 | SRC_URI[go_linux_ppc64le.sha256sum] = "963a0ec973640b23ee8bb7a462cc415276fd8436111a03df8c34eb3b1ae29f12" |
15 | 15 | ||
16 | UPSTREAM_CHECK_URI = "https://golang.org/dl/" | 16 | UPSTREAM_CHECK_URI = "https://golang.org/dl/" |
17 | UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux" | 17 | UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux" |
diff --git a/meta/recipes-devtools/go/go-cross-canadian.inc b/meta/recipes-devtools/go/go-cross-canadian.inc index 7be6fe778f..ff6c063d69 100644 --- a/meta/recipes-devtools/go/go-cross-canadian.inc +++ b/meta/recipes-devtools/go/go-cross-canadian.inc | |||
@@ -1,7 +1,7 @@ | |||
1 | inherit cross-canadian | 1 | inherit cross-canadian |
2 | 2 | ||
3 | DEPENDS = "go-native virtual/${HOST_PREFIX}go virtual/nativesdk-${HOST_PREFIX}go-runtime \ | 3 | DEPENDS = "go-native virtual/${HOST_PREFIX}go virtual/nativesdk-${HOST_PREFIX}go-runtime \ |
4 | virtual/cross-sdk-cc virtual/nativesdk-libc \ | 4 | virtual/nativesdk-cross-cc virtual/nativesdk-libc \ |
5 | virtual/nativesdk-compilerlibs" | 5 | virtual/nativesdk-compilerlibs" |
6 | PN = "go-cross-canadian-${TRANSLATED_TARGET_ARCH}" | 6 | PN = "go-cross-canadian-${TRANSLATED_TARGET_ARCH}" |
7 | 7 | ||
diff --git a/meta/recipes-devtools/go/go-cross-canadian_1.22.8.bb b/meta/recipes-devtools/go/go-cross-canadian_1.22.11.bb index 7ac9449e47..7ac9449e47 100644 --- a/meta/recipes-devtools/go/go-cross-canadian_1.22.8.bb +++ b/meta/recipes-devtools/go/go-cross-canadian_1.22.11.bb | |||
diff --git a/meta/recipes-devtools/go/go-cross_1.22.8.bb b/meta/recipes-devtools/go/go-cross_1.22.11.bb index 80b5a03f6c..80b5a03f6c 100644 --- a/meta/recipes-devtools/go/go-cross_1.22.8.bb +++ b/meta/recipes-devtools/go/go-cross_1.22.11.bb | |||
diff --git a/meta/recipes-devtools/go/go-crosssdk.inc b/meta/recipes-devtools/go/go-crosssdk.inc index f2a0521ccf..4f19025ba7 100644 --- a/meta/recipes-devtools/go/go-crosssdk.inc +++ b/meta/recipes-devtools/go/go-crosssdk.inc | |||
@@ -1,6 +1,6 @@ | |||
1 | inherit crosssdk | 1 | inherit crosssdk |
2 | 2 | ||
3 | DEPENDS = "go-native virtual/cross-sdk-cc virtual/nativesdk-compilerlibs virtual/cross-sdk-binutils" | 3 | DEPENDS = "go-native virtual/nativesdk-cross-cc virtual/nativesdk-compilerlibs virtual/nativesdk-cross-binutils" |
4 | PN = "go-crosssdk-${SDK_SYS}" | 4 | PN = "go-crosssdk-${SDK_SYS}" |
5 | PROVIDES = "virtual/${TARGET_PREFIX}go" | 5 | PROVIDES = "virtual/${TARGET_PREFIX}go" |
6 | 6 | ||
diff --git a/meta/recipes-devtools/go/go-crosssdk_1.22.8.bb b/meta/recipes-devtools/go/go-crosssdk_1.22.11.bb index 1857c8a577..1857c8a577 100644 --- a/meta/recipes-devtools/go/go-crosssdk_1.22.8.bb +++ b/meta/recipes-devtools/go/go-crosssdk_1.22.11.bb | |||
diff --git a/meta/recipes-devtools/go/go-runtime_1.22.8.bb b/meta/recipes-devtools/go/go-runtime_1.22.11.bb index 63464a1501..63464a1501 100644 --- a/meta/recipes-devtools/go/go-runtime_1.22.8.bb +++ b/meta/recipes-devtools/go/go-runtime_1.22.11.bb | |||
diff --git a/meta/recipes-devtools/go/go_1.22.8.bb b/meta/recipes-devtools/go/go_1.22.11.bb index 46f5fbc6be..46f5fbc6be 100644 --- a/meta/recipes-devtools/go/go_1.22.8.bb +++ b/meta/recipes-devtools/go/go_1.22.11.bb | |||
diff --git a/meta/recipes-devtools/llvm/llvm_19.1.6.bb b/meta/recipes-devtools/llvm/llvm_19.1.6.bb index 003676a652..3efd6c40c3 100644 --- a/meta/recipes-devtools/llvm/llvm_19.1.6.bb +++ b/meta/recipes-devtools/llvm/llvm_19.1.6.bb | |||
@@ -82,12 +82,14 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \ | |||
82 | 82 | ||
83 | EXTRA_OECMAKE:append:class-target = "\ | 83 | EXTRA_OECMAKE:append:class-target = "\ |
84 | -DCMAKE_CROSSCOMPILING:BOOL=ON \ | 84 | -DCMAKE_CROSSCOMPILING:BOOL=ON \ |
85 | -DLLVM_HOST_TRIPLE=${TARGET_SYS} \ | ||
85 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \ | 86 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \ |
86 | -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \ | 87 | -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \ |
87 | " | 88 | " |
88 | 89 | ||
89 | EXTRA_OECMAKE:append:class-nativesdk = "\ | 90 | EXTRA_OECMAKE:append:class-nativesdk = "\ |
90 | -DCMAKE_CROSSCOMPILING:BOOL=ON \ | 91 | -DCMAKE_CROSSCOMPILING:BOOL=ON \ |
92 | -DLLVM_HOST_TRIPLE=${SDK_SYS} \ | ||
91 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \ | 93 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \ |
92 | -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \ | 94 | -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \ |
93 | " | 95 | " |
diff --git a/meta/recipes-devtools/meson/meson_1.6.1.bb b/meta/recipes-devtools/meson/meson_1.7.0.bb index 249a07c290..44872a5f7b 100644 --- a/meta/recipes-devtools/meson/meson_1.6.1.bb +++ b/meta/recipes-devtools/meson/meson_1.7.0.bb | |||
@@ -16,7 +16,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/meson-${PV}.tar.gz \ | |||
16 | file://0002-Support-building-allarch-recipes-again.patch \ | 16 | file://0002-Support-building-allarch-recipes-again.patch \ |
17 | file://0001-dependencies-dev-prepend-sysroot-when-searching-for-.patch \ | 17 | file://0001-dependencies-dev-prepend-sysroot-when-searching-for-.patch \ |
18 | " | 18 | " |
19 | SRC_URI[sha256sum] = "1eca49eb6c26d58bbee67fd3337d8ef557c0804e30a6d16bfdf269db997464de" | 19 | SRC_URI[sha256sum] = "08efbe84803eed07f863b05092d653a9d348f7038761d900412fddf56deb0284" |
20 | UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)$" | 20 | UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)$" |
21 | 21 | ||
22 | inherit python_setuptools_build_meta github-releases | 22 | inherit python_setuptools_build_meta github-releases |
diff --git a/meta/recipes-devtools/python/python3-cffi_1.17.1.bb b/meta/recipes-devtools/python/python3-cffi_1.17.1.bb index 99979a73e8..fbe9051a90 100644 --- a/meta/recipes-devtools/python/python3-cffi_1.17.1.bb +++ b/meta/recipes-devtools/python/python3-cffi_1.17.1.bb | |||
@@ -8,7 +8,7 @@ SRC_URI[sha256sum] = "1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789 | |||
8 | 8 | ||
9 | SRC_URI += "file://run-ptest" | 9 | SRC_URI += "file://run-ptest" |
10 | 10 | ||
11 | inherit pypi python_setuptools_build_meta ptest | 11 | inherit pypi python_setuptools_build_meta ptest pkgconfig |
12 | 12 | ||
13 | do_install_ptest() { | 13 | do_install_ptest() { |
14 | cp -r ${S}/testing ${D}${PTEST_PATH} | 14 | cp -r ${S}/testing ${D}${PTEST_PATH} |
diff --git a/meta/recipes-devtools/python/python3-numpy/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch b/meta/recipes-devtools/python/python3-numpy/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch index 4a67308106..437bafb54f 100644 --- a/meta/recipes-devtools/python/python3-numpy/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch +++ b/meta/recipes-devtools/python/python3-numpy/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 16a973c118989674afeeda2c2ccc24c9c366210e Mon Sep 17 00:00:00 2001 | 1 | From ad6c0196e4c97ca37368610c010e46c90a4749b4 Mon Sep 17 00:00:00 2001 |
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | 2 | From: Alexander Kanavin <alex.kanavin@gmail.com> |
3 | Date: Thu, 10 Dec 2015 13:20:30 +0200 | 3 | Date: Thu, 10 Dec 2015 13:20:30 +0200 |
4 | Subject: [PATCH] Don't search /usr and so on for libraries by default to | 4 | Subject: [PATCH] Don't search /usr and so on for libraries by default to |
diff --git a/meta/recipes-devtools/python/python3-numpy/fix_reproducibility.patch b/meta/recipes-devtools/python/python3-numpy/fix_reproducibility.patch index 18d7f3f84e..514073d94e 100644 --- a/meta/recipes-devtools/python/python3-numpy/fix_reproducibility.patch +++ b/meta/recipes-devtools/python/python3-numpy/fix_reproducibility.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From cde931f4380745b9818b55d7b06a43d347518967 Mon Sep 17 00:00:00 2001 | 1 | From 061a8ae1d1d000892d6dba89a444922e7a28804b Mon Sep 17 00:00:00 2001 |
2 | From: Richard Purdie <richard.purdie@linuxfoundation.org> | 2 | From: Richard Purdie <richard.purdie@linuxfoundation.org> |
3 | Date: Fri, 29 Sep 2023 22:53:24 +0100 | 3 | Date: Fri, 29 Sep 2023 22:53:24 +0100 |
4 | Subject: [PATCH] This regex decides whether to use O3 opimisation on numpy or | 4 | Subject: [PATCH] This regex decides whether to use O3 opimisation on numpy or |
diff --git a/meta/recipes-devtools/python/python3-numpy_2.2.1.bb b/meta/recipes-devtools/python/python3-numpy_2.2.2.bb index 251e7b0c64..3b74e9059d 100644 --- a/meta/recipes-devtools/python/python3-numpy_2.2.1.bb +++ b/meta/recipes-devtools/python/python3-numpy_2.2.2.bb | |||
@@ -12,7 +12,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${SRCNAME}-${PV}.tar.gz \ | |||
12 | file://fix_reproducibility.patch \ | 12 | file://fix_reproducibility.patch \ |
13 | file://run-ptest \ | 13 | file://run-ptest \ |
14 | " | 14 | " |
15 | SRC_URI[sha256sum] = "45681fd7128c8ad1c379f0ca0776a8b0c6583d2f69889ddac01559dfe4390918" | 15 | SRC_URI[sha256sum] = "ed6906f61834d687738d25988ae117683705636936cc605be0bb208b23df4d8f" |
16 | 16 | ||
17 | GITHUB_BASE_URI = "https://github.com/numpy/numpy/releases" | 17 | GITHUB_BASE_URI = "https://github.com/numpy/numpy/releases" |
18 | UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)$" | 18 | UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)$" |
diff --git a/meta/recipes-devtools/python/python3/python3-manifest.json b/meta/recipes-devtools/python/python3/python3-manifest.json index 4b7f9cc7e3..f99cc5e2f0 100644 --- a/meta/recipes-devtools/python/python3/python3-manifest.json +++ b/meta/recipes-devtools/python/python3/python3-manifest.json | |||
@@ -1035,7 +1035,7 @@ | |||
1035 | ] | 1035 | ] |
1036 | }, | 1036 | }, |
1037 | "stringold": { | 1037 | "stringold": { |
1038 | "summary": "Python string APIs [deprecated]", | 1038 | "summary": "Common string operations", |
1039 | "rdepends": [ | 1039 | "rdepends": [ |
1040 | "core" | 1040 | "core" |
1041 | ], | 1041 | ], |
diff --git a/meta/recipes-devtools/rsync/files/0001-Add-missing-prototypes-to-function-declarations.patch b/meta/recipes-devtools/rsync/files/0001-Add-missing-prototypes-to-function-declarations.patch index 2379de84f2..3011308c61 100644 --- a/meta/recipes-devtools/rsync/files/0001-Add-missing-prototypes-to-function-declarations.patch +++ b/meta/recipes-devtools/rsync/files/0001-Add-missing-prototypes-to-function-declarations.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 2beb35c34c45320144f37b12ef4d72fb8734280e Mon Sep 17 00:00:00 2001 | 1 | From 073caa67f2aa221de113a21f8105940421a2da90 Mon Sep 17 00:00:00 2001 |
2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
3 | Date: Mon, 29 Aug 2022 19:53:28 -0700 | 3 | Date: Mon, 29 Aug 2022 19:53:28 -0700 |
4 | Subject: [PATCH] Add missing prototypes to function declarations | 4 | Subject: [PATCH] Add missing prototypes to function declarations |
@@ -15,21 +15,19 @@ Fixes errors like | |||
15 | 15 | ||
16 | Upstream-Status: Submitted [https://lists.samba.org/archive/rsync/2022-August/032858.html] | 16 | Upstream-Status: Submitted [https://lists.samba.org/archive/rsync/2022-August/032858.html] |
17 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | 17 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
18 | Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com> | ||
18 | --- | 19 | --- |
19 | checksum.c | 2 +- | 20 | checksum.c | 2 +- |
20 | exclude.c | 2 +- | 21 | exclude.c | 2 +- |
21 | hlink.c | 3 +-- | 22 | log.c | 2 +- |
22 | lib/pool_alloc.c | 2 +- | 23 | main.c | 2 +- |
23 | log.c | 2 +- | 24 | zlib/crc32.c | 2 +- |
24 | main.c | 2 +- | 25 | zlib/trees.c | 2 +- |
25 | syscall.c | 4 ++-- | 26 | zlib/zutil.c | 4 ++-- |
26 | zlib/crc32.c | 2 +- | 27 | 7 files changed, 8 insertions(+), 8 deletions(-) |
27 | zlib/trees.c | 2 +- | ||
28 | zlib/zutil.c | 4 ++-- | ||
29 | 10 files changed, 12 insertions(+), 13 deletions(-) | ||
30 | 28 | ||
31 | diff --git a/checksum.c b/checksum.c | 29 | diff --git a/checksum.c b/checksum.c |
32 | index cb21882..736818b 100644 | 30 | index 66e8089..b24b202 100644 |
33 | --- a/checksum.c | 31 | --- a/checksum.c |
34 | +++ b/checksum.c | 32 | +++ b/checksum.c |
35 | @@ -779,7 +779,7 @@ static void verify_digest(struct name_num_item *nni, BOOL check_auth_list) | 33 | @@ -779,7 +779,7 @@ static void verify_digest(struct name_num_item *nni, BOOL check_auth_list) |
@@ -54,33 +52,6 @@ index 87edbcf..ae0de2f 100644 | |||
54 | { | 52 | { |
55 | if (partial_string_buf) { | 53 | if (partial_string_buf) { |
56 | if (partial_string_len) | 54 | if (partial_string_len) |
57 | diff --git a/hlink.c b/hlink.c | ||
58 | index 20291f2..5c26a6b 100644 | ||
59 | --- a/hlink.c | ||
60 | +++ b/hlink.c | ||
61 | @@ -117,8 +117,7 @@ static void match_gnums(int32 *ndx_list, int ndx_count) | ||
62 | struct ht_int32_node *node = NULL; | ||
63 | int32 gnum, gnum_next; | ||
64 | |||
65 | - qsort(ndx_list, ndx_count, sizeof ndx_list[0], (int (*)()) hlink_compare_gnum); | ||
66 | - | ||
67 | + qsort(ndx_list, ndx_count, sizeof ndx_list[0], (int (*)(const void *, const void *)) hlink_compare_gnum); | ||
68 | for (from = 0; from < ndx_count; from++) { | ||
69 | file = hlink_flist->sorted[ndx_list[from]]; | ||
70 | gnum = F_HL_GNUM(file); | ||
71 | diff --git a/lib/pool_alloc.c b/lib/pool_alloc.c | ||
72 | index a1a7245..4eae062 100644 | ||
73 | --- a/lib/pool_alloc.c | ||
74 | +++ b/lib/pool_alloc.c | ||
75 | @@ -9,7 +9,7 @@ struct alloc_pool | ||
76 | size_t size; /* extent size */ | ||
77 | size_t quantum; /* allocation quantum */ | ||
78 | struct pool_extent *extents; /* top extent is "live" */ | ||
79 | - void (*bomb)(); /* called if malloc fails */ | ||
80 | + void (*bomb)(const char *, const char *, int); /* called if malloc fails */ | ||
81 | int flags; | ||
82 | |||
83 | /* statistical data */ | ||
84 | diff --git a/log.c b/log.c | 55 | diff --git a/log.c b/log.c |
85 | index e4ba1cc..8482b71 100644 | 56 | index e4ba1cc..8482b71 100644 |
86 | --- a/log.c | 57 | --- a/log.c |
@@ -95,7 +66,7 @@ index e4ba1cc..8482b71 100644 | |||
95 | int options = LOG_PID; | 66 | int options = LOG_PID; |
96 | 67 | ||
97 | diff --git a/main.c b/main.c | 68 | diff --git a/main.c b/main.c |
98 | index 0c60b86..4bc664a 100644 | 69 | index 4f070ac..f59eaec 100644 |
99 | --- a/main.c | 70 | --- a/main.c |
100 | +++ b/main.c | 71 | +++ b/main.c |
101 | @@ -246,7 +246,7 @@ void read_del_stats(int f) | 72 | @@ -246,7 +246,7 @@ void read_del_stats(int f) |
@@ -107,22 +78,6 @@ index 0c60b86..4bc664a 100644 | |||
107 | { | 78 | { |
108 | char *gname; | 79 | char *gname; |
109 | uid_t uid; | 80 | uid_t uid; |
110 | diff --git a/syscall.c b/syscall.c | ||
111 | index d92074a..92ca86d 100644 | ||
112 | --- a/syscall.c | ||
113 | +++ b/syscall.c | ||
114 | @@ -389,9 +389,9 @@ OFF_T do_lseek(int fd, OFF_T offset, int whence) | ||
115 | { | ||
116 | #ifdef HAVE_LSEEK64 | ||
117 | #if !SIZEOF_OFF64_T | ||
118 | - OFF_T lseek64(); | ||
119 | + OFF_T lseek64(int fd, OFF_T offset, int whence); | ||
120 | #else | ||
121 | - off64_t lseek64(); | ||
122 | + off64_t lseek64(int fd, off64_t offset, int whence); | ||
123 | #endif | ||
124 | return lseek64(fd, offset, whence); | ||
125 | #else | ||
126 | diff --git a/zlib/crc32.c b/zlib/crc32.c | 81 | diff --git a/zlib/crc32.c b/zlib/crc32.c |
127 | index 05733f4..50c6c02 100644 | 82 | index 05733f4..50c6c02 100644 |
128 | --- a/zlib/crc32.c | 83 | --- a/zlib/crc32.c |
diff --git a/meta/recipes-devtools/rsync/files/determism.patch b/meta/recipes-devtools/rsync/files/determism.patch index e3494fdded..f915d658c8 100644 --- a/meta/recipes-devtools/rsync/files/determism.patch +++ b/meta/recipes-devtools/rsync/files/determism.patch | |||
@@ -1,7 +1,12 @@ | |||
1 | From 41b859a9df9611b7b3f6cbe28af47118d947080f Mon Sep 17 00:00:00 2001 | ||
2 | From: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
3 | Date: Sun, 21 Feb 2021 09:45:48 +0000 | ||
4 | Subject: [PATCH] rsync: Fix a file sorting determinism issue | ||
5 | |||
1 | The Makefile calls awk on a "*.c" glob. The results of this glob are sorted | 6 | The Makefile calls awk on a "*.c" glob. The results of this glob are sorted |
2 | but the order depends on the locale settings, particularly whether | 7 | but the order depends on the locale settings, particularly whether |
3 | "util.c" and "util2.c" sort before or after each other. In en_US.UTF-8 | 8 | "util.c" and "util2.c" sort before or after each other. In en_US.UTF-8 |
4 | they sort one way, in C, they sort the other. The sorting order changes | 9 | they sort one way, in C, they sort the other. The sorting order changes |
5 | the output binaries. The behaviour also changes dependning on whether | 10 | the output binaries. The behaviour also changes dependning on whether |
6 | SHELL (/bin/sh) is dash or bash. | 11 | SHELL (/bin/sh) is dash or bash. |
7 | 12 | ||
@@ -15,12 +20,15 @@ Upstream-Status: Backport [ish, see below] | |||
15 | After discussion upstream renamed util.c to util1.c which avoids the problem | 20 | After discussion upstream renamed util.c to util1.c which avoids the problem |
16 | in a different way. This patch can be dropped when we upgrade to include: | 21 | in a different way. This patch can be dropped when we upgrade to include: |
17 | https://github.com/WayneD/rsync/commit/d3085f7add38a5cf833a0b31cb0637ff46c80f8d | 22 | https://github.com/WayneD/rsync/commit/d3085f7add38a5cf833a0b31cb0637ff46c80f8d |
23 | --- | ||
24 | Makefile.in | 5 +++++ | ||
25 | 1 file changed, 5 insertions(+) | ||
18 | 26 | ||
19 | Index: rsync-3.2.3/Makefile.in | 27 | diff --git a/Makefile.in b/Makefile.in |
20 | =================================================================== | 28 | index 1d13e8c..2c5cf99 100644 |
21 | --- rsync-3.2.3.orig/Makefile.in | 29 | --- a/Makefile.in |
22 | +++ rsync-3.2.3/Makefile.in | 30 | +++ b/Makefile.in |
23 | @@ -26,6 +26,11 @@ MKDIR_P=@MKDIR_P@ | 31 | @@ -27,6 +27,11 @@ MKDIR_P=@MKDIR_P@ |
24 | VPATH=$(srcdir) | 32 | VPATH=$(srcdir) |
25 | SHELL=/bin/sh | 33 | SHELL=/bin/sh |
26 | 34 | ||
diff --git a/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch b/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch index 0c9ce8b8e3..42af4c55d0 100644 --- a/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch +++ b/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From f446686c26c499e15ef17d495a93cfbc20e16090 Mon Sep 17 00:00:00 2001 | 1 | From 603e5862cca832ae925d0c92a8654a57caff5910 Mon Sep 17 00:00:00 2001 |
2 | From: Ross Burton <ross.burton@intel.com> | 2 | From: Ross Burton <ross.burton@intel.com> |
3 | Date: Tue, 12 Apr 2016 15:51:54 +0100 | 3 | Date: Tue, 12 Apr 2016 15:51:54 +0100 |
4 | Subject: [PATCH] rsync: remove upstream's rebuild logic | 4 | Subject: [PATCH] rsync: remove upstream's rebuild logic |
@@ -13,12 +13,12 @@ Signed-off-by: Ross Burton <ross.burton@intel.com> | |||
13 | 1 file changed, 54 deletions(-) | 13 | 1 file changed, 54 deletions(-) |
14 | 14 | ||
15 | diff --git a/Makefile.in b/Makefile.in | 15 | diff --git a/Makefile.in b/Makefile.in |
16 | index a1253e5..a084935 100644 | 16 | index 7c75c26..1d13e8c 100644 |
17 | --- a/Makefile.in | 17 | --- a/Makefile.in |
18 | +++ b/Makefile.in | 18 | +++ b/Makefile.in |
19 | @@ -192,60 +192,6 @@ gensend: gen | 19 | @@ -184,60 +184,6 @@ conf: configure.sh config.h.in |
20 | fi | 20 | .PHONY: gen |
21 | rsync -aic $(GENFILES) git-version.h $${SAMBA_HOST-samba.org}:/home/ftp/pub/rsync/generated-files/ || true | 21 | gen: conf proto.h man git-version.h |
22 | 22 | ||
23 | -aclocal.m4: $(srcdir)/m4/*.m4 | 23 | -aclocal.m4: $(srcdir)/m4/*.m4 |
24 | - aclocal -I $(srcdir)/m4 | 24 | - aclocal -I $(srcdir)/m4 |
diff --git a/meta/recipes-devtools/rsync/rsync_3.3.0.bb b/meta/recipes-devtools/rsync/rsync_3.4.1.bb index c03bb270d4..2cf87d379a 100644 --- a/meta/recipes-devtools/rsync/rsync_3.3.0.bb +++ b/meta/recipes-devtools/rsync/rsync_3.4.1.bb | |||
@@ -16,7 +16,7 @@ SRC_URI = "https://download.samba.org/pub/${BPN}/src/${BP}.tar.gz \ | |||
16 | file://determism.patch \ | 16 | file://determism.patch \ |
17 | file://0001-Add-missing-prototypes-to-function-declarations.patch \ | 17 | file://0001-Add-missing-prototypes-to-function-declarations.patch \ |
18 | " | 18 | " |
19 | SRC_URI[sha256sum] = "7399e9a6708c32d678a72a63219e96f23be0be2336e50fd1348498d07041df90" | 19 | SRC_URI[sha256sum] = "2924bcb3a1ed8b551fc101f740b9f0fe0a202b115027647cf69850d65fd88c52" |
20 | 20 | ||
21 | # Doesn't use automake | 21 | # Doesn't use automake |
22 | inherit autotools-brokensep | 22 | inherit autotools-brokensep |
diff --git a/meta/recipes-devtools/rust/cargo_1.81.0.bb b/meta/recipes-devtools/rust/cargo_1.81.0.bb index 123032cdf7..d05b076d30 100644 --- a/meta/recipes-devtools/rust/cargo_1.81.0.bb +++ b/meta/recipes-devtools/rust/cargo_1.81.0.bb | |||
@@ -50,8 +50,23 @@ do_install:append:class-nativesdk() { | |||
50 | # sets to libdir but not base_libdir leading to symbol mismatches depending on the | 50 | # sets to libdir but not base_libdir leading to symbol mismatches depending on the |
51 | # host OS. Fully set LD_LIBRARY_PATH to contain both to avoid this. | 51 | # host OS. Fully set LD_LIBRARY_PATH to contain both to avoid this. |
52 | create_wrapper ${D}/${bindir}/cargo LD_LIBRARY_PATH=${libdir}:${base_libdir} | 52 | create_wrapper ${D}/${bindir}/cargo LD_LIBRARY_PATH=${libdir}:${base_libdir} |
53 | |||
54 | ENV_SETUP_DIR=${D}${base_prefix}/environment-setup.d | ||
55 | mkdir "${ENV_SETUP_DIR}" | ||
56 | CARGO_ENV_SETUP_SH="${ENV_SETUP_DIR}/cargo.sh" | ||
57 | |||
58 | cat <<- EOF > "${CARGO_ENV_SETUP_SH}" | ||
59 | # Keep the below off as long as HTTP/2 is disabled. | ||
60 | export CARGO_HTTP_MULTIPLEXING=false | ||
61 | |||
62 | export CARGO_HTTP_CAINFO="\$OECORE_NATIVE_SYSROOT/etc/ssl/certs/ca-certificates.crt" | ||
63 | EOF | ||
64 | |||
65 | chown -R root.root ${D} | ||
53 | } | 66 | } |
54 | 67 | ||
68 | FILES:${PN} += "${base_prefix}/environment-setup.d" | ||
69 | |||
55 | # Disabled due to incompatibility with libgit2 0.28.x (https://github.com/rust-lang/git2-rs/issues/458, https://bugs.gentoo.org/707746#c1) | 70 | # Disabled due to incompatibility with libgit2 0.28.x (https://github.com/rust-lang/git2-rs/issues/458, https://bugs.gentoo.org/707746#c1) |
56 | # as shipped by Yocto Dunfell. | 71 | # as shipped by Yocto Dunfell. |
57 | # According to https://github.com/rust-lang/git2-rs/issues/458#issuecomment-522567539, there are no compatibility guarantees between | 72 | # According to https://github.com/rust-lang/git2-rs/issues/458#issuecomment-522567539, there are no compatibility guarantees between |
diff --git a/meta/recipes-devtools/rust/files/oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch b/meta/recipes-devtools/rust/files/oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch index b42dda8b34..bb27ca35ff 100644 --- a/meta/recipes-devtools/rust/files/oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch +++ b/meta/recipes-devtools/rust/files/oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch | |||
@@ -25,7 +25,7 @@ index 11f363d62..c12d66016 100644 | |||
25 | // Just in case `yes` doesn't check for EPIPE... | 25 | // Just in case `yes` doesn't check for EPIPE... |
26 | thread::spawn(|| { | 26 | thread::spawn(|| { |
27 | - thread::sleep_ms(5000); | 27 | - thread::sleep_ms(5000); |
28 | + thread::sleep_ms(10000); | 28 | + thread::sleep_ms(50000); |
29 | process::exit(1); | 29 | process::exit(1); |
30 | }); | 30 | }); |
31 | let output = process::Command::new("sh") | 31 | let output = process::Command::new("sh") |
diff --git a/meta/recipes-devtools/rust/rust-cross-canadian.inc b/meta/recipes-devtools/rust/rust-cross-canadian.inc index 0c2f6144b8..906f2d7aaa 100644 --- a/meta/recipes-devtools/rust/rust-cross-canadian.inc +++ b/meta/recipes-devtools/rust/rust-cross-canadian.inc | |||
@@ -9,7 +9,7 @@ LICENSE = "MIT" | |||
9 | 9 | ||
10 | MODIFYTOS = "0" | 10 | MODIFYTOS = "0" |
11 | 11 | ||
12 | DEPENDS += "virtual/cross-sdk-cc virtual/nativesdk-libc virtual/nativesdk-compilerlibs" | 12 | DEPENDS += "virtual/nativesdk-cross-cc virtual/nativesdk-libc virtual/nativesdk-compilerlibs" |
13 | 13 | ||
14 | SRC_URI += "file://target-rust-ccld.c" | 14 | SRC_URI += "file://target-rust-ccld.c" |
15 | LIC_FILES_CHKSUM = "file://target-rust-ccld.c;md5=af4e0e29f81a34cffe05aa07c89e93e9;endline=7" | 15 | LIC_FILES_CHKSUM = "file://target-rust-ccld.c;md5=af4e0e29f81a34cffe05aa07c89e93e9;endline=7" |
@@ -54,39 +54,16 @@ do_install () { | |||
54 | 54 | ||
55 | ENV_SETUP_DIR=${D}${base_prefix}/environment-setup.d | 55 | ENV_SETUP_DIR=${D}${base_prefix}/environment-setup.d |
56 | mkdir "${ENV_SETUP_DIR}" | 56 | mkdir "${ENV_SETUP_DIR}" |
57 | RUST_ENV_SETUP_SH="${ENV_SETUP_DIR}/rust.sh" | 57 | RUST_ENV_SETUP_SH="${ENV_SETUP_DIR}/${RUST_TARGET_SYS}_rust.sh" |
58 | 58 | ||
59 | RUST_TARGET_TRIPLE=`echo ${RUST_TARGET_SYS} | tr '[:lower:]' '[:upper:]' | sed 's/-/_/g'` | 59 | RUST_TARGET_TRIPLE=`echo ${RUST_TARGET_SYS} | tr '[:lower:]' '[:upper:]' | sed 's/-/_/g'` |
60 | RUST_HOST_TRIPLE=`echo ${RUST_HOST_SYS} | tr '[:lower:]' '[:upper:]' | sed 's/-/_/g'` | ||
61 | SDKLOADER=${@bb.utils.contains('SDK_ARCH', 'x86_64', 'ld-linux-x86-64.so.2', '', d)}${@bb.utils.contains('SDK_ARCH', 'i686', 'ld-linux.so.2', '', d)}${@bb.utils.contains('SDK_ARCH', 'aarch64', 'ld-linux-aarch64.so.1', '', d)}${@bb.utils.contains('SDK_ARCH', 'ppc64le', 'ld64.so.2', '', d)}${@bb.utils.contains('SDK_ARCH', 'riscv64', 'ld-linux-riscv64-lp64d.so.1', '', d)} | ||
62 | 60 | ||
63 | cat <<- EOF > "${RUST_ENV_SETUP_SH}" | 61 | cat <<- EOF > "${RUST_ENV_SETUP_SH}" |
64 | export CARGO_TARGET_${RUST_TARGET_TRIPLE}_RUSTFLAGS="--sysroot=\$OECORE_TARGET_SYSROOT/usr -C link-arg=--sysroot=\$OECORE_TARGET_SYSROOT" | 62 | export CARGO_TARGET_${RUST_TARGET_TRIPLE}_RUSTFLAGS="--sysroot=\$OECORE_TARGET_SYSROOT/usr -C link-arg=--sysroot=\$OECORE_TARGET_SYSROOT" |
65 | export CARGO_TARGET_${RUST_HOST_TRIPLE}_RUNNER="\$OECORE_NATIVE_SYSROOT/lib/${SDKLOADER}" | 63 | export RUST_TARGET_PATH="\$RUST_TARGET_PATH:\$OECORE_NATIVE_SYSROOT/usr/lib/${TARGET_SYS}/rustlib" |
66 | export RUST_TARGET_PATH="\$OECORE_NATIVE_SYSROOT/usr/lib/${TARGET_SYS}/rustlib" | ||
67 | EOF | 64 | EOF |
68 | 65 | ||
69 | chown -R root.root ${D} | 66 | chown -R root.root ${D} |
70 | |||
71 | CARGO_ENV_SETUP_SH="${ENV_SETUP_DIR}/cargo.sh" | ||
72 | cat <<- EOF > "${CARGO_ENV_SETUP_SH}" | ||
73 | export CARGO_HOME="\$OECORE_TARGET_SYSROOT/home/cargo" | ||
74 | mkdir -p "\$CARGO_HOME" | ||
75 | # Init the default target once, it might be otherwise user modified. | ||
76 | if [ ! -f "\$CARGO_HOME/config" ]; then | ||
77 | touch "\$CARGO_HOME/config" | ||
78 | echo "[build]" >> "\$CARGO_HOME/config" | ||
79 | echo 'target = "'${RUST_TARGET_SYS}'"' >> "\$CARGO_HOME/config" | ||
80 | echo '# TARGET_SYS' >> "\$CARGO_HOME/config" | ||
81 | echo '[target.'${RUST_TARGET_SYS}']' >> "\$CARGO_HOME/config" | ||
82 | echo 'linker = "target-rust-ccld"' >> "\$CARGO_HOME/config" | ||
83 | fi | ||
84 | |||
85 | # Keep the below off as long as HTTP/2 is disabled. | ||
86 | export CARGO_HTTP_MULTIPLEXING=false | ||
87 | |||
88 | export CARGO_HTTP_CAINFO="\$OECORE_NATIVE_SYSROOT/etc/ssl/certs/ca-certificates.crt" | ||
89 | EOF | ||
90 | } | 67 | } |
91 | 68 | ||
92 | FILES:${PN} += "${base_prefix}/environment-setup.d" | 69 | FILES:${PN} += "${base_prefix}/environment-setup.d" |
diff --git a/meta/recipes-devtools/rust/rust_1.81.0.bb b/meta/recipes-devtools/rust/rust_1.81.0.bb index b583508456..24a0319dbe 100644 --- a/meta/recipes-devtools/rust/rust_1.81.0.bb +++ b/meta/recipes-devtools/rust/rust_1.81.0.bb | |||
@@ -272,8 +272,21 @@ rust_do_install:class-nativesdk() { | |||
272 | rm ${D}${libdir}/rustlib/install.log | 272 | rm ${D}${libdir}/rustlib/install.log |
273 | rm ${D}${libdir}/rustlib/manifest* | 273 | rm ${D}${libdir}/rustlib/manifest* |
274 | rm ${D}${libdir}/rustlib/${RUST_HOST_SYS}/lib/libstd*.so | 274 | rm ${D}${libdir}/rustlib/${RUST_HOST_SYS}/lib/libstd*.so |
275 | |||
276 | ENV_SETUP_DIR=${D}${base_prefix}/environment-setup.d | ||
277 | mkdir "${ENV_SETUP_DIR}" | ||
278 | RUST_ENV_SETUP_SH="${ENV_SETUP_DIR}/rust.sh" | ||
279 | RUST_HOST_TRIPLE=`echo ${RUST_HOST_SYS} | tr '[:lower:]' '[:upper:]' | sed 's/-/_/g'` | ||
280 | SDKLOADER=${@bb.utils.contains('SDK_ARCH', 'x86_64', 'ld-linux-x86-64.so.2', '', d)}${@bb.utils.contains('SDK_ARCH', 'i686', 'ld-linux.so.2', '', d)}${@bb.utils.contains('SDK_ARCH', 'aarch64', 'ld-linux-aarch64.so.1', '', d)}${@bb.utils.contains('SDK_ARCH', 'ppc64le', 'ld64.so.2', '', d)}${@bb.utils.contains('SDK_ARCH', 'riscv64', 'ld-linux-riscv64-lp64d.so.1', '', d)} | ||
281 | |||
282 | cat <<- EOF > "${RUST_ENV_SETUP_SH}" | ||
283 | export CARGO_TARGET_${RUST_HOST_TRIPLE}_RUNNER="\$OECORE_NATIVE_SYSROOT/lib/${SDKLOADER}" | ||
284 | EOF | ||
285 | chown -R root.root ${D} | ||
275 | } | 286 | } |
276 | 287 | ||
288 | FILES:${PN} += "${base_prefix}/environment-setup.d" | ||
289 | |||
277 | EXTRA_TOOLS ?= "cargo-clippy clippy-driver rustfmt" | 290 | EXTRA_TOOLS ?= "cargo-clippy clippy-driver rustfmt" |
278 | rust_do_install:class-target() { | 291 | rust_do_install:class-target() { |
279 | export PSEUDO_UNLOAD=1 | 292 | export PSEUDO_UNLOAD=1 |
diff --git a/meta/recipes-devtools/tcltk/tcl_9.0.1.bb b/meta/recipes-devtools/tcltk/tcl_9.0.1.bb index 0ba7288a60..485b293768 100644 --- a/meta/recipes-devtools/tcltk/tcl_9.0.1.bb +++ b/meta/recipes-devtools/tcltk/tcl_9.0.1.bb | |||
@@ -37,7 +37,7 @@ inherit autotools ptest binconfig | |||
37 | AUTOTOOLS_SCRIPT_PATH = "${S}/unix" | 37 | AUTOTOOLS_SCRIPT_PATH = "${S}/unix" |
38 | EXTRA_AUTORECONF = "--exclude=aclocal" | 38 | EXTRA_AUTORECONF = "--exclude=aclocal" |
39 | 39 | ||
40 | EXTRA_OECONF = "--disable-rpath --enable-man-suffix=tcl9" | 40 | EXTRA_OECONF = "--disable-rpath --enable-man-suffix=tcl9 --disable-zipfs" |
41 | 41 | ||
42 | # Prevent installing copy of tzdata based on tzdata installation on the build host | 42 | # Prevent installing copy of tzdata based on tzdata installation on the build host |
43 | # It doesn't install tzdata if one of the following files exist on the host: | 43 | # It doesn't install tzdata if one of the following files exist on the host: |
diff --git a/meta/recipes-devtools/tcltk8/tcl8/0001-generic-tcl.h-use-Tcl_WideInt-for-seconds-in-Tcl_Tim.patch b/meta/recipes-devtools/tcltk8/tcl8/0001-generic-tcl.h-use-Tcl_WideInt-for-seconds-in-Tcl_Tim.patch new file mode 100644 index 0000000000..1859992838 --- /dev/null +++ b/meta/recipes-devtools/tcltk8/tcl8/0001-generic-tcl.h-use-Tcl_WideInt-for-seconds-in-Tcl_Tim.patch | |||
@@ -0,0 +1,33 @@ | |||
1 | From ff508f2e6786df697876140f21855ecb92a3ed36 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex@linutronix.de> | ||
3 | Date: Fri, 18 Aug 2023 12:25:11 +0200 | ||
4 | Subject: [PATCH] generic/tcl.h: use Tcl_WideInt for seconds in Tcl_Time | ||
5 | |||
6 | This ensures the value will not overflow, particularly on 32 bit systems | ||
7 | in 2038, where long will. | ||
8 | |||
9 | This patch was proposed at https://core.tcl-lang.org/tcl/tktview/86dd172271 | ||
10 | Upstream was generally supportive of the fix, but they merged a much more | ||
11 | elaborate version of it for tcl 9.x (released in 9.0.0), and declined | ||
12 | to merge it into 8.x due to ABI breakage (sadly this change is in a public header). | ||
13 | But we can carry the fix downstream. | ||
14 | |||
15 | Upstream-Status: Inappropriate [see above] | ||
16 | Signed-off-by: Alexander Kanavin <alex@linutronix.de> | ||
17 | --- | ||
18 | generic/tcl.h | 2 +- | ||
19 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
20 | |||
21 | diff --git a/generic/tcl.h b/generic/tcl.h | ||
22 | index 3a4622e..6204c57 100644 | ||
23 | --- a/generic/tcl.h | ||
24 | +++ b/generic/tcl.h | ||
25 | @@ -1418,7 +1418,7 @@ typedef enum { | ||
26 | */ | ||
27 | |||
28 | typedef struct Tcl_Time { | ||
29 | - long sec; /* Seconds. */ | ||
30 | + Tcl_WideInt sec; /* Seconds. */ | ||
31 | long usec; /* Microseconds. */ | ||
32 | } Tcl_Time; | ||
33 | |||
diff --git a/meta/recipes-devtools/tcltk8/tcl8_8.6.16.bb b/meta/recipes-devtools/tcltk8/tcl8_8.6.16.bb index c8f4b5df2a..076bbc906c 100644 --- a/meta/recipes-devtools/tcltk8/tcl8_8.6.16.bb +++ b/meta/recipes-devtools/tcltk8/tcl8_8.6.16.bb | |||
@@ -23,6 +23,7 @@ SRC_URI = "${BASE_SRC_URI} \ | |||
23 | file://alter-includedir.patch \ | 23 | file://alter-includedir.patch \ |
24 | file://interp.patch \ | 24 | file://interp.patch \ |
25 | file://run-ptest \ | 25 | file://run-ptest \ |
26 | file://0001-generic-tcl.h-use-Tcl_WideInt-for-seconds-in-Tcl_Tim.patch \ | ||
26 | " | 27 | " |
27 | SRC_URI[sha256sum] = "3b371386a9a928eecdbf263bcab7d6a531e620ca3fbab4fdeeb3d6a9a56f38e9" | 28 | SRC_URI[sha256sum] = "3b371386a9a928eecdbf263bcab7d6a531e620ca3fbab4fdeeb3d6a9a56f38e9" |
28 | 29 | ||
diff --git a/meta/recipes-extended/man-db/files/flex.patch b/meta/recipes-extended/man-db/files/flex.patch new file mode 100644 index 0000000000..c18be7e36a --- /dev/null +++ b/meta/recipes-extended/man-db/files/flex.patch | |||
@@ -0,0 +1,36 @@ | |||
1 | From d3f7c160bddf5d879c74e19e4f577882e8b22559 Mon Sep 17 00:00:00 2001 | ||
2 | From: Ross Burton <ross.burton@arm.com> | ||
3 | Date: Wed, 22 Jan 2025 14:16:48 +0000 | ||
4 | Subject: [PATCH] configure: check for shipped generated sources in source | ||
5 | directory | ||
6 | |||
7 | The configure script fails if it can't find flex and the pregenerated | ||
8 | source code isn't available, as is the case in builds from git whereas | ||
9 | tarballs include the code. | ||
10 | |||
11 | However this breaks with out-of-tree builds, where cwd during configure | ||
12 | is the build directory not the source directory, and the pregenerated | ||
13 | sources will always be inside the source directory. | ||
14 | |||
15 | Upstream-Status: Submitted [https://gitlab.com/man-db/man-db/-/merge_requests/12] | ||
16 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
17 | --- | ||
18 | configure.ac | 2 +- | ||
19 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
20 | |||
21 | diff --git a/configure.ac b/configure.ac | ||
22 | index 7e9148fb..49a213fd 100644 | ||
23 | --- a/configure.ac | ||
24 | +++ b/configure.ac | ||
25 | @@ -380,7 +380,7 @@ dnl To add more decompressors just follow the scheme above. | ||
26 | dnl The "noyywrap" argument is new in Autoconf 2.70, but this also works | ||
27 | dnl fine with older versions that ignore the argument. | ||
28 | AC_PROG_LEX([noyywrap]) | ||
29 | -if test "$LEX" = ":" && (test ! -e src/lexgrog.c || test ! -e src/zsoelim.c) | ||
30 | +if test "$LEX" = ":" && (test ! -e $srcdir/src/lexgrog.c || test ! -e $srcdir/src/zsoelim.c) | ||
31 | then | ||
32 | AC_MSG_ERROR([flex is required when building from revision control]) | ||
33 | fi | ||
34 | -- | ||
35 | 2.43.0 | ||
36 | |||
diff --git a/meta/recipes-extended/man-db/man-db_2.13.0.bb b/meta/recipes-extended/man-db/man-db_2.13.0.bb index 2fa18a8f24..2178239bb6 100644 --- a/meta/recipes-extended/man-db/man-db_2.13.0.bb +++ b/meta/recipes-extended/man-db/man-db_2.13.0.bb | |||
@@ -8,6 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \ | |||
8 | " | 8 | " |
9 | 9 | ||
10 | SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/man-db/man-db-${PV}.tar.xz \ | 10 | SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/man-db/man-db-${PV}.tar.xz \ |
11 | file://flex.patch \ | ||
11 | file://99_mandb \ | 12 | file://99_mandb \ |
12 | " | 13 | " |
13 | SRC_URI[sha256sum] = "82f0739f4f61aab5eb937d234de3b014e777b5538a28cbd31433c45ae09aefb9" | 14 | SRC_URI[sha256sum] = "82f0739f4f61aab5eb937d234de3b014e777b5538a28cbd31433c45ae09aefb9" |
diff --git a/meta/recipes-extended/man-pages/man-pages_6.9.1.bb b/meta/recipes-extended/man-pages/man-pages_6.9.1.bb index ba1a6c16c4..8258874dd7 100644 --- a/meta/recipes-extended/man-pages/man-pages_6.9.1.bb +++ b/meta/recipes-extended/man-pages/man-pages_6.9.1.bb | |||
@@ -2,7 +2,7 @@ SUMMARY = "Linux man-pages" | |||
2 | DESCRIPTION = "The Linux man-pages project documents the Linux kernel and C library interfaces that are employed by user programs" | 2 | DESCRIPTION = "The Linux man-pages project documents the Linux kernel and C library interfaces that are employed by user programs" |
3 | SECTION = "console/utils" | 3 | SECTION = "console/utils" |
4 | HOMEPAGE = "http://www.kernel.org/pub/linux/docs/man-pages" | 4 | HOMEPAGE = "http://www.kernel.org/pub/linux/docs/man-pages" |
5 | LICENSE = "GPL-2.0-or-later & GPL-2.0-only & GPL-1.0-or-later & BSD-2-Clause & BSD-3-Clause & BSD-4-Clause & MIT" | 5 | LICENSE = "GPL-2.0-or-later & GPL-2.0-only & GPL-1.0-or-later & BSD-2-Clause & BSD-3-Clause & BSD-4-Clause-UC & MIT" |
6 | 6 | ||
7 | LIC_FILES_CHKSUM = "file://README;md5=72cff06b7954222c24d38bc2c41b234e \ | 7 | LIC_FILES_CHKSUM = "file://README;md5=72cff06b7954222c24d38bc2c41b234e \ |
8 | file://LICENSES/BSD-2-Clause.txt;md5=9e16594a228301089d759b4f178db91f \ | 8 | file://LICENSES/BSD-2-Clause.txt;md5=9e16594a228301089d759b4f178db91f \ |
diff --git a/meta/recipes-extended/timezone/timezone.inc b/meta/recipes-extended/timezone/timezone.inc index adf095280f..f1dbd7ba81 100644 --- a/meta/recipes-extended/timezone/timezone.inc +++ b/meta/recipes-extended/timezone/timezone.inc | |||
@@ -6,7 +6,7 @@ SECTION = "base" | |||
6 | LICENSE = "PD & BSD-3-Clause" | 6 | LICENSE = "PD & BSD-3-Clause" |
7 | LIC_FILES_CHKSUM = "file://LICENSE;md5=c679c9d6b02bc2757b3eaf8f53c43fba" | 7 | LIC_FILES_CHKSUM = "file://LICENSE;md5=c679c9d6b02bc2757b3eaf8f53c43fba" |
8 | 8 | ||
9 | PV = "2024b" | 9 | PV = "2025a" |
10 | 10 | ||
11 | SRC_URI =" http://www.iana.org/time-zones/repository/releases/tzcode${PV}.tar.gz;name=tzcode;subdir=tz \ | 11 | SRC_URI =" http://www.iana.org/time-zones/repository/releases/tzcode${PV}.tar.gz;name=tzcode;subdir=tz \ |
12 | http://www.iana.org/time-zones/repository/releases/tzdata${PV}.tar.gz;name=tzdata;subdir=tz \ | 12 | http://www.iana.org/time-zones/repository/releases/tzdata${PV}.tar.gz;name=tzdata;subdir=tz \ |
@@ -16,5 +16,5 @@ S = "${WORKDIR}/tz" | |||
16 | 16 | ||
17 | UPSTREAM_CHECK_URI = "http://www.iana.org/time-zones" | 17 | UPSTREAM_CHECK_URI = "http://www.iana.org/time-zones" |
18 | 18 | ||
19 | SRC_URI[tzcode.sha256sum] = "5e438fc449624906af16a18ff4573739f0cda9862e5ec28d3bcb19cbaed0f672" | 19 | SRC_URI[tzcode.sha256sum] = "119679d59f76481eb5e03d3d2a47d7870d592f3999549af189dbd31f2ebf5061" |
20 | SRC_URI[tzdata.sha256sum] = "70e754db126a8d0db3d16d6b4cb5f7ec1e04d5f261255e4558a67fe92d39e550" | 20 | SRC_URI[tzdata.sha256sum] = "4d5fcbc72c7c450ebfe0b659bd0f1c02fbf52fd7f517a9ea13fe71c21eb5f0d0" |
diff --git a/meta/recipes-extended/timezone/tzcode-native.bb b/meta/recipes-extended/timezone/tzcode-native.bb index d0b23a9d80..dc9f076377 100644 --- a/meta/recipes-extended/timezone/tzcode-native.bb +++ b/meta/recipes-extended/timezone/tzcode-native.bb | |||
@@ -4,7 +4,7 @@ SUMMARY = "tzcode, timezone zoneinfo utils -- zic, zdump, tzselect" | |||
4 | 4 | ||
5 | inherit native | 5 | inherit native |
6 | 6 | ||
7 | EXTRA_OEMAKE += "cc='${CC}'" | 7 | EXTRA_OEMAKE += "CC='${CC}'" |
8 | 8 | ||
9 | do_install () { | 9 | do_install () { |
10 | install -d ${D}${bindir}/ | 10 | install -d ${D}${bindir}/ |
diff --git a/meta/recipes-gnome/libsecret/libsecret/0001-meson-add-option-to-disable-pam-tests.patch b/meta/recipes-gnome/libsecret/libsecret/0001-meson-add-option-to-disable-pam-tests.patch index 87ab8a32cd..1bd49bbc38 100644 --- a/meta/recipes-gnome/libsecret/libsecret/0001-meson-add-option-to-disable-pam-tests.patch +++ b/meta/recipes-gnome/libsecret/libsecret/0001-meson-add-option-to-disable-pam-tests.patch | |||
@@ -3,7 +3,7 @@ From: Markus Volk <f_l_k@t-online.de> | |||
3 | Date: Tue, 3 Dec 2024 15:58:17 +0100 | 3 | Date: Tue, 3 Dec 2024 15:58:17 +0100 |
4 | Subject: [PATCH] meson: add option to disable pam tests | 4 | Subject: [PATCH] meson: add option to disable pam tests |
5 | 5 | ||
6 | Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/libsecret/-/merge_requests/151/commits] | 6 | Upstream-Status: Denied [https://gitlab.gnome.org/GNOME/libsecret/-/merge_requests/151] |
7 | 7 | ||
8 | Signed-off-by: Markus Volk <f_l_k@t-online.de> | 8 | Signed-off-by: Markus Volk <f_l_k@t-online.de> |
9 | --- | 9 | --- |
diff --git a/meta/recipes-graphics/piglit/piglit/0001-CMakeLists.txt-do-not-obtain-wayland-scanner-path-fr.patch b/meta/recipes-graphics/piglit/piglit/0001-CMakeLists.txt-do-not-obtain-wayland-scanner-path-fr.patch index 75c2d2fbfc..c7e6a68e23 100644 --- a/meta/recipes-graphics/piglit/piglit/0001-CMakeLists.txt-do-not-obtain-wayland-scanner-path-fr.patch +++ b/meta/recipes-graphics/piglit/piglit/0001-CMakeLists.txt-do-not-obtain-wayland-scanner-path-fr.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From db3a33a91ce0a28f297fe270167cf2d0a44354e2 Mon Sep 17 00:00:00 2001 | 1 | From ae76c836d98320dacb00616e19af93ac20c48825 Mon Sep 17 00:00:00 2001 |
2 | From: Alexander Kanavin <alex@linutronix.de> | 2 | From: Alexander Kanavin <alex@linutronix.de> |
3 | Date: Fri, 23 Aug 2024 15:29:45 +0200 | 3 | Date: Fri, 23 Aug 2024 15:29:45 +0200 |
4 | Subject: [PATCH] CMakeLists.txt: do not obtain wayland-scanner path from | 4 | Subject: [PATCH] CMakeLists.txt: do not obtain wayland-scanner path from |
diff --git a/meta/recipes-graphics/piglit/piglit/0001-tests-Fix-narrowing-errors-seen-with-clang.patch b/meta/recipes-graphics/piglit/piglit/0001-tests-Fix-narrowing-errors-seen-with-clang.patch index 22dd6c360a..8b7da9f43d 100644 --- a/meta/recipes-graphics/piglit/piglit/0001-tests-Fix-narrowing-errors-seen-with-clang.patch +++ b/meta/recipes-graphics/piglit/piglit/0001-tests-Fix-narrowing-errors-seen-with-clang.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 6559f5a7d82d411eb035f9d7c5dfb9987182803d Mon Sep 17 00:00:00 2001 | 1 | From e1d84dc54b0eca3cef1136264dbbceb9ea19524c Mon Sep 17 00:00:00 2001 |
2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
3 | Date: Wed, 3 May 2023 21:59:43 -0700 | 3 | Date: Wed, 3 May 2023 21:59:43 -0700 |
4 | Subject: [PATCH] tests: Fix narrowing errors seen with clang | 4 | Subject: [PATCH] tests: Fix narrowing errors seen with clang |
diff --git a/meta/recipes-graphics/piglit/piglit/0001-tests-egl-spec-make-egl_ext_surface_compression-cond.patch b/meta/recipes-graphics/piglit/piglit/0001-tests-egl-spec-make-egl_ext_surface_compression-cond.patch index c9e7fe1e96..d68e9d477d 100644 --- a/meta/recipes-graphics/piglit/piglit/0001-tests-egl-spec-make-egl_ext_surface_compression-cond.patch +++ b/meta/recipes-graphics/piglit/piglit/0001-tests-egl-spec-make-egl_ext_surface_compression-cond.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 8320c2ff5793a612aa7d7223ae317657744169f1 Mon Sep 17 00:00:00 2001 | 1 | From e23bacb04ff77f86e56d6684451e5e93b59f1b0a Mon Sep 17 00:00:00 2001 |
2 | From: Alexander Kanavin <alex@linutronix.de> | 2 | From: Alexander Kanavin <alex@linutronix.de> |
3 | Date: Fri, 22 Nov 2024 22:52:31 +0100 | 3 | Date: Fri, 22 Nov 2024 22:52:31 +0100 |
4 | Subject: [PATCH] tests/egl/spec: make egl_ext_surface_compression conditional | 4 | Subject: [PATCH] tests/egl/spec: make egl_ext_surface_compression conditional |
diff --git a/meta/recipes-graphics/piglit/piglit/0002-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch b/meta/recipes-graphics/piglit/piglit/0002-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch index fd085da220..a934d48c56 100644 --- a/meta/recipes-graphics/piglit/piglit/0002-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch +++ b/meta/recipes-graphics/piglit/piglit/0002-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 29033f323d870552410c31d1e3721304b8a38e99 Mon Sep 17 00:00:00 2001 | 1 | From 6810358403b2de577d76cab80a4e39da77c5c442 Mon Sep 17 00:00:00 2001 |
2 | From: Pascal Bach <pascal.bach@siemens.com> | 2 | From: Pascal Bach <pascal.bach@siemens.com> |
3 | Date: Thu, 4 Oct 2018 14:43:17 +0200 | 3 | Date: Thu, 4 Oct 2018 14:43:17 +0200 |
4 | Subject: [PATCH] cmake: use proper WAYLAND_INCLUDE_DIRS variable | 4 | Subject: [PATCH] cmake: use proper WAYLAND_INCLUDE_DIRS variable |
diff --git a/meta/recipes-graphics/piglit/piglit/0003-tests-util-piglit-shader.c-do-not-hardcode-build-pat.patch b/meta/recipes-graphics/piglit/piglit/0003-tests-util-piglit-shader.c-do-not-hardcode-build-pat.patch index ce1ce12a07..fa9cad3687 100644 --- a/meta/recipes-graphics/piglit/piglit/0003-tests-util-piglit-shader.c-do-not-hardcode-build-pat.patch +++ b/meta/recipes-graphics/piglit/piglit/0003-tests-util-piglit-shader.c-do-not-hardcode-build-pat.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From ddd12c056bf05f80ddd728750a519bc502d55f3e Mon Sep 17 00:00:00 2001 | 1 | From d18b10cde60f209375e79db480c46489d483c7f2 Mon Sep 17 00:00:00 2001 |
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | 2 | From: Alexander Kanavin <alex.kanavin@gmail.com> |
3 | Date: Tue, 10 Nov 2020 17:13:50 +0000 | 3 | Date: Tue, 10 Nov 2020 17:13:50 +0000 |
4 | Subject: [PATCH] tests/util/piglit-shader.c: do not hardcode build path into | 4 | Subject: [PATCH] tests/util/piglit-shader.c: do not hardcode build path into |
diff --git a/meta/recipes-graphics/piglit/piglit_git.bb b/meta/recipes-graphics/piglit/piglit_git.bb index 829cb7730f..c4091eecb0 100644 --- a/meta/recipes-graphics/piglit/piglit_git.bb +++ b/meta/recipes-graphics/piglit/piglit_git.bb | |||
@@ -15,7 +15,7 @@ SRC_URI = "git://gitlab.freedesktop.org/mesa/piglit.git;protocol=https;branch=ma | |||
15 | " | 15 | " |
16 | UPSTREAM_CHECK_COMMITS = "1" | 16 | UPSTREAM_CHECK_COMMITS = "1" |
17 | 17 | ||
18 | SRCREV = "00affcf3a78a1200cc8fb1e5264c19ac1f8f0fa2" | 18 | SRCREV = "631b72944f56e688f56a08d26c8a9f3988801a08" |
19 | # (when PV goes above 1.0 remove the trailing r) | 19 | # (when PV goes above 1.0 remove the trailing r) |
20 | PV = "1.0+gitr" | 20 | PV = "1.0+gitr" |
21 | 21 | ||
diff --git a/meta/recipes-graphics/xorg-font/font-util_1.4.1.bb b/meta/recipes-graphics/xorg-font/font-util_1.4.1.bb index 0c65927fb4..6ad112aca7 100644 --- a/meta/recipes-graphics/xorg-font/font-util_1.4.1.bb +++ b/meta/recipes-graphics/xorg-font/font-util_1.4.1.bb | |||
@@ -2,7 +2,7 @@ SUMMARY = "X.Org font package creation/installation utilities" | |||
2 | 2 | ||
3 | require xorg-font-common.inc | 3 | require xorg-font-common.inc |
4 | 4 | ||
5 | LICENSE = "Unicode-TOU & BSD-4-Clause & BSD-2-Clause" | 5 | LICENSE = "Unicode-TOU & MIT & X11 & BSD-2-Clause" |
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=2a9e705c00e463c8d294f90486852e06 \ | 6 | LIC_FILES_CHKSUM = "file://COPYING;md5=2a9e705c00e463c8d294f90486852e06 \ |
7 | file://ucs2any.c;endline=28;md5=8357dc567fc628bd12696f15b2a33bcb \ | 7 | file://ucs2any.c;endline=28;md5=8357dc567fc628bd12696f15b2a33bcb \ |
8 | file://bdftruncate.c;endline=26;md5=4f82ffc101a1b165eae9c6998abff937 \ | 8 | file://bdftruncate.c;endline=26;md5=4f82ffc101a1b165eae9c6998abff937 \ |
diff --git a/meta/recipes-graphics/xorg-lib/libxfont2_2.0.7.bb b/meta/recipes-graphics/xorg-lib/libxfont2_2.0.7.bb index bf0c7d0775..bf49d728b9 100644 --- a/meta/recipes-graphics/xorg-lib/libxfont2_2.0.7.bb +++ b/meta/recipes-graphics/xorg-lib/libxfont2_2.0.7.bb | |||
@@ -6,7 +6,7 @@ such as freetype)." | |||
6 | 6 | ||
7 | require xorg-lib-common.inc | 7 | require xorg-lib-common.inc |
8 | 8 | ||
9 | LICENSE = "MIT & MIT & BSD-4-Clause & BSD-2-Clause" | 9 | LICENSE = "MIT & MIT & BSD-4-Clause-UC & BSD-2-Clause" |
10 | LIC_FILES_CHKSUM = "file://COPYING;md5=a5d1388c9d40be70dbad35fa440443f7" | 10 | LIC_FILES_CHKSUM = "file://COPYING;md5=a5d1388c9d40be70dbad35fa440443f7" |
11 | 11 | ||
12 | DEPENDS += "freetype xtrans xorgproto libfontenc zlib" | 12 | DEPENDS += "freetype xtrans xorgproto libfontenc zlib" |
diff --git a/meta/recipes-graphics/xorg-lib/libxkbcommon_1.7.0.bb b/meta/recipes-graphics/xorg-lib/libxkbcommon_1.7.0.bb index 40cf616f0b..d87ff661d9 100644 --- a/meta/recipes-graphics/xorg-lib/libxkbcommon_1.7.0.bb +++ b/meta/recipes-graphics/xorg-lib/libxkbcommon_1.7.0.bb | |||
@@ -31,9 +31,9 @@ python populate_packages:prepend () { | |||
31 | do_split_packages(d, d.expand('${libdir}'), r'^(lib.*)\.so\.*', '%s', '%s library', extra_depends='', allow_links=True) | 31 | do_split_packages(d, d.expand('${libdir}'), r'^(lib.*)\.so\.*', '%s', '%s library', extra_depends='', allow_links=True) |
32 | } | 32 | } |
33 | 33 | ||
34 | # Fix a following runtime error: | 34 | # Recommended to fix a possible runtime error: |
35 | # xkbcommon: ERROR: couldn't find a Compose file for locale "C" | 35 | # xkbcommon: ERROR: couldn't find a Compose file for locale "C" |
36 | RDEPENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libx11-locale', 'libx11-compose-data', d)}" | 36 | RRECOMMENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libx11-locale', 'libx11-compose-data', d)}" |
37 | 37 | ||
38 | BBCLASSEXTEND += "native" | 38 | BBCLASSEXTEND += "native" |
39 | 39 | ||
diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_20241210.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_20250109.bb index d3757b5bbc..f0b710a6cc 100644 --- a/meta/recipes-kernel/linux-firmware/linux-firmware_20241210.bb +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_20250109.bb | |||
@@ -158,7 +158,7 @@ LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \ | |||
158 | " | 158 | " |
159 | # WHENCE checksum is defined separately to ease overriding it if | 159 | # WHENCE checksum is defined separately to ease overriding it if |
160 | # class-devupstream is selected. | 160 | # class-devupstream is selected. |
161 | WHENCE_CHKSUM = "0b30c661e226decdac3acd31d83517e0" | 161 | WHENCE_CHKSUM = "c90a25ccbd027eb8d61b2943ab68447c" |
162 | 162 | ||
163 | # These are not common licenses, set NO_GENERIC_LICENSE for them | 163 | # These are not common licenses, set NO_GENERIC_LICENSE for them |
164 | # so that the license files will be copied from fetched source | 164 | # so that the license files will be copied from fetched source |
@@ -247,7 +247,7 @@ SRC_URI:class-devupstream = "git://git.kernel.org/pub/scm/linux/kernel/git/firmw | |||
247 | # Pin this to the 20220509 release, override this in local.conf | 247 | # Pin this to the 20220509 release, override this in local.conf |
248 | SRCREV:class-devupstream ?= "b19cbdca78ab2adfd210c91be15a22568e8b8cae" | 248 | SRCREV:class-devupstream ?= "b19cbdca78ab2adfd210c91be15a22568e8b8cae" |
249 | 249 | ||
250 | SRC_URI[sha256sum] = "2bb035708576d076f97d4196a1c22e0a4d33fbb0210d05428d0bf4f243e99af5" | 250 | SRC_URI[sha256sum] = "a12cb38f4793394bf56c6702be29b6e4f09deca0714943bba98a492030651570" |
251 | 251 | ||
252 | inherit allarch | 252 | inherit allarch |
253 | 253 | ||
@@ -259,6 +259,9 @@ PACKAGECONFIG[deduplicate] = ",,rdfind-native" | |||
259 | # Possible values are "xz" and "zst". | 259 | # Possible values are "xz" and "zst". |
260 | FIRMWARE_COMPRESSION ?= "" | 260 | FIRMWARE_COMPRESSION ?= "" |
261 | 261 | ||
262 | # Specifying -j requires GNU parallel, which is a part of meta-oe | ||
263 | PARALLEL_MAKE = "" | ||
264 | |||
262 | def fw_compr_suffix(d): | 265 | def fw_compr_suffix(d): |
263 | compr = d.getVar('FIRMWARE_COMPRESSION') | 266 | compr = d.getVar('FIRMWARE_COMPRESSION') |
264 | if compr == '': | 267 | if compr == '': |
@@ -287,6 +290,32 @@ PACKAGES =+ "${PN}-amphion-vpu-license ${PN}-amphion-vpu \ | |||
287 | ${PN}-mt76x-license ${PN}-mt7601u ${PN}-mt7650 ${PN}-mt76x2 \ | 290 | ${PN}-mt76x-license ${PN}-mt7601u ${PN}-mt7650 ${PN}-mt76x2 \ |
288 | ${PN}-radeon-license ${PN}-radeon \ | 291 | ${PN}-radeon-license ${PN}-radeon \ |
289 | ${PN}-amdgpu-license ${PN}-amdgpu \ | 292 | ${PN}-amdgpu-license ${PN}-amdgpu \ |
293 | ${PN}-amdgpu-aldebaran \ | ||
294 | ${PN}-amdgpu-carrizo \ | ||
295 | ${PN}-amdgpu-cezanne \ | ||
296 | ${PN}-amdgpu-fiji \ | ||
297 | ${PN}-amdgpu-hawaii \ | ||
298 | ${PN}-amdgpu-navi10 \ | ||
299 | ${PN}-amdgpu-navi14 \ | ||
300 | ${PN}-amdgpu-navi21 \ | ||
301 | ${PN}-amdgpu-navi22 \ | ||
302 | ${PN}-amdgpu-navi23 \ | ||
303 | ${PN}-amdgpu-navi24 \ | ||
304 | ${PN}-amdgpu-navi31 \ | ||
305 | ${PN}-amdgpu-navi32 \ | ||
306 | ${PN}-amdgpu-oland \ | ||
307 | ${PN}-amdgpu-polaris10 \ | ||
308 | ${PN}-amdgpu-polaris11 \ | ||
309 | ${PN}-amdgpu-polaris12 \ | ||
310 | ${PN}-amdgpu-raven \ | ||
311 | ${PN}-amdgpu-rembrandt \ | ||
312 | ${PN}-amdgpu-renoir \ | ||
313 | ${PN}-amdgpu-stoney \ | ||
314 | ${PN}-amdgpu-tonga \ | ||
315 | ${PN}-amdgpu-topaz \ | ||
316 | ${PN}-amdgpu-vega10 \ | ||
317 | ${PN}-amdgpu-vega12 \ | ||
318 | ${PN}-amdgpu-misc \ | ||
290 | ${PN}-marvell-license ${PN}-pcie8897 ${PN}-pcie8997 \ | 319 | ${PN}-marvell-license ${PN}-pcie8897 ${PN}-pcie8997 \ |
291 | ${PN}-mediatek-license ${PN}-mediatek \ | 320 | ${PN}-mediatek-license ${PN}-mediatek \ |
292 | ${PN}-microchip-license ${PN}-microchip \ | 321 | ${PN}-microchip-license ${PN}-microchip \ |
@@ -343,8 +372,39 @@ PACKAGES =+ "${PN}-amphion-vpu-license ${PN}-amphion-vpu \ | |||
343 | ${PN}-carl9170 \ | 372 | ${PN}-carl9170 \ |
344 | ${PN}-qcom-qcm2290-wifi ${PN}-qcom-qrb4210-wifi ${PN}-qcom-sdm845-modem \ | 373 | ${PN}-qcom-qcm2290-wifi ${PN}-qcom-qrb4210-wifi ${PN}-qcom-sdm845-modem \ |
345 | ${PN}-ar3k-license ${PN}-ar3k \ | 374 | ${PN}-ar3k-license ${PN}-ar3k \ |
346 | ${PN}-ath10k-license ${PN}-ath10k-wcn3990 ${PN}-ath10k \ | 375 | ${PN}-ath10k-license ${PN}-ath10k \ |
347 | ${PN}-ath11k ${PN}-ath12k ${PN}-qca \ | 376 | ${PN}-ath10k-qca4019 \ |
377 | ${PN}-ath10k-qca6174 \ | ||
378 | ${PN}-ath10k-qca9377 \ | ||
379 | ${PN}-ath10k-qca9887 \ | ||
380 | ${PN}-ath10k-qca9888 \ | ||
381 | ${PN}-ath10k-qca988x \ | ||
382 | ${PN}-ath10k-qca9984 \ | ||
383 | ${PN}-ath10k-qca99x0 \ | ||
384 | ${PN}-ath10k-wcn3990 \ | ||
385 | ${PN}-ath10k-misc \ | ||
386 | ${PN}-ath11k \ | ||
387 | ${PN}-ath11k-ipq5018 \ | ||
388 | ${PN}-ath11k-ipq6018 \ | ||
389 | ${PN}-ath11k-ipq8074 \ | ||
390 | ${PN}-ath11k-qca2066 \ | ||
391 | ${PN}-ath11k-qca6390 \ | ||
392 | ${PN}-ath11k-qcn9074 \ | ||
393 | ${PN}-ath11k-wcn6750 \ | ||
394 | ${PN}-ath11k-wcn6855 \ | ||
395 | ${PN}-ath11k-misc \ | ||
396 | ${PN}-ath12k \ | ||
397 | ${PN}-ath12k-qcn9274 \ | ||
398 | ${PN}-ath12k-wcn7850 \ | ||
399 | ${PN}-ath12k-misc \ | ||
400 | ${PN}-qca \ | ||
401 | ${PN}-qca-qca61x4 \ | ||
402 | ${PN}-qca-wcn3988 \ | ||
403 | ${PN}-qca-wcn399x \ | ||
404 | ${PN}-qca-wcn6750 \ | ||
405 | ${PN}-qca-qca2066 \ | ||
406 | ${PN}-qca-wcn7850 \ | ||
407 | ${PN}-qca-misc \ | ||
348 | \ | 408 | \ |
349 | ${PN}-imx-sdma-license ${PN}-imx-sdma-imx6q ${PN}-imx-sdma-imx7d \ | 409 | ${PN}-imx-sdma-license ${PN}-imx-sdma-imx6q ${PN}-imx-sdma-imx7d \ |
350 | \ | 410 | \ |
@@ -505,9 +565,38 @@ LICENSE:${PN}-carl9170 = "GPL-2.0-or-later" | |||
505 | LICENSE:${PN}-ar3k = "Firmware-qualcommAthos_ar3k & Firmware-atheros_firmware" | 565 | LICENSE:${PN}-ar3k = "Firmware-qualcommAthos_ar3k & Firmware-atheros_firmware" |
506 | LICENSE:${PN}-ar3k-license = "Firmware-qualcommAthos_ar3k" | 566 | LICENSE:${PN}-ar3k-license = "Firmware-qualcommAthos_ar3k" |
507 | LICENSE:${PN}-ath10k = "Firmware-qualcommAthos_ath10k" | 567 | LICENSE:${PN}-ath10k = "Firmware-qualcommAthos_ath10k" |
568 | LICENSE:${PN}-ath10k-qca4019 = "Firmware-qualcommAthos_ath10k" | ||
569 | LICENSE:${PN}-ath10k-qca6174 = "Firmware-qualcommAthos_ath10k" | ||
570 | LICENSE:${PN}-ath10k-qca9377 = "Firmware-qualcommAthos_ath10k" | ||
571 | LICENSE:${PN}-ath10k-qca9887 = "Firmware-qualcommAthos_ath10k" | ||
572 | LICENSE:${PN}-ath10k-qca9888 = "Firmware-qualcommAthos_ath10k" | ||
573 | LICENSE:${PN}-ath10k-qca988x = "Firmware-qualcommAthos_ath10k" | ||
574 | LICENSE:${PN}-ath10k-qca9984 = "Firmware-qualcommAthos_ath10k" | ||
575 | LICENSE:${PN}-ath10k-qca99x0 = "Firmware-qualcommAthos_ath10k" | ||
508 | LICENSE:${PN}-ath10k-wcn3990 = "Firmware-qualcommAthos_ath10k" | 576 | LICENSE:${PN}-ath10k-wcn3990 = "Firmware-qualcommAthos_ath10k" |
577 | LICENSE:${PN}-ath10k-misc = "Firmware-qualcommAthos_ath10k" | ||
509 | LICENSE:${PN}-ath10k-license = "Firmware-qualcommAthos_ath10k" | 578 | LICENSE:${PN}-ath10k-license = "Firmware-qualcommAthos_ath10k" |
510 | LICENSE:${PN}-qca = "Firmware-qualcommAthos_ath10k" | 579 | LICENSE:${PN}-ath11k = "Firmware-qualcommAthos_ath10k" |
580 | LICENSE:${PN}-ath11k-ipq5018 = "Firmware-qualcommAthos_ath10k" | ||
581 | LICENSE:${PN}-ath11k-ipq6018 = "Firmware-qualcommAthos_ath10k" | ||
582 | LICENSE:${PN}-ath11k-ipq8074 = "Firmware-qualcommAthos_ath10k" | ||
583 | LICENSE:${PN}-ath11k-qca2066 = "Firmware-qualcommAthos_ath10k" | ||
584 | LICENSE:${PN}-ath11k-qca6390 = "Firmware-qualcommAthos_ath10k" | ||
585 | LICENSE:${PN}-ath11k-qcn9074 = "Firmware-qualcommAthos_ath10k" | ||
586 | LICENSE:${PN}-ath11k-wcn6750 = "Firmware-qualcommAthos_ath10k" | ||
587 | LICENSE:${PN}-ath11k-wcn6855 = "Firmware-qualcommAthos_ath10k" | ||
588 | LICENSE:${PN}-ath11k-misc = "Firmware-qualcommAthos_ath10k" | ||
589 | LICENSE:${PN}-ath12k = "Firmware-qualcommAthos_ath10k" | ||
590 | LICENSE:${PN}-ath12k-qcn9274 = "Firmware-qualcommAthos_ath10k" | ||
591 | LICENSE:${PN}-ath12k-wcn7850 = "Firmware-qualcommAthos_ath10k" | ||
592 | LICENSE:${PN}-ath12k-misc = "Firmware-qualcommAthos_ath10k" | ||
593 | LICENSE:${PN}-qca-qca61x4 = "Firmware-qualcommAthos_ath10k" | ||
594 | LICENSE:${PN}-qca-wcn3988 = "Firmware-qcom" | ||
595 | LICENSE:${PN}-qca-wcn399x = "Firmware-qualcommAthos_ath10k" | ||
596 | LICENSE:${PN}-qca-wcn6750 = "Firmware-qualcommAthos_ath10k" | ||
597 | LICENSE:${PN}-qca-qca2066 = "Firmware-qualcommAthos_ath10k" | ||
598 | LICENSE:${PN}-qca-wcn7850 = "Firmware-qcom" | ||
599 | LICENSE:${PN}-qca-misc = "Firmware-qualcommAthos_ath10k & Firmware-qcom" | ||
511 | 600 | ||
512 | FILES:${PN}-ar3k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ar3k" | 601 | FILES:${PN}-ar3k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ar3k" |
513 | FILES:${PN}-ar3k = " \ | 602 | FILES:${PN}-ar3k = " \ |
@@ -515,33 +604,191 @@ FILES:${PN}-ar3k = " \ | |||
515 | " | 604 | " |
516 | 605 | ||
517 | FILES:${PN}-ath10k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ath10k" | 606 | FILES:${PN}-ath10k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ath10k" |
518 | FILES:${PN}-ath10k = " \ | 607 | FILES:${PN}-ath10k-qca4019 = "${nonarch_base_libdir}/firmware/ath10k/QCA4019" |
519 | ${nonarch_base_libdir}/firmware/ath10k \ | 608 | FILES:${PN}-ath10k-qca6174 = "${nonarch_base_libdir}/firmware/ath10k/QCA6174" |
520 | " | 609 | FILES:${PN}-ath10k-qca9377 = "${nonarch_base_libdir}/firmware/ath10k/QCA9377" |
521 | FILES:${PN}-ath10k-wcn3990 = " \ | 610 | FILES:${PN}-ath10k-qca9887 = "${nonarch_base_libdir}/firmware/ath10k/QCA9887" |
522 | ${nonarch_base_libdir}/firmware/ath10k/WCN3990 \ | 611 | FILES:${PN}-ath10k-qca9888 = "${nonarch_base_libdir}/firmware/ath10k/QCA9888" |
523 | " | 612 | FILES:${PN}-ath10k-qca988x = "${nonarch_base_libdir}/firmware/ath10k/QCA988X" |
524 | 613 | FILES:${PN}-ath10k-qca9984 = "${nonarch_base_libdir}/firmware/ath10k/QCA9984" | |
525 | FILES:${PN}-ath11k = " \ | 614 | FILES:${PN}-ath10k-qca99x0 = "${nonarch_base_libdir}/firmware/ath10k/QCA99X0" |
526 | ${nonarch_base_libdir}/firmware/ath11k \ | 615 | FILES:${PN}-ath10k-wcn3990 = "${nonarch_base_libdir}/firmware/ath10k/WCN3990" |
527 | " | 616 | FILES:${PN}-ath10k-misc = "${nonarch_base_libdir}/firmware/ath10k/*" |
528 | 617 | # -ath10k is a virtual package that depends upon all ath10k packages. | |
529 | FILES:${PN}-ath12k = " \ | 618 | ALLOW_EMPTY:${PN}-ath10k = "1" |
530 | ${nonarch_base_libdir}/firmware/ath12k \ | 619 | # -ath10k-misc is a catch all package that includes all the ath10k |
531 | " | 620 | # firmwares that are not already included in other -ath10k- packages. |
621 | ALLOW_EMPTY:${PN}-ath10k-misc = "1" | ||
622 | |||
623 | FILES:${PN}-ath11k-ipq5018 = "${nonarch_base_libdir}/firmware/ath11k/IPQ5018" | ||
624 | FILES:${PN}-ath11k-ipq6018 = "${nonarch_base_libdir}/firmware/ath11k/IPQ6018" | ||
625 | FILES:${PN}-ath11k-ipq8074 = "${nonarch_base_libdir}/firmware/ath11k/IPQ8074" | ||
626 | FILES:${PN}-ath11k-qca2066 = "${nonarch_base_libdir}/firmware/ath11k/QCA2066" | ||
627 | FILES:${PN}-ath11k-qca6390 = "${nonarch_base_libdir}/firmware/ath11k/QCA6390" | ||
628 | FILES:${PN}-ath11k-qcn9074 = "${nonarch_base_libdir}/firmware/ath11k/QCN9074" | ||
629 | FILES:${PN}-ath11k-wcn6750 = "${nonarch_base_libdir}/firmware/ath11k/WCN6750" | ||
630 | FILES:${PN}-ath11k-wcn6855 = "${nonarch_base_libdir}/firmware/ath11k/WCN6855" | ||
631 | FILES:${PN}-ath11k-misc = "${nonarch_base_libdir}/firmware/ath11k/*" | ||
632 | # -ath11k is a virtual package that depends upon all ath11k packages. | ||
633 | ALLOW_EMPTY:${PN}-ath11k = "1" | ||
634 | # -ath11k-misc is a catch all package that includes all the ath11k | ||
635 | # firmwares that are not already included in other -ath11k- packages. | ||
636 | ALLOW_EMPTY:${PN}-ath11k-misc = "1" | ||
637 | |||
638 | FILES:${PN}-ath12k-qcn9274 = "${nonarch_base_libdir}/firmware/ath12k/QCN9274" | ||
639 | FILES:${PN}-ath12k-wcn7850 = "${nonarch_base_libdir}/firmware/ath12k/WCN7850" | ||
640 | FILES:${PN}-ath12k-misc = "${nonarch_base_libdir}/firmware/ath12k/*" | ||
641 | # -ath12k is a virtual package that depends upon all ath12k packages. | ||
642 | ALLOW_EMPTY:${PN}-ath12k = "1" | ||
643 | # -ath12k-misc is a catch all package that includes all the ath12k | ||
644 | # firmwares that are not already included in other -ath12k- packages. | ||
645 | ALLOW_EMPTY:${PN}-ath12k-misc = "1" | ||
646 | |||
647 | FILES:${PN}-qca-qca61x4 = " \ | ||
648 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00000201.bin \ | ||
649 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00000200.bin \ | ||
650 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00000300.bin \ | ||
651 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00000302.bin \ | ||
652 | ${nonarch_base_libdir}/firmware/qca/nvm_00130300.bin \ | ||
653 | ${nonarch_base_libdir}/firmware/qca/nvm_00130302.bin \ | ||
654 | ${nonarch_base_libdir}/firmware/qca/nvm_00230302.bin \ | ||
655 | ${nonarch_base_libdir}/firmware/qca/rampatch_usb_00000200.bin \ | ||
656 | ${nonarch_base_libdir}/firmware/qca/rampatch_usb_00000201.bin \ | ||
657 | ${nonarch_base_libdir}/firmware/qca/rampatch_usb_00000300.bin \ | ||
658 | ${nonarch_base_libdir}/firmware/qca/rampatch_usb_00000302.bin \ | ||
659 | ${nonarch_base_libdir}/firmware/qca/rampatch_00130300.bin \ | ||
660 | ${nonarch_base_libdir}/firmware/qca/rampatch_00130302.bin \ | ||
661 | ${nonarch_base_libdir}/firmware/qca/rampatch_00230302.bin \ | ||
662 | ${nonarch_base_libdir}/firmware/qca/nvm_00440302.bin \ | ||
663 | ${nonarch_base_libdir}/firmware/qca/rampatch_00440302.bin \ | ||
664 | ${nonarch_base_libdir}/firmware/qca/nvm_00440302_eu.bin \ | ||
665 | ${nonarch_base_libdir}/firmware/qca/nvm_00440302_i2s_eu.bin \ | ||
666 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00000302_eu.bin \ | ||
667 | ${nonarch_base_libdir}/firmware/qca/htbtfw20.tlv \ | ||
668 | ${nonarch_base_libdir}/firmware/qca/htnv20.bin \ | ||
669 | ${nonarch_base_libdir}/firmware/qca/rampatch_usb_00130200.bin \ | ||
670 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00130200.bin \ | ||
671 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00130200_0104.bin \ | ||
672 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00130200_0105.bin \ | ||
673 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00130200_0106.bin \ | ||
674 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00130200_0107.bin \ | ||
675 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00130200_0109.bin \ | ||
676 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00130200_0110.bin \ | ||
677 | ${nonarch_base_libdir}/firmware/qca/rampatch_usb_00130201.bin \ | ||
678 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00130201.bin \ | ||
679 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00130201_010a.bin \ | ||
680 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00130201_010b.bin \ | ||
681 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00130201_0303.bin \ | ||
682 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00130201_gf.bin \ | ||
683 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00130201_gf_010a.bin \ | ||
684 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00130201_gf_010b.bin \ | ||
685 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00130201_gf_0303.bin \ | ||
686 | ${nonarch_base_libdir}/firmware/qca/rampatch_usb_00190200.bin \ | ||
687 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00190200.bin \ | ||
688 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00190200_010e.bin \ | ||
689 | ${nonarch_base_libdir}/firmware/qca/nvm_usb_00190200_0112.bin \ | ||
690 | " | ||
691 | FILES:${PN}-qca-wcn3988 = " \ | ||
692 | ${nonarch_base_libdir}/firmware/qca/apbtfw10.tlv \ | ||
693 | ${nonarch_base_libdir}/firmware/qca/apbtfw11.tlv \ | ||
694 | ${nonarch_base_libdir}/firmware/qca/apnv10.bin \ | ||
695 | ${nonarch_base_libdir}/firmware/qca/apnv11.bin \ | ||
696 | " | ||
697 | FILES:${PN}-qca-wcn399x = " \ | ||
698 | ${nonarch_base_libdir}/firmware/qca/crbtfw21.tlv \ | ||
699 | ${nonarch_base_libdir}/firmware/qca/crnv21.bin \ | ||
700 | ${nonarch_base_libdir}/firmware/qca/crbtfw32.tlv \ | ||
701 | ${nonarch_base_libdir}/firmware/qca/crnv32.bin \ | ||
702 | ${nonarch_base_libdir}/firmware/qca/crnv32u.bin \ | ||
703 | " | ||
704 | FILES:${PN}-qca-wcn6750 = " \ | ||
705 | ${nonarch_base_libdir}/firmware/qca/msbtfw11.mbn \ | ||
706 | ${nonarch_base_libdir}/firmware/qca/msbtfw11.tlv \ | ||
707 | ${nonarch_base_libdir}/firmware/qca/msnv11.bin \ | ||
708 | ${nonarch_base_libdir}/firmware/qca/msnv11.b0a \ | ||
709 | ${nonarch_base_libdir}/firmware/qca/msnv11.b09 \ | ||
710 | " | ||
711 | FILES:${PN}-qca-qca2066 = " \ | ||
712 | ${nonarch_base_libdir}/firmware/qca/hpbtfw21.tlv \ | ||
713 | ${nonarch_base_libdir}/firmware/qca/hpnv21.bin \ | ||
714 | ${nonarch_base_libdir}/firmware/qca/hpnv21g.bin \ | ||
715 | ${nonarch_base_libdir}/firmware/qca/hpnv21.301 \ | ||
716 | ${nonarch_base_libdir}/firmware/qca/hpnv21.302 \ | ||
717 | ${nonarch_base_libdir}/firmware/qca/hpnv21g.301 \ | ||
718 | ${nonarch_base_libdir}/firmware/qca/hpnv21g.302 \ | ||
719 | ${nonarch_base_libdir}/firmware/qca/hpnv21.309 \ | ||
720 | ${nonarch_base_libdir}/firmware/qca/hpnv21g.309 \ | ||
721 | ${nonarch_base_libdir}/firmware/qca/hpnv21.b8c \ | ||
722 | ${nonarch_base_libdir}/firmware/qca/hpnv21.b9f \ | ||
723 | ${nonarch_base_libdir}/firmware/qca/hpnv21.ba0 \ | ||
724 | ${nonarch_base_libdir}/firmware/qca/hpnv21.ba1 \ | ||
725 | ${nonarch_base_libdir}/firmware/qca/hpnv21.ba2 \ | ||
726 | ${nonarch_base_libdir}/firmware/qca/hpnv21.ba3 \ | ||
727 | ${nonarch_base_libdir}/firmware/qca/hpnv21.ba4 \ | ||
728 | ${nonarch_base_libdir}/firmware/qca/hpnv21.baa \ | ||
729 | ${nonarch_base_libdir}/firmware/qca/hpnv21.bb8 \ | ||
730 | ${nonarch_base_libdir}/firmware/qca/hpnv21.b10c \ | ||
731 | ${nonarch_base_libdir}/firmware/qca/hpnv21.b111 \ | ||
732 | ${nonarch_base_libdir}/firmware/qca/hpnv21g.b8c \ | ||
733 | ${nonarch_base_libdir}/firmware/qca/hpnv21g.b9f \ | ||
734 | ${nonarch_base_libdir}/firmware/qca/hpnv21g.ba0 \ | ||
735 | ${nonarch_base_libdir}/firmware/qca/hpnv21g.ba1 \ | ||
736 | ${nonarch_base_libdir}/firmware/qca/hpnv21g.ba2 \ | ||
737 | ${nonarch_base_libdir}/firmware/qca/hpnv21g.ba3 \ | ||
738 | ${nonarch_base_libdir}/firmware/qca/hpnv21g.ba4 \ | ||
739 | ${nonarch_base_libdir}/firmware/qca/hpnv21g.baa \ | ||
740 | ${nonarch_base_libdir}/firmware/qca/hpnv21g.bb8 \ | ||
741 | ${nonarch_base_libdir}/firmware/qca/hpnv21g.b10c \ | ||
742 | ${nonarch_base_libdir}/firmware/qca/hpnv21g.b111 \ | ||
743 | " | ||
744 | FILES:${PN}-qca-wcn7850 = " \ | ||
745 | ${nonarch_base_libdir}/firmware/qca/hmtbtfw20.tlv \ | ||
746 | ${nonarch_base_libdir}/firmware/qca/hmtnv20.b10f \ | ||
747 | ${nonarch_base_libdir}/firmware/qca/hmtnv20.b112 \ | ||
748 | ${nonarch_base_libdir}/firmware/qca/hmtnv20.bin \ | ||
749 | " | ||
750 | FILES:${PN}-qca-misc = "${nonarch_base_libdir}/firmware/qca/*" | ||
751 | # -qca is a virtual package that depends upon all qca packages. | ||
752 | ALLOW_EMPTY:${PN}-qca = "1" | ||
753 | # -qca-misc is a catch all package that includes all the qca | ||
754 | # firmwares that are not already included in other -qca- packages. | ||
755 | ALLOW_EMPTY:${PN}-qca-misc = "1" | ||
532 | 756 | ||
533 | FILES:${PN}-qca = " \ | ||
534 | ${nonarch_base_libdir}/firmware/qca \ | ||
535 | " | ||
536 | 757 | ||
537 | RDEPENDS:${PN}-ar3k += "${PN}-ar3k-license ${PN}-atheros-license" | 758 | RDEPENDS:${PN}-ar3k += "${PN}-ar3k-license ${PN}-atheros-license" |
538 | RDEPENDS:${PN}-ath10k += "${PN}-ath10k-license" | 759 | RDEPENDS:${PN}-ath10k += "${PN}-ath10k-license" |
539 | RDEPENDS:${PN}-ath10k += "${PN}-ath10k-wcn3990" | 760 | RDEPENDS:${PN}-ath10k-qca4019 += "${PN}-ath10k-license" |
761 | RDEPENDS:${PN}-ath10k-qca6174 += "${PN}-ath10k-license" | ||
762 | RDEPENDS:${PN}-ath10k-qca9377 += "${PN}-ath10k-license" | ||
763 | RDEPENDS:${PN}-ath10k-qca9887 += "${PN}-ath10k-license" | ||
764 | RDEPENDS:${PN}-ath10k-qca9888 += "${PN}-ath10k-license" | ||
765 | RDEPENDS:${PN}-ath10k-qca988x += "${PN}-ath10k-license" | ||
766 | RDEPENDS:${PN}-ath10k-qca9984 += "${PN}-ath10k-license" | ||
767 | RDEPENDS:${PN}-ath10k-qca99x0 += "${PN}-ath10k-license" | ||
540 | RDEPENDS:${PN}-ath10k-wcn3990 += "${PN}-ath10k-license" | 768 | RDEPENDS:${PN}-ath10k-wcn3990 += "${PN}-ath10k-license" |
769 | RDEPENDS:${PN}-ath10k-misc += "${PN}-ath10k-license" | ||
541 | RDEPENDS:${PN}-ath11k += "${PN}-ath10k-license" | 770 | RDEPENDS:${PN}-ath11k += "${PN}-ath10k-license" |
771 | RDEPENDS:${PN}-ath11k-ipq5018 += "${PN}-ath10k-license" | ||
772 | RDEPENDS:${PN}-ath11k-ipq6018 += "${PN}-ath10k-license" | ||
773 | RDEPENDS:${PN}-ath11k-ipq8074 += "${PN}-ath10k-license" | ||
774 | RDEPENDS:${PN}-ath11k-qca2066 += "${PN}-ath10k-license" | ||
775 | RDEPENDS:${PN}-ath11k-qca6390 += "${PN}-ath10k-license" | ||
776 | RDEPENDS:${PN}-ath11k-qcn9074 += "${PN}-ath10k-license" | ||
777 | RDEPENDS:${PN}-ath11k-wcn6750 += "${PN}-ath10k-license" | ||
778 | RDEPENDS:${PN}-ath11k-wcn6855 += "${PN}-ath10k-license" | ||
779 | RDEPENDS:${PN}-ath11k-misc += "${PN}-ath10k-license" | ||
542 | RDEPENDS:${PN}-ath12k += "${PN}-ath10k-license" | 780 | RDEPENDS:${PN}-ath12k += "${PN}-ath10k-license" |
543 | RDEPENDS:${PN}-qca += "${PN}-ath10k-license" | 781 | RDEPENDS:${PN}-ath12k-qcn9274 += "${PN}-ath10k-license" |
544 | 782 | RDEPENDS:${PN}-ath12k-wcn7850 += "${PN}-ath10k-license" | |
783 | RDEPENDS:${PN}-ath12k-misc += "${PN}-ath10k-license" | ||
784 | RDEPENDS:${PN}-qca += "${PN}-ath10k-license ${PN}-qcom-license" | ||
785 | RDEPENDS:${PN}-qca-qca61x4 += "${PN}-ath10k-license" | ||
786 | RDEPENDS:${PN}-qca-wcn3988 += "${PN}-qcom-license" | ||
787 | RDEPENDS:${PN}-qca-wcn399x += "${PN}-ath10k-license" | ||
788 | RDEPENDS:${PN}-qca-wcn6750 += "${PN}-ath10k-license" | ||
789 | RDEPENDS:${PN}-qca-qca2066 += "${PN}-ath10k-license" | ||
790 | RDEPENDS:${PN}-qca-wcn7850 += "${PN}-qcom-license" | ||
791 | RDEPENDS:${PN}-qca-misc += "${PN}-ath10k-license ${PN}-qcom-license" | ||
545 | # For ralink | 792 | # For ralink |
546 | LICENSE:${PN}-ralink = "Firmware-ralink-firmware" | 793 | LICENSE:${PN}-ralink = "Firmware-ralink-firmware" |
547 | LICENSE:${PN}-ralink-license = "Firmware-ralink-firmware" | 794 | LICENSE:${PN}-ralink-license = "Firmware-ralink-firmware" |
@@ -633,13 +880,107 @@ RDEPENDS:${PN}-radeon += "${PN}-radeon-license" | |||
633 | # For amdgpu | 880 | # For amdgpu |
634 | LICENSE:${PN}-amdgpu = "Firmware-amdgpu" | 881 | LICENSE:${PN}-amdgpu = "Firmware-amdgpu" |
635 | LICENSE:${PN}-amdgpu-license = "Firmware-amdgpu" | 882 | LICENSE:${PN}-amdgpu-license = "Firmware-amdgpu" |
883 | LICENSE:${PN}-amdgpu-aldebaran = "Firmware-amdgpu" | ||
884 | LICENSE:${PN}-amdgpu-carrizo = "Firmware-amdgpu" | ||
885 | LICENSE:${PN}-amdgpu-cezanne = "Firmware-amdgpu" | ||
886 | LICENSE:${PN}-amdgpu-fiji = "Firmware-amdgpu" | ||
887 | LICENSE:${PN}-amdgpu-hawaii = "Firmware-amdgpu" | ||
888 | LICENSE:${PN}-amdgpu-navi10 = "Firmware-amdgpu" | ||
889 | LICENSE:${PN}-amdgpu-navi14 = "Firmware-amdgpu" | ||
890 | LICENSE:${PN}-amdgpu-navi21 = "Firmware-amdgpu" | ||
891 | LICENSE:${PN}-amdgpu-navi22 = "Firmware-amdgpu" | ||
892 | LICENSE:${PN}-amdgpu-navi23 = "Firmware-amdgpu" | ||
893 | LICENSE:${PN}-amdgpu-navi24 = "Firmware-amdgpu" | ||
894 | LICENSE:${PN}-amdgpu-navi31 = "Firmware-amdgpu" | ||
895 | LICENSE:${PN}-amdgpu-navi32 = "Firmware-amdgpu" | ||
896 | LICENSE:${PN}-amdgpu-oland = "Firmware-amdgpu" | ||
897 | LICENSE:${PN}-amdgpu-polaris10 = "Firmware-amdgpu" | ||
898 | LICENSE:${PN}-amdgpu-polaris11 = "Firmware-amdgpu" | ||
899 | LICENSE:${PN}-amdgpu-polaris12 = "Firmware-amdgpu" | ||
900 | LICENSE:${PN}-amdgpu-raven = "Firmware-amdgpu" | ||
901 | LICENSE:${PN}-amdgpu-rembrandt = "Firmware-amdgpu" | ||
902 | LICENSE:${PN}-amdgpu-renoir = "Firmware-amdgpu" | ||
903 | LICENSE:${PN}-amdgpu-stoney = "Firmware-amdgpu" | ||
904 | LICENSE:${PN}-amdgpu-tonga = "Firmware-amdgpu" | ||
905 | LICENSE:${PN}-amdgpu-topaz = "Firmware-amdgpu" | ||
906 | LICENSE:${PN}-amdgpu-vega10 = "Firmware-amdgpu" | ||
907 | LICENSE:${PN}-amdgpu-vega12 = "Firmware-amdgpu" | ||
908 | LICENSE:${PN}-amdgpu-misc = "Firmware-amdgpu" | ||
636 | 909 | ||
637 | FILES:${PN}-amdgpu-license = "${nonarch_base_libdir}/firmware/LICENSE.amdgpu" | 910 | FILES:${PN}-amdgpu-license = "${nonarch_base_libdir}/firmware/LICENSE.amdgpu" |
638 | FILES:${PN}-amdgpu = " \ | 911 | FILES:${PN}-amdgpu-aldebaran = "${nonarch_base_libdir}/firmware/amdgpu/aldebaran_*.bin" |
639 | ${nonarch_base_libdir}/firmware/amdgpu \ | 912 | FILES:${PN}-amdgpu-carrizo = "${nonarch_base_libdir}/firmware/amdgpu/carrizo_*.bin" |
640 | " | 913 | FILES:${PN}-amdgpu-cezanne = "${nonarch_base_libdir}/firmware/amdgpu/green_sardine_*.bin" |
914 | FILES:${PN}-amdgpu-fiji = "${nonarch_base_libdir}/firmware/amdgpu/fiji_*.bin" | ||
915 | FILES:${PN}-amdgpu-hawaii = "${nonarch_base_libdir}/firmware/amdgpu/hawaii_*.bin" | ||
916 | FILES:${PN}-amdgpu-navi10 = "${nonarch_base_libdir}/firmware/amdgpu/navi10_*.bin" | ||
917 | FILES:${PN}-amdgpu-navi14 = "${nonarch_base_libdir}/firmware/amdgpu/navi14_*.bin" | ||
918 | FILES:${PN}-amdgpu-navi21 = "${nonarch_base_libdir}/firmware/amdgpu/sienna_cichlid_*.bin" | ||
919 | FILES:${PN}-amdgpu-navi22 = "${nonarch_base_libdir}/firmware/amdgpu/navy_flounder_*.bin" | ||
920 | FILES:${PN}-amdgpu-navi23 = "${nonarch_base_libdir}/firmware/amdgpu/dimgrey_cavefish_*.bin" | ||
921 | FILES:${PN}-amdgpu-navi24 = "${nonarch_base_libdir}/firmware/amdgpu/beige_goby_*.bin" | ||
922 | FILES:${PN}-amdgpu-navi31 = "${nonarch_base_libdir}/firmware/amdgpu/gc_11_0_0_*.bin \ | ||
923 | ${nonarch_base_libdir}/firmware/amdgpu/psp_13_0_0_sos.bin \ | ||
924 | ${nonarch_base_libdir}/firmware/amdgpu/psp_13_0_0_ta.bin \ | ||
925 | ${nonarch_base_libdir}/firmware/amdgpu/smu_13_0_0.bin \ | ||
926 | ${nonarch_base_libdir}/firmware/amdgpu/dcn_3_2_0_dmcub.bin \ | ||
927 | ${nonarch_base_libdir}/firmware/amdgpu/sdma_6_0_0.bin \ | ||
928 | ${nonarch_base_libdir}/firmware/amdgpu/vcn_4_0_0.bin \ | ||
929 | " | ||
930 | FILES:${PN}-amdgpu-navi32 = "${nonarch_base_libdir}/firmware/amdgpu/dcn_3_2_0_dmcub.bin \ | ||
931 | ${nonarch_base_libdir}/firmware/amdgpu/gc_11_0_3_*.bin \ | ||
932 | ${nonarch_base_libdir}/firmware/amdgpu/psp_13_0_10_sos.bin \ | ||
933 | ${nonarch_base_libdir}/firmware/amdgpu/psp_13_0_10_ta.bin \ | ||
934 | ${nonarch_base_libdir}/firmware/amdgpu/sdma_6_0_3.bin \ | ||
935 | ${nonarch_base_libdir}/firmware/amdgpu/smu_13_0_10.bin \ | ||
936 | ${nonarch_base_libdir}/firmware/amdgpu/vcn_4_0_0.bin \ | ||
937 | " | ||
938 | FILES:${PN}-amdgpu-oland = "${nonarch_base_libdir}/firmware/amdgpu/oland_*.bin" | ||
939 | FILES:${PN}-amdgpu-polaris10 = "${nonarch_base_libdir}/firmware/amdgpu/polaris10_*.bin" | ||
940 | FILES:${PN}-amdgpu-polaris11 = "${nonarch_base_libdir}/firmware/amdgpu/polaris11_*.bin" | ||
941 | FILES:${PN}-amdgpu-polaris12 = "${nonarch_base_libdir}/firmware/amdgpu/polaris12_*.bin" | ||
942 | FILES:${PN}-amdgpu-raven = "${nonarch_base_libdir}/firmware/amdgpu/raven_*.bin" | ||
943 | FILES:${PN}-amdgpu-rembrandt = "${nonarch_base_libdir}/firmware/amdgpu/yellow_carp_*.bin" | ||
944 | FILES:${PN}-amdgpu-renoir = "${nonarch_base_libdir}/firmware/amdgpu/renoir_*.bin" | ||
945 | FILES:${PN}-amdgpu-stoney = "${nonarch_base_libdir}/firmware/amdgpu/stoney_*.bin" | ||
946 | FILES:${PN}-amdgpu-tonga = "${nonarch_base_libdir}/firmware/amdgpu/tonga_*.bin" | ||
947 | FILES:${PN}-amdgpu-topaz = "${nonarch_base_libdir}/firmware/amdgpu/topaz_*.bin" | ||
948 | FILES:${PN}-amdgpu-vega10 = "${nonarch_base_libdir}/firmware/amdgpu/vega10_*.bin" | ||
949 | FILES:${PN}-amdgpu-vega12 = "${nonarch_base_libdir}/firmware/amdgpu/vega12_*.bin" | ||
950 | FILES:${PN}-amdgpu-misc = "${nonarch_base_libdir}/firmware/amdgpu/*" | ||
951 | # -amdgpu is a virtual package that depends upon all amdgpu packages. | ||
952 | ALLOW_EMPTY:${PN}-amdgpu = "1" | ||
953 | # -amdgpu-misc is a catch all package that includes all the amdgpu | ||
954 | # firmwares that are not already included in other -amdgpu- packages. | ||
955 | ALLOW_EMPTY:${PN}-amdgpu-misc = "1" | ||
641 | 956 | ||
642 | RDEPENDS:${PN}-amdgpu += "${PN}-amdgpu-license" | 957 | RDEPENDS:${PN}-amdgpu += "${PN}-amdgpu-license" |
958 | RDEPENDS:${PN}-amdgpu-aldebaran += "${PN}-amdgpu-license" | ||
959 | RDEPENDS:${PN}-amdgpu-carrizo += "${PN}-amdgpu-license" | ||
960 | RDEPENDS:${PN}-amdgpu-cezanne += "${PN}-amdgpu-license" | ||
961 | RDEPENDS:${PN}-amdgpu-fiji += "${PN}-amdgpu-license" | ||
962 | RDEPENDS:${PN}-amdgpu-hawaii += "${PN}-amdgpu-license" | ||
963 | RDEPENDS:${PN}-amdgpu-navi10 += "${PN}-amdgpu-license" | ||
964 | RDEPENDS:${PN}-amdgpu-navi14 += "${PN}-amdgpu-license" | ||
965 | RDEPENDS:${PN}-amdgpu-navi21 += "${PN}-amdgpu-license" | ||
966 | RDEPENDS:${PN}-amdgpu-navi22 += "${PN}-amdgpu-license" | ||
967 | RDEPENDS:${PN}-amdgpu-navi23 += "${PN}-amdgpu-license" | ||
968 | RDEPENDS:${PN}-amdgpu-navi24 += "${PN}-amdgpu-license" | ||
969 | RDEPENDS:${PN}-amdgpu-navi31 += "${PN}-amdgpu-license" | ||
970 | RDEPENDS:${PN}-amdgpu-navi32 += "${PN}-amdgpu-license" | ||
971 | RDEPENDS:${PN}-amdgpu-oland += "${PN}-amdgpu-license" | ||
972 | RDEPENDS:${PN}-amdgpu-polaris10 += "${PN}-amdgpu-license" | ||
973 | RDEPENDS:${PN}-amdgpu-polaris11 += "${PN}-amdgpu-license" | ||
974 | RDEPENDS:${PN}-amdgpu-polaris12 += "${PN}-amdgpu-license" | ||
975 | RDEPENDS:${PN}-amdgpu-raven += "${PN}-amdgpu-license" | ||
976 | RDEPENDS:${PN}-amdgpu-rembrandt += "${PN}-amdgpu-license" | ||
977 | RDEPENDS:${PN}-amdgpu-renoir += "${PN}-amdgpu-license" | ||
978 | RDEPENDS:${PN}-amdgpu-stoney += "${PN}-amdgpu-license" | ||
979 | RDEPENDS:${PN}-amdgpu-tonga += "${PN}-amdgpu-license" | ||
980 | RDEPENDS:${PN}-amdgpu-topaz += "${PN}-amdgpu-license" | ||
981 | RDEPENDS:${PN}-amdgpu-vega10 += "${PN}-amdgpu-license" | ||
982 | RDEPENDS:${PN}-amdgpu-vega12 += "${PN}-amdgpu-license" | ||
983 | RDEPENDS:${PN}-amdgpu-misc += "${PN}-amdgpu-license" | ||
643 | 984 | ||
644 | # For lontium | 985 | # For lontium |
645 | LICENSE:${PN}-lt9611uxc = "Firmware-Lontium" | 986 | LICENSE:${PN}-lt9611uxc = "Firmware-Lontium" |
@@ -1694,6 +2035,11 @@ RDEPENDS:${PN} += "${PN}-whence-license" | |||
1694 | # Make linux-firmware depend on all of the split-out packages. | 2035 | # Make linux-firmware depend on all of the split-out packages. |
1695 | # Make linux-firmware-iwlwifi depend on all of the split-out iwlwifi packages. | 2036 | # Make linux-firmware-iwlwifi depend on all of the split-out iwlwifi packages. |
1696 | # Make linux-firmware-ibt depend on all of the split-out ibt packages. | 2037 | # Make linux-firmware-ibt depend on all of the split-out ibt packages. |
2038 | # Make linux-firmware-ath10k depend on all of the split-out ath10k packages. | ||
2039 | # Make linux-firmware-ath11k depend on all of the split-out ath11k packages. | ||
2040 | # Make linux-firmware-ath12k depend on all of the split-out ath12k packages. | ||
2041 | # Make linux-firmware-qca depend on all of the split-out qca packages. | ||
2042 | # Make linux-firmware-amdgpu depend on all of the split-out amdgpu packages. | ||
1697 | python populate_packages:prepend () { | 2043 | python populate_packages:prepend () { |
1698 | firmware_pkgs = oe.utils.packages_filter_out_system(d) | 2044 | firmware_pkgs = oe.utils.packages_filter_out_system(d) |
1699 | d.appendVar('RRECOMMENDS:linux-firmware', ' ' + ' '.join(firmware_pkgs)) | 2045 | d.appendVar('RRECOMMENDS:linux-firmware', ' ' + ' '.join(firmware_pkgs)) |
@@ -1703,6 +2049,21 @@ python populate_packages:prepend () { | |||
1703 | 2049 | ||
1704 | ibt_pkgs = filter(lambda x: x.find('-ibt-') != -1, firmware_pkgs) | 2050 | ibt_pkgs = filter(lambda x: x.find('-ibt-') != -1, firmware_pkgs) |
1705 | d.appendVar('RRECOMMENDS:linux-firmware-ibt', ' ' + ' '.join(ibt_pkgs)) | 2051 | d.appendVar('RRECOMMENDS:linux-firmware-ibt', ' ' + ' '.join(ibt_pkgs)) |
2052 | |||
2053 | ath10k_pkgs = filter(lambda x: x.find('-ath10k-') != -1, firmware_pkgs) | ||
2054 | d.appendVar('RRECOMMENDS:linux-firmware-ath10k', ' ' + ' '.join(ath10k_pkgs)) | ||
2055 | |||
2056 | ath11k_pkgs = filter(lambda x: x.find('-ath11k-') != -1, firmware_pkgs) | ||
2057 | d.appendVar('RRECOMMENDS:linux-firmware-ath11k', ' ' + ' '.join(ath11k_pkgs)) | ||
2058 | |||
2059 | ath12k_pkgs = filter(lambda x: x.find('-ath12k-') != -1, firmware_pkgs) | ||
2060 | d.appendVar('RRECOMMENDS:linux-firmware-ath12k', ' ' + ' '.join(ath12k_pkgs)) | ||
2061 | |||
2062 | qca_pkgs = filter(lambda x: x.find('-qca-') != -1, firmware_pkgs) | ||
2063 | d.appendVar('RRECOMMENDS:linux-firmware-qca', ' ' + ' '.join(qca_pkgs)) | ||
2064 | |||
2065 | amdgpu_pkgs = filter(lambda x: x.find('-amdgpu-') != -1, firmware_pkgs) | ||
2066 | d.appendVar('RRECOMMENDS:linux-firmware-amdgpu', ' ' + ' '.join(amdgpu_pkgs)) | ||
1706 | } | 2067 | } |
1707 | 2068 | ||
1708 | # Firmware files are generally not ran on the CPU, so they can be | 2069 | # Firmware files are generally not ran on the CPU, so they can be |
diff --git a/meta/recipes-kernel/lttng/lttng-tools_2.13.14.bb b/meta/recipes-kernel/lttng/lttng-tools_2.13.14.bb index 65d19b6e5f..98c2f9831b 100644 --- a/meta/recipes-kernel/lttng/lttng-tools_2.13.14.bb +++ b/meta/recipes-kernel/lttng/lttng-tools_2.13.14.bb | |||
@@ -47,6 +47,8 @@ inherit autotools ptest pkgconfig useradd python3-dir manpages systemd | |||
47 | 47 | ||
48 | CACHED_CONFIGUREVARS = "PGREP=/usr/bin/pgrep" | 48 | CACHED_CONFIGUREVARS = "PGREP=/usr/bin/pgrep" |
49 | 49 | ||
50 | EXTRA_OECONF += "--disable-libtool-linkdep-fixup" | ||
51 | |||
50 | SYSTEMD_SERVICE:${PN} = "lttng-sessiond.service" | 52 | SYSTEMD_SERVICE:${PN} = "lttng-sessiond.service" |
51 | SYSTEMD_AUTO_ENABLE = "disable" | 53 | SYSTEMD_AUTO_ENABLE = "disable" |
52 | 54 | ||
diff --git a/meta/recipes-rt/rt-tests/files/0001-sched_attr-Do-not-define-for-glibc-2.41.patch b/meta/recipes-rt/rt-tests/files/0001-sched_attr-Do-not-define-for-glibc-2.41.patch new file mode 100644 index 0000000000..915f8baa61 --- /dev/null +++ b/meta/recipes-rt/rt-tests/files/0001-sched_attr-Do-not-define-for-glibc-2.41.patch | |||
@@ -0,0 +1,44 @@ | |||
1 | From e1f5f9379a68471c9f5fb0859e87dd84001b0b6f Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Tue, 28 Jan 2025 15:03:59 -0800 | ||
4 | Subject: [PATCH] sched_attr: Do not define for glibc >= 2.41 | ||
5 | |||
6 | glibc 2.41+ has added [1] definitions for sched_setattr and sched_getattr functions | ||
7 | and struct sched_attr. Therefore, it needs to be checked for here as well before | ||
8 | defining sched_attr | ||
9 | |||
10 | Define sched_attr conditionally on SCHED_ATTR_SIZE_VER0 | ||
11 | |||
12 | Fixes builds with glibc/trunk | ||
13 | |||
14 | [1] https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=21571ca0d70302909cf72707b2a7736cf12190a0;hp=298bc488fdc047da37482f4003023cb9adef78f8 | ||
15 | |||
16 | Upstream-Status: Submitted [https://lore.kernel.org/linux-rt-users/20250128230838.2311298-1-raj.khem@gmail.com/T/#u] | ||
17 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
18 | Cc: Clark Williams <williams@redhat.com> | ||
19 | Cc: John Kacur <jkacur@redhat.com> | ||
20 | Cc: rt-users <linux-rt-users@vger.kernel.org> | ||
21 | --- | ||
22 | src/include/rt-sched.h | 4 ++++ | ||
23 | 1 file changed, 4 insertions(+) | ||
24 | |||
25 | diff --git a/src/include/rt-sched.h b/src/include/rt-sched.h | ||
26 | index 80171c7..9cf0e3a 100644 | ||
27 | --- a/src/include/rt-sched.h | ||
28 | +++ b/src/include/rt-sched.h | ||
29 | @@ -42,6 +42,8 @@ | ||
30 | #define __NR_sched_getattr 275 | ||
31 | #endif | ||
32 | |||
33 | +/* sched_attr is not defined in glibc < 2.41 */ | ||
34 | +#ifndef SCHED_ATTR_SIZE_VER0 | ||
35 | struct sched_attr { | ||
36 | uint32_t size; | ||
37 | uint32_t sched_policy; | ||
38 | @@ -68,4 +70,6 @@ int sched_getattr(pid_t pid, | ||
39 | unsigned int size, | ||
40 | unsigned int flags); | ||
41 | |||
42 | +#endif /* SCHED_ATTR_SIZE_VER0 */ | ||
43 | + | ||
44 | #endif /* __RT_SCHED_H__ */ | ||
diff --git a/meta/recipes-rt/rt-tests/rt-tests_git.bb b/meta/recipes-rt/rt-tests/rt-tests_git.bb index 1f48e143d4..5fa980dbdf 100644 --- a/meta/recipes-rt/rt-tests/rt-tests_git.bb +++ b/meta/recipes-rt/rt-tests/rt-tests_git.bb | |||
@@ -13,6 +13,7 @@ SRC_URI += " \ | |||
13 | file://run-ptest \ | 13 | file://run-ptest \ |
14 | file://rt_bmark.py \ | 14 | file://rt_bmark.py \ |
15 | file://0001-Makefile-Allow-for-CC-and-AR-to-be-overridden.patch \ | 15 | file://0001-Makefile-Allow-for-CC-and-AR-to-be-overridden.patch \ |
16 | file://0001-sched_attr-Do-not-define-for-glibc-2.41.patch \ | ||
16 | " | 17 | " |
17 | 18 | ||
18 | # rt-tests needs PI mutex support in libc | 19 | # rt-tests needs PI mutex support in libc |
diff --git a/meta/recipes-support/gnupg/gnupg/0001-fix-compile-failure-with-musl.patch b/meta/recipes-support/gnupg/gnupg/0001-fix-compile-failure-with-musl.patch deleted file mode 100644 index ec99f4b10c..0000000000 --- a/meta/recipes-support/gnupg/gnupg/0001-fix-compile-failure-with-musl.patch +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | From 81c222ea179ef73fcae4b50c56342bdad4787a28 Mon Sep 17 00:00:00 2001 | ||
2 | From: Hongxu Jia <hongxu.jia@windriver.com> | ||
3 | Date: Thu, 22 Aug 2024 15:31:16 +0800 | ||
4 | Subject: [PATCH] fix compile failure with musl | ||
5 | |||
6 | ``` | ||
7 | ../../gnupg-2.5.0/scd/app.c:379:3: error: implicit declaration of function 'write'; did you mean 'fwrite'? [-Wimplicit-function-declaration] | ||
8 | 379 | write (card_list_lock.notify_pipe[1], "", 1); | ||
9 | | ^~~~~ | ||
10 | | fwrite | ||
11 | ``` | ||
12 | To access the Posix low level file interface such as open, read, | ||
13 | write and close, should include <unistd.h>. | ||
14 | |||
15 | Upstream-Status: Backport [https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commit;h=1d5cfa9b7fd22e1c46eeed5fa9fed2af6f81d34f] | ||
16 | |||
17 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
18 | --- | ||
19 | scd/app.c | 1 + | ||
20 | 1 file changed, 1 insertion(+) | ||
21 | |||
22 | diff --git a/scd/app.c b/scd/app.c | ||
23 | index ba7bb23..7d41e53 100644 | ||
24 | --- a/scd/app.c | ||
25 | +++ b/scd/app.c | ||
26 | @@ -24,6 +24,7 @@ | ||
27 | #include <string.h> | ||
28 | #include <unistd.h> | ||
29 | #include <npth.h> | ||
30 | +#include <unistd.h> | ||
31 | |||
32 | #ifndef HAVE_W32_SYSTEM | ||
33 | #include <fcntl.h> /* F_SETFD F_GETFL F_SETFL O_NONBLOCK fcntl(2) */ | ||
diff --git a/meta/recipes-support/gnupg/gnupg_2.5.2.bb b/meta/recipes-support/gnupg/gnupg_2.5.2.bb index 64c63e31ce..8e87382f12 100644 --- a/meta/recipes-support/gnupg/gnupg_2.5.2.bb +++ b/meta/recipes-support/gnupg/gnupg_2.5.2.bb | |||
@@ -18,7 +18,6 @@ SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ | |||
18 | file://0002-use-pkgconfig-instead-of-npth-config.patch \ | 18 | file://0002-use-pkgconfig-instead-of-npth-config.patch \ |
19 | file://0004-autogen.sh-fix-find-version-for-beta-checking.patch \ | 19 | file://0004-autogen.sh-fix-find-version-for-beta-checking.patch \ |
20 | file://0001-Woverride-init-is-not-needed-with-gcc-9.patch \ | 20 | file://0001-Woverride-init-is-not-needed-with-gcc-9.patch \ |
21 | file://0001-fix-compile-failure-with-musl.patch \ | ||
22 | " | 21 | " |
23 | SRC_URI:append:class-native = " file://0001-configure.ac-use-a-custom-value-for-the-location-of-.patch \ | 22 | SRC_URI:append:class-native = " file://0001-configure.ac-use-a-custom-value-for-the-location-of-.patch \ |
24 | file://relocate.patch" | 23 | file://relocate.patch" |
diff --git a/meta/recipes-support/libbsd/libbsd_0.12.2.bb b/meta/recipes-support/libbsd/libbsd_0.12.2.bb index 7d5e88f293..bd503cb031 100644 --- a/meta/recipes-support/libbsd/libbsd_0.12.2.bb +++ b/meta/recipes-support/libbsd/libbsd_0.12.2.bb | |||
@@ -15,20 +15,17 @@ HOMEPAGE = "https://libbsd.freedesktop.org/wiki/" | |||
15 | # License: BSD-3-clause-author | 15 | # License: BSD-3-clause-author |
16 | # License: BSD-3-clause-John-Birrell | 16 | # License: BSD-3-clause-John-Birrell |
17 | # License: BSD-3-clause-Regents | 17 | # License: BSD-3-clause-Regents |
18 | # License: BSD-4-clause-Christopher-G-Demetriou | ||
19 | # License: BSD-4-clause-Niels-Provos | ||
20 | # License: BSD-5-clause-Peter-Wemm | 18 | # License: BSD-5-clause-Peter-Wemm |
21 | # License: Beerware | 19 | # License: Beerware |
22 | # License: Expat | 20 | # License: Expat |
23 | # License: ISC | 21 | # License: ISC |
24 | # License: ISC-Original | 22 | # License: ISC-Original |
25 | # License: public-domain | 23 | # License: public-domain |
26 | # License: public-domain-Colin-Plumb | 24 | LICENSE = "BSD-3-Clause & ISC & PD" |
27 | LICENSE = "BSD-3-Clause & BSD-4-Clause & ISC & PD" | ||
28 | LICENSE:${PN} = "BSD-3-Clause & ISC & PD" | 25 | LICENSE:${PN} = "BSD-3-Clause & ISC & PD" |
29 | LICENSE:${PN}-dbg = "BSD-3-Clause & ISC & PD" | 26 | LICENSE:${PN}-dbg = "BSD-3-Clause & ISC & PD" |
30 | LICENSE:${PN}-dev = "BSD-3-Clause & ISC & PD" | 27 | LICENSE:${PN}-dev = "BSD-3-Clause & ISC & PD" |
31 | LICENSE:${PN}-doc = "BSD-3-Clause & BSD-4-Clause & ISC & PD" | 28 | LICENSE:${PN}-doc = "BSD-3-Clause & ISC & PD" |
32 | LICENSE:${PN}-locale = "BSD-3-Clause & ISC & PD" | 29 | LICENSE:${PN}-locale = "BSD-3-Clause & ISC & PD" |
33 | LICENSE:${PN}-src = "BSD-3-Clause & ISC & PD" | 30 | LICENSE:${PN}-src = "BSD-3-Clause & ISC & PD" |
34 | LICENSE:${PN}-staticdev = "BSD-3-Clause & ISC & PD" | 31 | LICENSE:${PN}-staticdev = "BSD-3-Clause & ISC & PD" |