summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meta-arm/.gitlab-ci.yml22
-rw-r--r--meta-arm/README.md4
-rw-r--r--meta-arm/ci/corstone1000-common.yml1
-rw-r--r--meta-arm/ci/fvp-baser-aemv8r64.yml7
-rw-r--r--meta-arm/ci/meta-openembedded.yml1
-rw-r--r--meta-arm/ci/meta-secure-core.yml11
-rw-r--r--meta-arm/ci/testimage.yml2
-rwxr-xr-xmeta-arm/ci/update-repos12
-rw-r--r--meta-arm/documentation/oeqa-fvp.md4
-rw-r--r--meta-arm/documentation/runfvp.md2
-rw-r--r--meta-arm/kas/corstone1000-base.yml7
-rw-r--r--meta-arm/kas/fvp-baser-aemv8r64-bsp.yml42
-rw-r--r--meta-arm/kas/fvp-baser-aemv8r64-rt-bsp.yml8
-rw-r--r--meta-arm/meta-arm-bsp/conf/layer.conf2
-rw-r--r--meta-arm/meta-arm-bsp/conf/machine/corstone1000-fvp.conf2
-rw-r--r--meta-arm/meta-arm-bsp/conf/machine/fvp-baser-aemv8r64.conf66
-rw-r--r--meta-arm/meta-arm-bsp/conf/machine/include/arm/armv8r/arch-armv8r64.inc10
-rw-r--r--meta-arm/meta-arm-bsp/conf/machine/include/corstone1000.inc2
-rw-r--r--meta-arm/meta-arm-bsp/conf/machine/include/fvp-common.inc6
-rw-r--r--meta-arm/meta-arm-bsp/conf/machine/n1sdp.conf4
-rw-r--r--meta-arm/meta-arm-bsp/conf/machine/tc1.conf2
-rw-r--r--meta-arm/meta-arm-bsp/documentation/fvp-baser-aemv8r64.md264
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/boot-wrapper-aarch64-fvp-baser-aemv8r64.inc36
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/boot-wrapper-aarch64_%.bbappend4
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0001-aarch64-Rename-labels-and-prepare-for-lower-EL-booti.patch135
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0002-aarch64-Prepare-for-EL1-booting.patch48
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0003-aarch64-Prepare-for-lower-EL-booting.patch55
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0004-gic-v3-Prepare-for-gicv3-with-EL2.patch105
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0005-aarch64-Prepare-for-booting-with-EL2.patch63
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0006-aarch64-Introduce-EL2-boot-code-for-Armv8-R-AArch64.patch182
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0007-Allow-enable-psci-to-choose-between-smc-and-hvc.patch89
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0008-aarch64-Disable-CNTPCT_EL0-trap-for-v8-R64.patch48
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0009-lds-Mark-the-mem-range.patch38
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0010-common-Introduce-the-libfdt.patch6044
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0011-common-Add-essential-libc-functions.patch101
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0012-Makefile-Add-the-libfdt-to-the-Makefile-system.patch61
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0013-platform-Add-print_hex-func.patch67
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0014-common-Add-mem-usage-to-memreserve.patch96
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0015-boot-Add-the-enable-keep-el-compile-option.patch102
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0016-Makefile-Change-COUNTER_FREQ-to-100-MHz.patch31
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0017-PSCI-Apply-flush-cache-after-setting-branch_data.patch49
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0018-PSCI-Add-function-call-entry-point.patch71
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0019-lds-Rearrange-and-mark-the-sections.patch58
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0020-common-Provide-firmware-info-using-libfdt.patch342
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0021-boot-Enable-firmware-node-initialization.patch95
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-corstone1000.inc3
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc2
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-tc.inc2
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0006-Platform-Corstone1000-Enable-Signed-Capsule.patch102
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m-corstone1000.inc1
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0035-dt-Provide-a-way-to-remove-non-compliant-nodes-and-p.patch137
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0036-bootefi-Call-the-EVT_FT_FIXUP-event-handler.patch56
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0037-corstone1000-purge-U-Boot-specific-DT-nodes.patch51
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0038-corstone1000-add-signature-device-tree-overlay.patch31
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0039-corstone1000-enable-authenticated-capsule-config.patch28
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0040-corstone1000-introduce-EFI-authenticated-capsule-upd.patch76
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0001-armv8-Add-ARMv8-MPU-configuration-logic.patch257
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0002-vexpress64-add-MPU-memory-map-for-the-BASER_FVP.patch59
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0003-armv8-Allow-disabling-exception-vectors-on-non-SPL-b.patch104
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0004-armv8-ARMV8_SWITCH_TO_EL1-improvements.patch140
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0005-armv8-Make-disabling-HVC-configurable-when-switching.patch80
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0006-vexpress64-Do-not-set-COUNTER_FREQUENCY.patch30
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0007-vexpress64-Enable-LIBFDT_OVERLAY-in-the-vexpress_aem.patch25
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0008-armv8-Allow-PRBAR-MPU-attributes-to-be-configured.patch103
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0009-armv8-Enable-icache-when-switching-exception-levels-.patch61
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot_%.bbappend35
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_202305.bb (renamed from meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_202305.bb)2
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/arm-platforms-kmeta/bsp/arm-platforms/fvp-baser-aemv8r64-preempt-rt.scc6
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/arm-platforms-kmeta/bsp/arm-platforms/fvp-baser-aemv8r64-standard.scc7
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/arm-platforms-kmeta/bsp/arm-platforms/fvp-baser-aemv8r64.scc4
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0002-Add-external-system-driver.patch17
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0003-Add-rpmsg-driver-for-corstone1000.patch7
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0004-rpmsg-arm-fix-return-value.patch7
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0005-rpmsg-arm-update-chrdev-to-ctrldev-registration.patch7
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0006-Adds-workaround-for-cs1k-specific-bug.patch11
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/files/fvp-baser-aemv8r64/fvp-baser-aemv8r64.dts212
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc10
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/0001-iommu-arm-smmu-v3-workaround-for-ATC_INV_SIZE_ALL-in.patch (renamed from meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/0001-iommu-arm-smmu-v3-workaround-for-ATC_INV_SIZE_ALL-in.patch)8
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/0002-n1sdp-pci_quirk-add-acs-override-for-PCI-devices.patch (renamed from meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/0002-n1sdp-pci_quirk-add-acs-override-for-PCI-devices.patch)12
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/0003-pcie-Add-quirk-for-the-Arm-Neoverse-N1SDP-platform.patch (renamed from meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/0003-pcie-Add-quirk-for-the-Arm-Neoverse-N1SDP-platform.patch)20
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/0004-n1sdp-pcie-add-quirk-support-enabling-remote-chip-PC.patch (renamed from meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/0004-n1sdp-pcie-add-quirk-support-enabling-remote-chip-PC.patch)2
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/0005-arm64-kpti-Whitelist-early-Arm-Neoverse-N1-revisions.patch (renamed from meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/0005-arm64-kpti-Whitelist-early-Arm-Neoverse-N1-revisions.patch)6
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/0006-arm64-defconfig-disable-config-options-that-does-not.patch (renamed from meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/0006-arm64-defconfig-disable-config-options-that-does-not.patch)21
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/enable-nvme.cfg (renamed from meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/enable-nvme.cfg)0
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/enable-realtek-R8169.cfg (renamed from meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/enable-realtek-R8169.cfg)0
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/enable-usb_conn_gpio.cfg (renamed from meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/enable-usb_conn_gpio.cfg)0
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/usb_xhci_pci_renesas.cfg (renamed from meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/usb_xhci_pci_renesas.cfg)0
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-rt_%.bbappend1
-rw-r--r--meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/corstone1000/0001-Handle-logging-syscall.patch32
-rw-r--r--meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0002-plat-n1sdp-add-N1SDP-platform-support.patch28
-rw-r--r--meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0004-Handle-logging-syscall.patch6
-rw-r--r--meta-arm/meta-arm-bsp/recipes-security/optee/optee-client/tee-supplicant@.service (renamed from meta-arm/meta-arm-bsp/recipes-security/optee/optee-client/tee-supplicant.service)3
-rw-r--r--meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-corstone1000-common.inc5
-rw-r--r--meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-tadevkit_3.22.0.bbappend (renamed from meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-tadevkit_3.20.0.bbappend)0
-rw-r--r--meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.20.0.bbappend1
-rw-r--r--meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.22.0.bbappend1
-rw-r--r--meta-arm/meta-arm-bsp/recipes-security/optee/optee-test_3.22.0.bbappend (renamed from meta-arm/meta-arm-bsp/recipes-security/optee/optee-test_3.18.0.bbappend)0
-rw-r--r--meta-arm/meta-arm-bsp/recipes-security/trusted-services/ts-arm-platforms.inc16
-rw-r--r--meta-arm/meta-arm-toolchain/conf/layer.conf2
-rw-r--r--meta-arm/meta-arm/classes/apply_local_src_patches.bbclass11
-rw-r--r--meta-arm/meta-arm/conf/layer.conf2
-rw-r--r--meta-arm/meta-arm/conf/machine/generic-arm64.conf8
-rw-r--r--meta-arm/meta-arm/conf/machine/qemu-generic-arm64.conf5
-rw-r--r--meta-arm/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.13.0.bb (renamed from meta-arm/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.12.0.bb)2
-rw-r--r--meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.8.1-src.inc (renamed from meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.8.0-src.inc)12
-rw-r--r--meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native_1.8.1.bb (renamed from meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native_1.8.0.bb)2
-rw-r--r--meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.8.1.bb (renamed from meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.8.0.bb)2
-rw-r--r--meta-arm/meta-arm/recipes-bsp/uefi/edk2-basetools-native_202308.bb (renamed from meta-arm/meta-arm/recipes-bsp/uefi/edk2-basetools-native_202305.bb)2
-rw-r--r--meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_202308.bb7
-rw-r--r--meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/0001-Patch-in-the-paths-to-the-SBSA-test-suite.patch11
-rw-r--r--meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/0002-Enforce-using-good-old-BFD-linker.patch9
-rw-r--r--meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs_7.1.2.bb2
-rw-r--r--meta-arm/meta-arm/recipes-devtools/fvp/fvp-base-r-aem_11.22.14.bb10
-rw-r--r--meta-arm/meta-arm/recipes-devtools/opencsd/opencsd_1.4.1.bb (renamed from meta-arm/meta-arm/recipes-devtools/opencsd/opencsd_1.4.0.bb)2
-rw-r--r--meta-arm/meta-arm/recipes-security/optee/optee-client.inc8
-rw-r--r--meta-arm/meta-arm/recipes-security/optee/optee-client/tee-supplicant@.service (renamed from meta-arm/meta-arm/recipes-security/optee/optee-client/tee-supplicant.service)3
-rw-r--r--meta-arm/meta-arm/recipes-security/trusted-services/files/0001-LazyFetch-allow-setting-the-cmake-generator.patch46
-rw-r--r--meta-arm/meta-arm/recipes-security/trusted-services/files/nanopb-upgrade.patch112
-rw-r--r--meta-arm/meta-arm/recipes-security/trusted-services/libts/tee-udev.rules5
-rw-r--r--meta-arm/meta-arm/recipes-security/trusted-services/trusted-services-src.inc25
-rw-r--r--meta-arm/meta-arm/recipes-security/trusted-services/trusted-services.inc2
-rw-r--r--meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-api-test-common_git.inc10
-rw-r--r--meta-arm/meta-arm/recipes-security/trusted-services/ts-remote-test_git.bb7
-rw-r--r--meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-env-test_git.bb11
-rw-r--r--meta-openembedded/meta-filesystems/recipes-filesystems/zfs/zfs_2.2.0.bb2
-rw-r--r--meta-openembedded/meta-filesystems/recipes-utils/btrfsmaintenance/btrfsmaintenance_0.5.bb8
-rw-r--r--meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-progs/0001-Makefile-proper-location-of-LDFLAGS.patch32
-rw-r--r--meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-progs_git.bb32
-rw-r--r--meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0001-Fixed-includes-so-that-it-compiles-on-Ubuntu-20.04.patch43
-rw-r--r--meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0002-makefile-fix-linking-flags.patch33
-rw-r--r--meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools_git.bb10
-rw-r--r--meta-openembedded/meta-filesystems/recipes-utils/xfstests/xfstests_2023.03.05.bb2
-rw-r--r--meta-openembedded/meta-gnome/dynamic-layers/meta-virtualization/recipes-gnome/gnome-boxes/gnome-boxes_45.0.bb (renamed from meta-openembedded/meta-gnome/dynamic-layers/meta-virtualization/recipes-gnome/gnome-boxes/gnome-boxes_44.2.bb)2
-rw-r--r--meta-openembedded/meta-gnome/dynamic-layers/meta-virtualization/recipes-gnome/gnome-remote-desktop/gnome-remote-desktop_45.0.bb (renamed from meta-openembedded/meta-gnome/dynamic-layers/meta-virtualization/recipes-gnome/gnome-remote-desktop/gnome-remote-desktop_44.2.bb)4
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/amtk/amtk_5.6.1.bb22
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/eog/eog_45.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/eog/eog_44.3.bb)2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/evince/evince_45.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/evince/evince_44.2.bb)2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc4
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_45.0.1.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_44.1.bb)4
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_46.1.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_44.2.bb)13
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gedit/libgedit-amtk_5.8.0.bb17
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gedit/libgedit-gtksourceview_299.0.4.bb24
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.2.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.0.bb)7
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch11
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch16
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs_1.78.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs_1.76.1.bb)4
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_45.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_44.0.bb)2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_45.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_44.0.bb)9
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch16
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_45.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_44.3.bb)10
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_45.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_44.0.bb)5
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_45.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_44.1.bb)7
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch23
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_45.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_44.3.bb)3
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_45.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.4.bb)2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_45.0.1.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_44.0.bb)2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_45.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_44.0.bb)2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0002-meson-fix-invalid-positional-argument.patch2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.52.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.51.90.bb)2
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_45.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_44.3.bb)6
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/0001-Replace-filename-with-basename.patch46
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_45.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_44.2.1.bb)10
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/tecla/tecla_45.0.bb17
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/tepl/tepl_6.8.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/tepl/tepl_6.4.0.bb)6
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-fix-reproducibility.patch108
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch37
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.6.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.5.0.bb)10
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker/0001-fix-reproducibility.patch80
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.6.0.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.5.1.bb)19
-rw-r--r--meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.44.2.bb (renamed from meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.44.0.bb)2
-rw-r--r--meta-openembedded/meta-gnome/recipes-support/libcloudproviders/libcloudproviders_0.3.4.bb (renamed from meta-openembedded/meta-gnome/recipes-support/libcloudproviders/libcloudproviders_0.3.2.bb)2
-rw-r--r--meta-openembedded/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_45.0.bb (renamed from meta-openembedded/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_44.1.bb)9
-rw-r--r--meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools/0001-build-Fix-wrap-file-syntax.patch56
-rw-r--r--meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.2.bb4
-rw-r--r--meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp/0001-build-properly-spell-provide-in-.wrap-files.patch25
-rw-r--r--meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb1
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb2
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.80.bb (renamed from meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.79.bb)6
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0001-po-Fix-invalid-.oc-translation-format-string.patch44
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.18.bb1
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-Fix-return-type-errors.patch95
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-add-missing-header-for-musl.patch33
-rw-r--r--meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1_1.3.bb21
-rw-r--r--meta-openembedded/meta-networking/conf/layer.conf2
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/2894.patch25
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/2895.patch27
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init20
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.18.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.15.bb)6
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0001-fix-ppp-2.5.0-build.patch2
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0002-fix-ppp-2.5.0-build.patch2
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd/0001-rtnl_flush-Error-on-failed-write.patch34
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb8
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived/0001-layer4-Change-order-of-include-files.patch60
-rw-r--r--meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_2.2.8.bb (renamed from meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_2.2.2.bb)5
-rw-r--r--meta-openembedded/meta-networking/recipes-devtools/libcoap/libcoap_4.3.3.bb (renamed from meta-openembedded/meta-networking/recipes-devtools/libcoap/libcoap_4.3.1.bb)6
-rw-r--r--meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/CVE-2022-39028.patch53
-rw-r--r--meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb1
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/frr/frr/0001-m4-ax_python.m4-check-for-python-x.y-emded.pc-not-py.patch33
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/frr/frr/0001-tools-make-quiet-actually-suppress-output.patch58
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/frr/frr/CVE-2023-3748.patch54
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/frr/frr/CVE-2023-41358.patch106
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/frr/frr/CVE-2023-41360.patch35
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/frr/frr_9.0.1.bb (renamed from meta-openembedded/meta-networking/recipes-protocols/frr/frr_8.4.4.bb)18
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/mdns/mdns/0001-Handle-interface-without-ifa_addr.patch38
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/mdns/mdns/0003-mDNSShared-Drop-MacOS-specific-__block-qualifier.patch30
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/mdns/mdns/0005-mDNSCore-Fix-broken-debug-parameter.patch17
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/mdns/mdns/0015-Add-missing-limits.h.patch23
-rw-r--r--meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_2200.0.8.bb (renamed from meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_1790.80.10.bb)7
-rw-r--r--meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.3.21.bb (renamed from meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.3.20.bb)2
-rw-r--r--meta-openembedded/meta-networking/recipes-support/libesmtp/libesmtp/0001-Add-build-option-for-NTLM-support.patch2
-rw-r--r--meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec_1.2.2a.bb (renamed from meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec_1.2.2.bb)2
-rw-r--r--meta-openembedded/meta-oe/conf/include/ptest-packagelists-meta-oe.inc2
-rw-r--r--meta-openembedded/meta-oe/conf/layer.conf1
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/7_6.diff2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/fix-menu-generation.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/port-gnome-menus3.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Makefile.am-do-not-clobber-PYTHONPATH-from-build-env.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Unbolt-ubuntu-hack.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/fix_build_errors.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-build-on-32bit.patch38
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-free_mon-Include-missing-cstdint.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch3
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/PTHREAD_STACK_MIN.patch19
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb10
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-Fixes-for-yocto-build.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0002-android-tools-modifications-to-make-it-build-in-yoct.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0003-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0004-adb-Fix-build-on-big-endian-systems.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0005-adb-Allow-adbd-to-be-run-as-root.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Add-riscv64-support.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Added-missing-headers.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Nonnull.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Vector-cast.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/add-missing-headers.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/20150704-CVE-2015-3239_dwarf_i.h.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/legacy_built-in_sync_functions.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/user_pt_regs.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-attribute-issue-with-gcc.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-build-on-non-x86.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-gettid-exception-declaration.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-standard-namespace-errors.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/hard-code-build-number.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/libusb-header-path.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/move-log-file-to-proper-dir.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/simg_dump-python3.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stdatomic.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stub-out-fastdeploy.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Add-riscv64-support.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Added-missing-headers.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Nonnull.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Vector-cast.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/add-missing-headers.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-attribute-issue-with-gcc.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-build-on-non-x86.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-gettid-exception-declaration.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-standard-namespace-errors.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/hard-code-build-number.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/libusb-header-path.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/move-log-file-to-proper-dir.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/simg_dump-python3.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stdatomic.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stub-out-fastdeploy.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/throw-exception-on-unknown-os.patch2
-rw-r--r--meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/throw-exception-on-unknown-os.patch2
-rw-r--r--meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.15.bb (renamed from meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.14.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-bsp/bolt/bolt_0.9.5.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.7.6.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.7.5.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.4.4.bb (renamed from meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.4.2.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/libnfs/libnfs_5.0.2.bb9
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh/0001-configure.ac-add-support-of-protobuf-4.22.x.patch63
-rw-r--r--meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh_1.4.0.bb7
-rw-r--r--meta-openembedded/meta-oe/recipes-core/images/meta-oe-ptest-image.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc208
-rw-r--r--meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.21.bb (renamed from meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.20.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch16
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/run-ptest20
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.11.5.bb31
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/psqlodbc/psqlodbc_16.00.0000.bb (renamed from meta-openembedded/meta-oe/recipes-dbs/psqlodbc/psqlodbc_15.00.0000.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230917.0.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230827.0.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch62
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-add-separate-export-for-plugin-targets.patch93
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-fix-CVE-2023-32732.patch81
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.56.2.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.50.1.bb)7
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/jq/jq/0001-configure-Pass-_XOPEN_SOURCE-when-checking-for-strpt.patch40
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/jq/jq/0002-builtin-Replace-_BSD_SOURCE-with-_DEFAULT_SOURCE.patch32
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.7.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/jq/jq_git.bb)25
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0002-Fix-assumed-signed-char.patch2
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0003-For-root-value-use-empty-pointer.patch2
-rwxr-xr-xmeta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-20.5/oe-npm-cache (renamed from meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-18.17/oe-npm-cache)0
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_20.5.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_18.17.bb)0
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch19
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch42
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-mips-Use-32bit-cast-for-operand-on-mips32.patch34
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch18
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/mips-less-memory.patch37
-rwxr-xr-xmeta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/run-ptest5
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.5.1.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_18.17.1.bb)9
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-Makefile.am-do-not-compile-the-code-which-was-genera.patch106
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb6
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Fix-linking-error-with-ld-gold.patch69
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch15
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_4.23.4.bb (renamed from meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.21.12.bb)22
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3/0001-cmake-fix-when-cross-compiling.patch68
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3_0.15.3.bb (renamed from meta-openembedded/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3_0.14.3.bb)8
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/hwloc/files/CVE-2022-47022.patch77
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_2.9.3.bb (renamed from meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_2.9.2.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_3.03.bb (renamed from meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.28.bb)15
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/libdeflate/libdeflate_1.19.bb (renamed from meta-openembedded/meta-oe/recipes-extended/libdeflate/libdeflate_1.18.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-BundledOSSPUUID.cmake-Pass-CFLAGS-to-compiler.patch35
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-CMakeLists.txt-Pass-the-OPENSSLDIR.patch31
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-the-constness-issues-around-autovector-iterator_.patch2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb5
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-102_102.15.1.bb82
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-Cargo.toml-do-not-abort-on-panic.patch32
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-add-arm-to-list-of-mozinline.patch32
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch44
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-rewrite-cargo-host-linker-in-python3.patch54
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-util.configure-fix-one-occasionally-reproduced-confi.patch48
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0002-moz.configure-do-not-look-for-llvm-objdump.patch44
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch66
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0004-use-asm-sgidefs.h.patch38
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/fix-musl-build.patch29
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/musl-disable-stackwalk.patch27
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/riscv32.patch60
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115_115.2.0.bb (renamed from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-102_102.9.0.bb)9
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2023.5.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/plocate/plocate_1.1.17.bb9
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/plocate/plocate_1.1.19.bb (renamed from meta-openembedded/meta-oe/recipes-extended/plocate/plocate.inc)5
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-polkit.service.in-disable-MemoryDenyWriteExecute.patch33
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/polkit/polkit_123.bb (renamed from meta-openembedded/meta-oe/recipes-extended/polkit/polkit_122.bb)7
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/0001-src-Do-not-reset-FINAL_LIBS.patch (renamed from meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/0001-src-Do-not-reset-FINAL_LIBS.patch)0
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/0006-Define-correct-gregs-for-RISCV32.patch (renamed from meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/0006-Define-correct-gregs-for-RISCV32.patch)0
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/GNU_SOURCE-7.patch (renamed from meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/GNU_SOURCE-7.patch)0
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/hiredis-use-default-CC-if-it-is-set.patch (renamed from meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/hiredis-use-default-CC-if-it-is-set.patch)2
-rwxr-xr-xmeta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/init-redis-server (renamed from meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/init-redis-server)0
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/lua-update-Makefile-to-use-environment-build-setting.patch (renamed from meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/lua-update-Makefile-to-use-environment-build-setting.patch)0
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/oe-use-libc-malloc.patch (renamed from meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/oe-use-libc-malloc.patch)2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/redis.conf (renamed from meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/redis.conf)0
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/redis.service (renamed from meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/redis.service)0
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/redis/redis_7.2.1.bb (renamed from meta-openembedded/meta-oe/recipes-extended/redis/redis_7.2.0.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-extended/vlock/vlock_2.2.3.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-gnome/libxmlb/libxmlb_0.3.10.bb24
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/freeglut/freeglut_3.4.0.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/libglvnd/libglvnd_1.7.0.bb (renamed from meta-openembedded/meta-oe/recipes-graphics/libglvnd/libglvnd_1.6.0.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2022-34568.patch28
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.14.bb (renamed from meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.13.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/wayland/libei_1.1.0.bb25
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/CVE-2020-29074.patch27
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-navigation/geoclue/geoclue_2.7.1.bb (renamed from meta-openembedded/meta-oe/recipes-navigation/geoclue/geoclue_2.7.0.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-security/audit/audit/0001-Fixed-swig-host-contamination-issue.patch (renamed from meta-openembedded/meta-oe/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch)21
-rw-r--r--meta-openembedded/meta-oe/recipes-security/audit/audit/0002-Replace-__attribute_malloc__-with-__attribute__-__ma.patch (renamed from meta-openembedded/meta-oe/recipes-security/audit/audit/0001-Replace-__attribute_malloc__-with-__attribute__-__ma.patch)15
-rw-r--r--meta-openembedded/meta-oe/recipes-security/audit/audit_3.1.2.bb (renamed from meta-openembedded/meta-oe/recipes-security/audit/audit_3.1.1.bb)6
-rw-r--r--meta-openembedded/meta-oe/recipes-security/usbguard/usbguard_1.1.2.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-support/appstream/appstream/0001-fix-crosscompile.patch43
-rw-r--r--meta-openembedded/meta-oe/recipes-support/boost-sml/boost-sml_git.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpp-netlib/cpp-netlib/a53f123040998744602f190944464af0e159ea19.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpp-netlib/cpp-netlib_git.bb10
-rw-r--r--meta-openembedded/meta-oe/recipes-support/exiv2/exiv2_0.28.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/exiv2/exiv2_0.27.6.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fftw/fftw/run-ptest15
-rw-r--r--meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-const-qualifier-error.patch57
-rw-r--r--meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.11.1.bb (renamed from meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.10.0.bb)3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/hdf5/files/0001-cmake-remove-build-flags.patch98
-rw-r--r--meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.14.2.bb (renamed from meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.14.0.bb)11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/iniparser/iniparser/CVE-2023-33461.patch48
-rw-r--r--meta-openembedded/meta-oe/recipes-support/iniparser/iniparser_4.1.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libtommath/libtommath_1.2.1.bb (renamed from meta-openembedded/meta-oe/recipes-support/libtommath/libtommath_1.2.0.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap/0001-configure-Pass-pthread_t-to-pthread_detach.patch32
-rw-r--r--meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.5.16.bb (renamed from meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.5.13.bb)3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opensc/files/CVE-2023-2977.patch54
-rw-r--r--meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.23.0.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poco/poco/0001-cppignore.lnx-Ignore-PKCS12-and-testLaunch-test.patch63
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest13
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poco/poco_1.12.4.bb11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/pv/pv/0001-pv-display-handle-error-of-tcgetpgrp-in-pv_in_foregr.patch2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.4.32.bb (renamed from meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.4.31.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/sharutils/sharutils/0001-configure.ac-Check-and-define-intmax_t-type.patch32
-rw-r--r--meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-support/udisks/udisks2/0001-Makefile.am-Dont-include-buildpath.patch47
-rw-r--r--meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.10.1.bb (renamed from meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.9.4.bb)8
-rw-r--r--meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-vbox_fb-fix-kernel-v6.5-build.patch50
-rw-r--r--meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.10.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch5
-rw-r--r--meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/0d3344e17d258106617b0e6d783d073b188a2548.patch16
-rw-r--r--meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/no-musttail-arm.patch21
-rw-r--r--meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/reproducibility.patch17
-rw-r--r--meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.42.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.40.5.bb)8
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal/0001-meson.build-add-a-hack-for-crosscompile.patch28
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal/0001-xdg-desktop-portal-pc-in-add-pc_sysrootdir-dir.patch27
-rw-r--r--meta-openembedded/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.18.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.16.0.bb)14
-rw-r--r--meta-openembedded/meta-oe/recipes-test/cukinia/cukinia_0.6.2.bb2
-rw-r--r--meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.083.bb2
-rw-r--r--meta-openembedded/meta-perl/recipes-perl/libnet/libnet-idn-encode_2.500.bb23
-rw-r--r--meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb1
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python-idna-ssl.inc15
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-absl_2.0.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-absl_1.4.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_23.2.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_23.1.0.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.13.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.13.0.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-apiflask_2.0.2.bb18
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-apispec_6.3.0.bb10
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-appdirs/run-ptest2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.1.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.1.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.29.4.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.29.3.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_3.0.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.15.6.bb)3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-async-timeout_4.0.0.bb18
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-autoflake_2.2.1.bb12
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-bitstring_4.1.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-bitstring_4.1.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-bleak/0001-fix-poetry-version-compatibility.patch23
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-bleak_0.21.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-bleak_0.20.2.bb)8
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-boto3_1.28.57.bb16
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-botocore_1.31.57.bb10
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-brotli_1.1.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-brotli_1.0.9.bb)3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.13.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.13.0.bb)9
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_38.0.2.bb22
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_39.2.0.bb22
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cerberus_1.3.5.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-cerberus_1.3.4.bb)6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cmake_3.27.5.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-cmake_3.27.4.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-configshell-fb_1.1.30.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-configshell-fb_1.1.29.bb)8
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.3.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.3.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-custom-inherit_2.4.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-custom-inherit_2.3.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-distlib_0.3.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-distlib_0.3.6.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-dynamic-dispatch_1.0.3.bb4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.7.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.7.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils_2.2.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils_2.2.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.19.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.18.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.12.4.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.12.0.bb)5
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_3.1.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_2.0.0.bb)7
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask-cors_4.0.0.bb16
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask-httpauth_4.8.0.bb14
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask-jwt-extended_4.5.2.bb16
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask-marshmallow_0.15.0.bb14
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.5.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.4.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.6.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.5.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.3.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.3.2.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_23.9.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_23.7.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.12.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.11.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.101.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.97.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.23.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.22.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-idna-ssl_1.1.0.bb19
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.64.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.63.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-lazy_1.6.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-lazy_1.5.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_1.0.6.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_1.0.5.bb)3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-nacl_1.5.0.bb25
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.9.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.8.0.bb)3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-ninja-syntax_1.7.2.bb2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-parse-type_0.6.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-parse-type_0.5.2.bb)12
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.0.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.0.0.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc_1.0.5.bb15
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc_1.1.1.bb11
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_3.9.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_3.6.0.bb)7
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.24.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.24.2.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.3.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.8.bb)7
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pybluez/0001-Use-Py_ssize_t-when-parsing-buffer-length-fix-426-42.patch5
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_2.4.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_1.10.7.bb)8
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify/0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch8
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.4.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyiface_0.0.11.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pyiface_git.bb)16
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.176.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.175.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.5.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.5.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pymysql_1.1.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pymysql_1.0.2.bb)7
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pynetlinux/0002-Fixed-relative-imports.patch2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyproj_3.6.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pyproj_3.6.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyproject-api_1.6.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pyproject-api_1.5.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb15
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyu2f_0.1.5.bb20
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_25.1.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_25.0.0.bb)8
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-rapidjson_1.11.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-rapidjson_1.10.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-redis_5.0.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-redis_5.0.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-shellingham_1.5.3.bb10
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.21.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.20.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-term_2.5.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-term_2.4.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.11.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.11.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.10.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.9.0.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.1.5.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.1.3.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-types-setuptools_68.2.0.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-types-setuptools_68.1.0.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_5.0.1.bb1
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-virtualenv_20.24.5.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-virtualenv_20.24.4.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.10.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.9.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-webargs_8.3.0.bb13
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.6.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.5.3.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.1.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.1.2.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_3.3.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_3.2.0.bb)6
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.112.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.97.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-extended/python-rich/python3-rich_13.5.3.bb (renamed from meta-openembedded/meta-python/recipes-extended/python-rich/python3-rich_13.5.2.bb)2
-rw-r--r--meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/0011-modules-mappers-config9.m4-Add-server-directory-to-i.patch2
-rw-r--r--meta-openembedded/meta-webserver/recipes-webadmin/cockpit/cockpit_298.bb5
-rw-r--r--meta-raspberrypi/conf/layer.conf2
-rw-r--r--meta-raspberrypi/conf/machine/include/rpi-base.inc1
-rw-r--r--meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc4
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/userland_git.bb4
-rw-r--r--meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro/31ad68831357d2019624004f1f0846475671088f.patch898
-rw-r--r--meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb5
-rw-r--r--meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb28
-rw-r--r--meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_6.1.bb6
-rw-r--r--meta-security/dynamic-layers/meta-python/recipes-security/mfa/python3-privacyidea_3.9.bb (renamed from meta-security/dynamic-layers/meta-python/recipes-security/mfa/python3-privacyidea_3.8.1.bb)2
-rw-r--r--meta-security/dynamic-layers/networking-layer/recipes-security/sssd/sssd_2.9.2.bb (renamed from meta-security/dynamic-layers/networking-layer/recipes-security/sssd/sssd_2.9.1.bb)4
-rw-r--r--meta-security/meta-tpm/recipes-tpm/swtpm/swtpm_0.8.1.bb (renamed from meta-security/meta-tpm/recipes-tpm/swtpm/swtpm_0.8.0.bb)5
-rw-r--r--meta-security/meta-tpm/recipes-tpm1/hoth/libhoth_git.bb2
-rw-r--r--meta-security/recipes-compliance/lynis/lynis_3.0.9.bb (renamed from meta-security/recipes-compliance/lynis/lynis_3.0.8.bb)2
-rw-r--r--meta-security/recipes-compliance/openscap/files/0003-CMakeLists.txt-make-2-variables-configurable.patch37
-rw-r--r--meta-security/recipes-compliance/openscap/openscap_1.3.9.bb (renamed from meta-security/recipes-compliance/openscap/openscap_1.3.8.bb)6
-rw-r--r--meta-security/recipes-compliance/scap-security-guide/files/0002-scap-security-guide-Add-Poky-support.patch74
-rw-r--r--meta-security/recipes-compliance/scap-security-guide/scap-security-guide_0.1.69.bb3
-rw-r--r--meta-security/recipes-ids/suricata/files/fixup.patch26
-rw-r--r--meta-security/recipes-ids/suricata/libhtp_0.5.45.bb (renamed from meta-security/recipes-ids/suricata/libhtp_0.5.43.bb)2
-rw-r--r--meta-security/recipes-ids/suricata/suricata-crates.inc1738
-rw-r--r--meta-security/recipes-ids/suricata/suricata_7.0.0.bb (renamed from meta-security/recipes-ids/suricata/suricata_6.0.11.bb)11
-rw-r--r--meta-security/recipes-kernel/lkrg/lkrg-module_0.9.7.bb (renamed from meta-security/recipes-kernel/lkrg/lkrg-module_0.9.6.bb)4
-rwxr-xr-xpoky/bitbake/bin/bitbake-getvar31
-rwxr-xr-xpoky/bitbake/bin/bitbake-worker14
-rw-r--r--poky/bitbake/lib/bb/codeparser.py2
-rw-r--r--poky/bitbake/lib/bb/command.py14
-rw-r--r--poky/bitbake/lib/bb/cooker.py213
-rw-r--r--poky/bitbake/lib/bb/data.py1
-rw-r--r--poky/bitbake/lib/bb/event.py8
-rw-r--r--poky/bitbake/lib/bb/fetch2/__init__.py1
-rw-r--r--poky/bitbake/lib/bb/fetch2/git.py15
-rw-r--r--poky/bitbake/lib/bb/parse/__init__.py8
-rw-r--r--poky/bitbake/lib/bb/runqueue.py10
-rw-r--r--poky/bitbake/lib/bb/server/process.py11
-rw-r--r--poky/bitbake/lib/bb/tests/codeparser.py26
-rw-r--r--poky/bitbake/lib/bb/tinfoil.py8
-rw-r--r--poky/bitbake/lib/bb/utils.py23
-rw-r--r--poky/bitbake/lib/bblayers/action.py6
-rw-r--r--poky/documentation/bsp-guide/bsp.rst4
-rw-r--r--poky/documentation/contributor-guide/recipe-style-guide.rst156
-rw-r--r--poky/documentation/dev-manual/disk-space.rst8
-rw-r--r--poky/documentation/dev-manual/licenses.rst42
-rw-r--r--poky/documentation/dev-manual/new-recipe.rst19
-rw-r--r--poky/documentation/migration-guides/release-notes-4.3.rst5
-rw-r--r--poky/documentation/ref-manual/qa-checks.rst10
-rw-r--r--poky/documentation/ref-manual/variables.rst17
-rw-r--r--poky/documentation/sdk-manual/extensible.rst254
-rw-r--r--poky/documentation/template/template.svg2
-rw-r--r--poky/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py3
-rw-r--r--poky/meta-selftest/recipes-test/selftest-ed/selftest-ed_0.5.bb1
-rw-r--r--poky/meta-skeleton/recipes-skeleton/libxpm/libxpm_3.5.6.bb1
-rw-r--r--poky/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb1
-rw-r--r--poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf3
-rw-r--r--poky/meta/classes-global/base.bbclass2
-rw-r--r--poky/meta/classes-global/insane.bbclass3
-rw-r--r--poky/meta/classes-global/license.bbclass2
-rw-r--r--poky/meta/classes-global/sstate.bbclass37
-rw-r--r--poky/meta/classes-global/staging.bbclass3
-rw-r--r--poky/meta/classes-recipe/fontcache.bbclass1
-rw-r--r--poky/meta/classes-recipe/goarch.bbclass1
-rw-r--r--poky/meta/classes-recipe/image.bbclass1
-rw-r--r--poky/meta/classes-recipe/kernel-fitimage.bbclass5
-rw-r--r--poky/meta/classes-recipe/license_image.bbclass46
-rw-r--r--poky/meta/classes-recipe/multilib_script.bbclass11
-rw-r--r--poky/meta/classes-recipe/pypi.bbclass6
-rw-r--r--poky/meta/classes-recipe/systemd-boot-cfg.bbclass2
-rw-r--r--poky/meta/classes-recipe/testimage.bbclass17
-rw-r--r--poky/meta/classes-recipe/uboot-extlinux-config.bbclass5
-rw-r--r--poky/meta/classes/create-spdx-2.2.bbclass50
-rw-r--r--poky/meta/classes/cve-check.bbclass5
-rw-r--r--poky/meta/classes/multilib.bbclass3
-rw-r--r--poky/meta/conf/bitbake.conf7
-rw-r--r--poky/meta/conf/distro/defaultsetup.conf2
-rw-r--r--poky/meta/conf/distro/include/maintainers.inc16
-rw-r--r--poky/meta/conf/distro/include/ptest-packagelists.inc9
-rw-r--r--poky/meta/conf/distro/include/tcmode-default.inc4
-rw-r--r--poky/meta/conf/distro/include/time64.inc6
-rw-r--r--poky/meta/conf/machine/include/qemu.inc1
-rw-r--r--poky/meta/lib/oe/__init__.py2
-rw-r--r--poky/meta/lib/oe/package.py7
-rw-r--r--poky/meta/lib/oe/package_manager/deb/sdk.py5
-rw-r--r--poky/meta/lib/oe/package_manager/ipk/sdk.py5
-rw-r--r--poky/meta/lib/oe/package_manager/rpm/sdk.py5
-rw-r--r--poky/meta/lib/oe/qa.py4
-rw-r--r--poky/meta/lib/oe/sbom.py34
-rw-r--r--poky/meta/lib/oe/utils.py12
-rw-r--r--poky/meta/lib/oeqa/core/runner.py8
-rw-r--r--poky/meta/lib/oeqa/core/utils/concurrencytest.py5
-rw-r--r--poky/meta/lib/oeqa/runtime/cases/buildcpio.py2
-rw-r--r--poky/meta/lib/oeqa/runtime/cases/go.py2
-rw-r--r--poky/meta/lib/oeqa/runtime/cases/parselogs.py194
-rw-r--r--poky/meta/lib/oeqa/runtime/cases/ptest.py2
-rw-r--r--poky/meta/lib/oeqa/sdk/cases/buildcpio.py4
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/bbtests.py7
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/devtool.py48
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/meta_ide.py2
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/oescripts.py23
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/reproducible.py27
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/runtime_test.py22
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/spdx.py54
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/wic.py36
-rw-r--r--poky/meta/lib/oeqa/selftest/context.py39
-rw-r--r--poky/meta/lib/oeqa/utils/commands.py6
-rw-r--r--poky/meta/lib/oeqa/utils/gitarchive.py10
-rw-r--r--poky/meta/lib/patchtest/README.md20
-rw-r--r--poky/meta/lib/patchtest/requirements.txt4
-rw-r--r--poky/meta/lib/patchtest/selftest/files/Author.test_author_valid.1.fail32
-rw-r--r--poky/meta/lib/patchtest/selftest/files/Author.test_author_valid.1.pass31
-rw-r--r--poky/meta/lib/patchtest/selftest/files/Author.test_author_valid.2.fail31
-rw-r--r--poky/meta/lib/patchtest/selftest/files/Author.test_author_valid.2.pass31
-rw-r--r--poky/meta/lib/patchtest/selftest/files/Bugzilla.test_bugzilla_entry_format.fail25
-rw-r--r--poky/meta/lib/patchtest/selftest/files/Bugzilla.test_bugzilla_entry_format.pass25
-rw-r--r--poky/meta/lib/patchtest/selftest/files/CVE.test_cve_presence_in_commit_message.fail72
-rw-r--r--poky/meta/lib/patchtest/selftest/files/CVE.test_cve_presence_in_commit_message.pass74
-rw-r--r--poky/meta/lib/patchtest/selftest/files/CVE.test_cve_tag_format.fail73
-rw-r--r--poky/meta/lib/patchtest/selftest/files/CVE.test_cve_tag_format.pass73
-rw-r--r--poky/meta/lib/patchtest/selftest/files/CommitMessage.test_commit_message_presence.fail22
-rw-r--r--poky/meta/lib/patchtest/selftest/files/CommitMessage.test_commit_message_presence.pass24
-rw-r--r--poky/meta/lib/patchtest/selftest/files/LicFilesChkSum.test_lic_files_chksum_modified_not_mentioned.fail37
-rw-r--r--poky/meta/lib/patchtest/selftest/files/LicFilesChkSum.test_lic_files_chksum_modified_not_mentioned.pass39
-rw-r--r--poky/meta/lib/patchtest/selftest/files/LicFilesChkSum.test_lic_files_chksum_presence.fail53
-rw-r--r--poky/meta/lib/patchtest/selftest/files/LicFilesChkSum.test_lic_files_chksum_presence.pass54
-rw-r--r--poky/meta/lib/patchtest/selftest/files/MboxFormat.test_mbox_format.1.fail36
-rw-r--r--poky/meta/lib/patchtest/selftest/files/MboxFormat.test_mbox_format.2.fail35
-rw-r--r--poky/meta/lib/patchtest/selftest/files/MboxFormat.test_mbox_format.pass33
-rw-r--r--poky/meta/lib/patchtest/selftest/files/Merge.test_series_merge_on_head.fail41
-rw-r--r--poky/meta/lib/patchtest/selftest/files/Merge.test_series_merge_on_head.pass35
-rw-r--r--poky/meta/lib/patchtest/selftest/files/PatchSignedOffBy.test_signed_off_by_presence.fail71
-rw-r--r--poky/meta/lib/patchtest/selftest/files/PatchSignedOffBy.test_signed_off_by_presence.pass72
-rw-r--r--poky/meta/lib/patchtest/selftest/files/Shortlog.test_shortlog_format.fail73
-rw-r--r--poky/meta/lib/patchtest/selftest/files/Shortlog.test_shortlog_format.pass73
-rw-r--r--poky/meta/lib/patchtest/selftest/files/Shortlog.test_shortlog_length.fail73
-rw-r--r--poky/meta/lib/patchtest/selftest/files/Shortlog.test_shortlog_length.pass73
-rw-r--r--poky/meta/lib/patchtest/selftest/files/SignedOffBy.test_signed_off_by_presence.1.fail71
-rw-r--r--poky/meta/lib/patchtest/selftest/files/SignedOffBy.test_signed_off_by_presence.2.fail72
-rw-r--r--poky/meta/lib/patchtest/selftest/files/SignedOffBy.test_signed_off_by_presence.pass72
-rw-r--r--poky/meta/lib/patchtest/selftest/files/SrcUri.test_src_uri_left_files.fail35
-rw-r--r--poky/meta/lib/patchtest/selftest/files/SrcUri.test_src_uri_left_files.pass51
-rw-r--r--poky/meta/lib/patchtest/selftest/files/Summary.test_summary_presence.fail46
-rw-r--r--poky/meta/lib/patchtest/selftest/files/Summary.test_summary_presence.pass49
-rwxr-xr-xpoky/meta/lib/patchtest/selftest/selftest89
-rw-r--r--poky/meta/lib/patchtest/tests/__init__.py0
-rw-r--r--poky/meta/lib/patchtest/tests/base.py239
-rw-r--r--poky/meta/lib/patchtest/tests/pyparsing/common.py26
-rw-r--r--poky/meta/lib/patchtest/tests/pyparsing/parse_cve_tags.py18
-rw-r--r--poky/meta/lib/patchtest/tests/pyparsing/parse_shortlog.py14
-rw-r--r--poky/meta/lib/patchtest/tests/pyparsing/parse_signed_off_by.py22
-rw-r--r--poky/meta/lib/patchtest/tests/pyparsing/parse_upstream_status.py24
-rw-r--r--poky/meta/lib/patchtest/tests/test_mbox_author.py29
-rw-r--r--poky/meta/lib/patchtest/tests/test_mbox_bugzilla.py22
-rw-r--r--poky/meta/lib/patchtest/tests/test_mbox_cve.py49
-rw-r--r--poky/meta/lib/patchtest/tests/test_mbox_description.py17
-rw-r--r--poky/meta/lib/patchtest/tests/test_mbox_format.py16
-rw-r--r--poky/meta/lib/patchtest/tests/test_mbox_mailinglist.py64
-rw-r--r--poky/meta/lib/patchtest/tests/test_mbox_merge.py25
-rw-r--r--poky/meta/lib/patchtest/tests/test_mbox_shortlog.py41
-rw-r--r--poky/meta/lib/patchtest/tests/test_mbox_signed_off_by.py28
-rw-r--r--poky/meta/lib/patchtest/tests/test_metadata_lic_files_chksum.py82
-rw-r--r--poky/meta/lib/patchtest/tests/test_metadata_license.py55
-rw-r--r--poky/meta/lib/patchtest/tests/test_metadata_max_length.py26
-rw-r--r--poky/meta/lib/patchtest/tests/test_metadata_src_uri.py75
-rw-r--r--poky/meta/lib/patchtest/tests/test_metadata_summary.py32
-rw-r--r--poky/meta/lib/patchtest/tests/test_patch_cve.py51
-rw-r--r--poky/meta/lib/patchtest/tests/test_patch_signed_off_by.py43
-rw-r--r--poky/meta/lib/patchtest/tests/test_patch_upstream_status.py64
-rw-r--r--poky/meta/lib/patchtest/tests/test_python_pylint.py61
-rw-r--r--poky/meta/recipes-bsp/alsa-state/alsa-state.bb1
-rw-r--r--poky/meta/recipes-bsp/formfactor/formfactor_0.0.bb1
-rw-r--r--poky/meta/recipes-bsp/keymaps/keymaps_1.0.bb1
-rw-r--r--poky/meta/recipes-bsp/libacpi/libacpi_0.2.bb1
-rw-r--r--poky/meta/recipes-bsp/lrzsz/lrzsz_0.12.20.bb1
-rw-r--r--poky/meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb1
-rw-r--r--poky/meta/recipes-bsp/setserial/setserial_2.17.bb1
-rw-r--r--poky/meta/recipes-bsp/usbinit/usbinit.bb1
-rw-r--r--poky/meta/recipes-bsp/v86d/v86d_0.1.10.bb1
-rw-r--r--poky/meta/recipes-connectivity/bind/bind_9.18.19.bb (renamed from poky/meta/recipes-connectivity/bind/bind_9.18.18.bb)2
-rw-r--r--poky/meta/recipes-connectivity/connman/connman-conf.bb1
-rw-r--r--poky/meta/recipes-connectivity/iproute2/iproute2/0001-bridge-mdb.c-include-limits.h.patch41
-rw-r--r--poky/meta/recipes-connectivity/iproute2/iproute2_6.5.0.bb (renamed from poky/meta/recipes-connectivity/iproute2/iproute2_6.4.0.bb)6
-rw-r--r--poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service1
-rw-r--r--poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service1
-rw-r--r--poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service2
-rw-r--r--poky/meta/recipes-connectivity/openssh/openssh/0001-openssh-regress-Makefile-print-logs-if-test-fails.patch34
-rw-r--r--poky/meta/recipes-connectivity/openssh/openssh/0001-regress-banner.sh-log-input-and-output-files-on-erro.patch61
-rwxr-xr-xpoky/meta/recipes-connectivity/openssh/openssh/run-ptest14
-rw-r--r--poky/meta/recipes-connectivity/openssh/openssh_9.4p1.bb2
-rw-r--r--poky/meta/recipes-connectivity/openssl/openssl/run-ptest2
-rw-r--r--poky/meta/recipes-connectivity/openssl/openssl_3.1.3.bb (renamed from poky/meta/recipes-connectivity/openssl/openssl_3.1.2.bb)2
-rw-r--r--poky/meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb1
-rw-r--r--poky/meta/recipes-core/base-files/base-files_3.0.14.bb1
-rw-r--r--poky/meta/recipes-core/busybox/busybox/defconfig2
-rw-r--r--poky/meta/recipes-core/coreutils/coreutils/stdlib-mb-cur-max.patch33
-rw-r--r--poky/meta/recipes-core/coreutils/coreutils_9.4.bb (renamed from poky/meta/recipes-core/coreutils/coreutils_9.3.bb)5
-rw-r--r--poky/meta/recipes-core/dbus-wait/dbus-wait_git.bb1
-rw-r--r--poky/meta/recipes-core/dbus/dbus_1.14.10.bb (renamed from poky/meta/recipes-core/dbus/dbus_1.14.8.bb)2
-rw-r--r--poky/meta/recipes-core/gettext/gettext_0.22.bb4
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch74
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-portal-support-Fix-snap-test-ordering-race.patch107
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0001-glocalfile-Sum-apparent-size-only-for-files-and-syml.patch105
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch32
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch20
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib-2.0_2.78.0.bb (renamed from poky/meta/recipes-core/glib-2.0/glib-2.0_2.76.4.bb)8
-rw-r--r--poky/meta/recipes-core/glib-2.0/glib.inc23
-rw-r--r--poky/meta/recipes-core/glibc/glibc-version.inc7
-rw-r--r--poky/meta/recipes-core/glibc/glibc-y2038-tests_2.38.bb (renamed from poky/meta/recipes-core/glibc/glibc-tests_2.38.bb)2
-rw-r--r--poky/meta/recipes-core/glibc/ldconfig-native_2.12.1.bb1
-rw-r--r--poky/meta/recipes-core/images/core-image-ptest.bb3
-rw-r--r--poky/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb1
-rw-r--r--poky/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb1
-rw-r--r--poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb1
-rw-r--r--poky/meta/recipes-core/initrdscripts/initramfs-live-boot-tiny_1.0.bb1
-rw-r--r--poky/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb1
-rw-r--r--poky/meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb1
-rw-r--r--poky/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb1
-rw-r--r--poky/meta/recipes-core/initrdscripts/initramfs-module-install-efi_1.0.bb1
-rw-r--r--poky/meta/recipes-core/initrdscripts/initramfs-module-install_1.0.bb1
-rw-r--r--poky/meta/recipes-core/initrdscripts/initramfs-module-setup-live_1.0.bb1
-rw-r--r--poky/meta/recipes-core/initscripts/initscripts_1.0.bb1
-rw-r--r--poky/meta/recipes-core/kbd/kbd_2.6.3.bb (renamed from poky/meta/recipes-core/kbd/kbd_2.6.2.bb)2
-rw-r--r--poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.36.bb2
-rw-r--r--poky/meta/recipes-core/meta/cve-update-nvd2-native.bb11
-rw-r--r--poky/meta/recipes-core/meta/meta-environment.bb1
-rw-r--r--poky/meta/recipes-core/meta/meta-ide-support.bb1
-rw-r--r--poky/meta/recipes-core/meta/meta-toolchain.bb1
-rw-r--r--poky/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb1
-rw-r--r--poky/meta/recipes-core/musl/bsd-headers/sys-cdefs.h8
-rw-r--r--poky/meta/recipes-core/musl/libc-test/run-libc-ptests28
-rw-r--r--poky/meta/recipes-core/musl/libc-test/run-ptest29
-rw-r--r--poky/meta/recipes-core/musl/libc-test_git.bb5
-rw-r--r--poky/meta/recipes-core/musl/musl-legacy-error.bb26
-rw-r--r--poky/meta/recipes-core/musl/musl-legacy-error/error.h60
-rw-r--r--poky/meta/recipes-core/musl/musl_git.bb8
-rw-r--r--poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch10
-rw-r--r--poky/meta/recipes-core/ovmf/ovmf_git.bb4
-rw-r--r--poky/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb1
-rw-r--r--poky/meta/recipes-core/packagegroups/packagegroup-base.bb2
-rw-r--r--poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb1
-rw-r--r--poky/meta/recipes-core/packagegroups/packagegroup-core-nfs.bb1
-rw-r--r--poky/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb1
-rw-r--r--poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-dropbear.bb1
-rw-r--r--poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-openssh.bb1
-rw-r--r--poky/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb1
-rw-r--r--poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb1
-rw-r--r--poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb1
-rw-r--r--poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb1
-rw-r--r--poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb1
-rw-r--r--poky/meta/recipes-core/seatd/seatd_0.8.0.bb (renamed from poky/meta/recipes-core/seatd/seatd_0.7.0.bb)2
-rw-r--r--poky/meta/recipes-core/systemd/systemd-boot_254.4.bb (renamed from poky/meta/recipes-core/systemd/systemd-boot_254.bb)0
-rw-r--r--poky/meta/recipes-core/systemd/systemd-compat-units.bb1
-rw-r--r--poky/meta/recipes-core/systemd/systemd-machine-units_1.0.bb1
-rw-r--r--poky/meta/recipes-core/systemd/systemd-serialgetty.bb1
-rw-r--r--poky/meta/recipes-core/systemd/systemd-systemctl-native.bb1
-rw-r--r--poky/meta/recipes-core/systemd/systemd.inc6
-rw-r--r--poky/meta/recipes-core/systemd/systemd/0001-elf2efi-Fix-header-size-calculation.patch70
-rw-r--r--poky/meta/recipes-core/systemd/systemd/0014-Use-uintmax_t-for-handling-rlim_t.patch23
-rw-r--r--poky/meta/recipes-core/systemd/systemd/0021-do-not-disable-buffer-in-writing-files.patch89
-rw-r--r--poky/meta/recipes-core/systemd/systemd/0022-Handle-__cpu_mask-usage.patch9
-rw-r--r--poky/meta/recipes-core/systemd/systemd/0025-include-sys-file.h-for-LOCK_EX.patch29
-rw-r--r--poky/meta/recipes-core/systemd/systemd/0026-test-test-sizeof-Include-sys-timex.h-for-struct-time.patch28
-rw-r--r--poky/meta/recipes-core/systemd/systemd/0027-include-missing-sys-file.h-for-LOCK_EX.patch98
-rw-r--r--poky/meta/recipes-core/systemd/systemd_254.4.bb (renamed from poky/meta/recipes-core/systemd/systemd_254.bb)3
-rw-r--r--poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb1
-rw-r--r--poky/meta/recipes-core/util-linux/util-linux-libuuid_2.39.2.bb (renamed from poky/meta/recipes-core/util-linux/util-linux-libuuid_2.39.1.bb)0
-rw-r--r--poky/meta/recipes-core/util-linux/util-linux.inc3
-rw-r--r--poky/meta/recipes-core/util-linux/util-linux/0001-lscpu-Use-4K-buffer-size-instead-of-BUFSIZ.patch38
-rw-r--r--poky/meta/recipes-core/util-linux/util-linux_2.39.2.bb (renamed from poky/meta/recipes-core/util-linux/util-linux_2.39.1.bb)10
-rw-r--r--poky/meta/recipes-devtools/binutils/binutils-2.41.inc2
-rw-r--r--poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb1
-rw-r--r--poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.5.1.bb (renamed from poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.3.3.bb)2
-rw-r--r--poky/meta/recipes-devtools/ccache/ccache_4.8.3.bb (renamed from poky/meta/recipes-devtools/ccache/ccache_4.8.2.bb)4
-rw-r--r--poky/meta/recipes-devtools/cmake/cmake-native_3.27.5.bb (renamed from poky/meta/recipes-devtools/cmake/cmake-native_3.27.4.bb)0
-rw-r--r--poky/meta/recipes-devtools/cmake/cmake.inc2
-rw-r--r--poky/meta/recipes-devtools/cmake/cmake_3.27.5.bb (renamed from poky/meta/recipes-devtools/cmake/cmake_3.27.4.bb)0
-rw-r--r--poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Move-cr_compress_groupfile-outside-WITH_LIBMODULEMD.patch46
-rw-r--r--poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-src-cmd_parser.c-add-a-missing-parameter-name.patch39
-rw-r--r--poky/meta/recipes-devtools/createrepo-c/createrepo-c_1.0.0.bb (renamed from poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.21.1.bb)4
-rw-r--r--poky/meta/recipes-devtools/debugedit/debugedit_5.0.bb4
-rw-r--r--poky/meta/recipes-devtools/debugedit/files/0001-tools-Add-error.h-for-non-glibc-case.patch102
-rw-r--r--poky/meta/recipes-devtools/devel-config/nfs-export-root.bb1
-rw-r--r--poky/meta/recipes-devtools/dnf/dnf/0001-dnf-write-the-log-lock-to-root.patch7
-rw-r--r--poky/meta/recipes-devtools/dnf/dnf_4.17.0.bb (renamed from poky/meta/recipes-devtools/dnf/dnf_4.16.1.bb)2
-rw-r--r--poky/meta/recipes-devtools/elfutils/elfutils_0.189.bb6
-rw-r--r--poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch37
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc-13.2.inc6
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0025-gcc-testsuite-tweaks-for-mips-OE.patch (renamed from poky/meta/recipes-devtools/gcc/gcc/0025-gcc-testsuite-mips.patch)148
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/0026-aarch64-Fix-loose-ldpstp-check-PR111411.patch117
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc/CVE-2023-4039.patch3093
-rw-r--r--poky/meta/recipes-devtools/gdb/gdb-common.inc3
-rw-r--r--poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb1
-rw-r--r--poky/meta/recipes-devtools/jquery/jquery_3.7.1.bb (renamed from poky/meta/recipes-devtools/jquery/jquery_3.7.0.bb)6
-rw-r--r--poky/meta/recipes-devtools/json-c/json-c/0001-Fix-build-with-clang-15.patch34
-rw-r--r--poky/meta/recipes-devtools/json-c/json-c/run-ptest2
-rw-r--r--poky/meta/recipes-devtools/json-c/json-c_0.17.bb (renamed from poky/meta/recipes-devtools/json-c/json-c_0.16.bb)15
-rw-r--r--poky/meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch10
-rw-r--r--poky/meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch8
-rw-r--r--poky/meta/recipes-devtools/libdnf/libdnf/enable_test_data_dir_set.patch14
-rw-r--r--poky/meta/recipes-devtools/libdnf/libdnf_0.71.0.bb (renamed from poky/meta/recipes-devtools/libdnf/libdnf_0.70.1.bb)2
-rw-r--r--poky/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch18
-rw-r--r--poky/meta/recipes-devtools/llvm/llvm_git.bb4
-rw-r--r--poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch32
-rw-r--r--poky/meta/recipes-devtools/meson/meson_1.2.1.bb (renamed from poky/meta/recipes-devtools/meson/meson_1.1.1.bb)2
-rw-r--r--poky/meta/recipes-devtools/mmc/mmc-utils_git.bb2
-rw-r--r--poky/meta/recipes-devtools/mtd/mtd-utils_git.bb4
-rw-r--r--poky/meta/recipes-devtools/opkg/opkg-arch-config_1.0.bb1
-rw-r--r--poky/meta/recipes-devtools/perl/files/run-ptest2
-rw-r--r--poky/meta/recipes-devtools/perl/liberror-perl_0.17029.bb1
-rw-r--r--poky/meta/recipes-devtools/perl/liburi-perl/0001-Skip-TODO-test-cases-that-fail.patch12
-rw-r--r--poky/meta/recipes-devtools/perl/liburi-perl_5.21.bb (renamed from poky/meta/recipes-devtools/perl/liburi-perl_5.17.bb)4
-rw-r--r--poky/meta/recipes-devtools/perl/libxml-perl_0.08.bb1
-rw-r--r--poky/meta/recipes-devtools/perl/perl_5.38.0.bb3
-rw-r--r--poky/meta/recipes-devtools/pkgconf/pkgconf_2.0.3.bb (renamed from poky/meta/recipes-devtools/pkgconf/pkgconf_2.0.2.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-beartype_0.15.0.bb11
-rw-r--r--poky/meta/recipes-devtools/python/python3-booleanpy_4.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-booleanpy_4.0.bb)0
-rw-r--r--poky/meta/recipes-devtools/python/python3-click/run-ptest (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-click/run-ptest)0
-rw-r--r--poky/meta/recipes-devtools/python/python3-click_8.1.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.7.bb)0
-rw-r--r--poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.4.bb (renamed from poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.3.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-cryptography_41.0.4.bb (renamed from poky/meta/recipes-devtools/python/python3-cryptography_41.0.3.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-dtschema_2023.7.bb (renamed from poky/meta/recipes-devtools/python/python3-dtschema_2023.6.1.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-git_3.1.36.bb (renamed from poky/meta/recipes-devtools/python/python3-git_3.1.34.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-hypothesis_6.86.2.bb (renamed from poky/meta/recipes-devtools/python/python3-hypothesis_6.84.0.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-isodate_0.6.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-isodate_0.6.1.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-jsonschema_4.17.3.bb2
-rw-r--r--poky/meta/recipes-devtools/python/python3-libarchive-c_5.0.bb (renamed from poky/meta/recipes-devtools/python/python3-libarchive-c_4.0.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-license-expression/run-ptest (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression/run-ptest)0
-rw-r--r--poky/meta/recipes-devtools/python/python3-license-expression_30.1.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_30.1.1.bb)0
-rw-r--r--poky/meta/recipes-devtools/python/python3-numpy/disable_blas.patch37
-rw-r--r--poky/meta/recipes-devtools/python/python3-numpy/fix_reproducibility.patch33
-rw-r--r--poky/meta/recipes-devtools/python/python3-numpy_1.26.0.bb (renamed from poky/meta/recipes-devtools/python/python3-numpy_1.25.2.bb)6
-rw-r--r--poky/meta/recipes-devtools/python/python3-ply_3.11.bb2
-rw-r--r--poky/meta/recipes-devtools/python/python3-pycryptodome_3.18.0.bb5
-rw-r--r--poky/meta/recipes-devtools/python/python3-pycryptodome_3.19.0.bb5
-rw-r--r--poky/meta/recipes-devtools/python/python3-pycryptodomex_3.19.0.bb (renamed from poky/meta/recipes-devtools/python/python3-pycryptodomex_3.18.0.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-pyelftools_0.30.bb (renamed from poky/meta/recipes-devtools/python/python3-pyelftools_0.29.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-pygobject/0001-Do-not-build-tests.patch30
-rw-r--r--poky/meta/recipes-devtools/python/python3-pygobject_3.46.0.bb (renamed from poky/meta/recipes-devtools/python/python3-pygobject_3.44.1.bb)8
-rw-r--r--poky/meta/recipes-devtools/python/python3-pytest_7.4.2.bb (renamed from poky/meta/recipes-devtools/python/python3-pytest_7.4.1.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-rdflib_7.0.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-rdflib_7.0.0.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-setuptools-rust_1.7.0.bb (renamed from poky/meta/recipes-devtools/python/python3-setuptools-rust_1.6.0.bb)5
-rw-r--r--poky/meta/recipes-devtools/python/python3-setuptools-scm_7.1.0.bb2
-rw-r--r--poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch2
-rw-r--r--poky/meta/recipes-devtools/python/python3-setuptools_68.2.2.bb (renamed from poky/meta/recipes-devtools/python/python3-setuptools_68.1.2.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-smmap_6.0.0.bb (renamed from poky/meta/recipes-devtools/python/python3-smmap_5.0.0.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-spdx-tools_0.8.1.bb28
-rw-r--r--poky/meta/recipes-devtools/python/python3-sphinx_7.2.6.bb (renamed from poky/meta/recipes-devtools/python/python3-sphinx_7.2.5.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.9.19.bb (renamed from poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.8.7.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-typing-extensions_4.8.0.bb (renamed from poky/meta/recipes-devtools/python/python3-typing-extensions_4.7.1.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-uritools_4.0.2.bb11
-rw-r--r--poky/meta/recipes-devtools/python/python3-urllib3_2.0.5.bb (renamed from poky/meta/recipes-devtools/python/python3-urllib3_2.0.4.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-xmltodict/run-ptest (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-xmltodict/run-ptest)0
-rw-r--r--poky/meta/recipes-devtools/python/python3-xmltodict_0.13.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-xmltodict_0.13.0.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3-zipp_3.17.0.bb (renamed from poky/meta/recipes-devtools/python/python3-zipp_3.16.2.bb)2
-rw-r--r--poky/meta/recipes-devtools/python/python3/0001-skip-no_stdout_fileno-test-due-to-load-variability.patch32
-rw-r--r--poky/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch2
-rw-r--r--poky/meta/recipes-devtools/python/python3_3.11.5.bb3
-rw-r--r--poky/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb1
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb1
-rw-r--r--poky/meta/recipes-devtools/qemu/qemu.inc1
-rw-r--r--poky/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb1
-rw-r--r--poky/meta/recipes-devtools/rust/cargo-c-native_0.9.18.bb2
-rwxr-xr-xpoky/meta/recipes-devtools/strace/strace/run-ptest2
-rw-r--r--poky/meta/recipes-devtools/strace/strace_6.5.bb (renamed from poky/meta/recipes-devtools/strace/strace_6.4.bb)2
-rw-r--r--poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb1
-rw-r--r--poky/meta/recipes-devtools/vala/vala_0.56.13.bb3
-rw-r--r--poky/meta/recipes-devtools/vala/vala_0.56.8.bb3
-rw-r--r--poky/meta/recipes-extended/cups/cups.inc1
-rw-r--r--poky/meta/recipes-extended/cups/cups/CVE-2023-4504.patch42
-rw-r--r--poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch8
-rw-r--r--poky/meta/recipes-extended/ethtool/ethtool_6.5.bb (renamed from poky/meta/recipes-extended/ethtool/ethtool_6.3.bb)2
-rw-r--r--poky/meta/recipes-extended/ghostscript/ghostscript/0001-Bug-706897-Copy-pcx-buffer-overrun-fix-from-devices-.patch31
-rw-r--r--poky/meta/recipes-extended/ghostscript/ghostscript_10.02.0.bb (renamed from poky/meta/recipes-extended/ghostscript/ghostscript_10.01.2.bb)5
-rw-r--r--poky/meta/recipes-extended/go-examples/go-helloworld_0.1.bb2
-rw-r--r--poky/meta/recipes-extended/groff/files/0001-build-Fix-Savannah-64681-webpage.ps-deps.patch51
-rw-r--r--poky/meta/recipes-extended/groff/files/0001-build-meintro_fr.ps-depends-on-tbl.patch31
-rw-r--r--poky/meta/recipes-extended/groff/groff_1.23.0.bb2
-rw-r--r--poky/meta/recipes-extended/gzip/gzip-1.12/autoconf-2.73.patch24
-rw-r--r--poky/meta/recipes-extended/gzip/gzip-1.13/wrong-path-fix.patch (renamed from poky/meta/recipes-extended/gzip/gzip-1.12/wrong-path-fix.patch)0
-rw-r--r--poky/meta/recipes-extended/gzip/gzip_1.13.bb (renamed from poky/meta/recipes-extended/gzip/gzip_1.12.bb)7
-rw-r--r--poky/meta/recipes-extended/libarchive/libarchive_3.7.2.bb (renamed from poky/meta/recipes-extended/libarchive/libarchive_3.7.1.bb)2
-rw-r--r--poky/meta/recipes-extended/libsolv/libsolv_0.7.25.bb (renamed from poky/meta/recipes-extended/libsolv/libsolv_0.7.24.bb)6
-rw-r--r--poky/meta/recipes-extended/man-pages/man-pages_6.05.01.bb (renamed from poky/meta/recipes-extended/man-pages/man-pages_6.04.bb)4
-rw-r--r--poky/meta/recipes-extended/mingetty/mingetty_1.08.bb1
-rw-r--r--poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb1
-rw-r--r--poky/meta/recipes-extended/procps/procps/0001-po-fr.po-address-failures-with-gettext-0.22.patch37
-rw-r--r--poky/meta/recipes-extended/procps/procps/0001-src-w.c-use-utmp.h-only.patch65
-rw-r--r--poky/meta/recipes-extended/procps/procps/CVE-2023-4016.patch73
-rw-r--r--poky/meta/recipes-extended/procps/procps_4.0.4.bb (renamed from poky/meta/recipes-extended/procps/procps_4.0.3.bb)5
-rw-r--r--poky/meta/recipes-extended/screen/screen/0001-configure-Add-needed-system-headers-in-checks.patch151
-rw-r--r--poky/meta/recipes-extended/screen/screen/signal-permission.patch40
-rw-r--r--poky/meta/recipes-extended/screen/screen_4.9.1.bb (renamed from poky/meta/recipes-extended/screen/screen_4.9.0.bb)4
-rw-r--r--poky/meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-login.patch2
-rw-r--r--poky/meta/recipes-extended/shadow/shadow-securetty_4.6.bb1
-rw-r--r--poky/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb1
-rw-r--r--poky/meta/recipes-extended/stress-ng/stress-ng_0.16.05.bb (renamed from poky/meta/recipes-extended/stress-ng/stress-ng_0.16.04.bb)2
-rw-r--r--poky/meta/recipes-extended/sysstat/sysstat/0001-configure.in-remove-check-for-chkconfig.patch10
-rw-r--r--poky/meta/recipes-extended/sysstat/sysstat/CVE-2023-33204.patch46
-rw-r--r--poky/meta/recipes-extended/sysstat/sysstat_12.6.2.bb9
-rw-r--r--poky/meta/recipes-extended/sysstat/sysstat_12.7.4.bb (renamed from poky/meta/recipes-extended/sysstat/sysstat.inc)13
-rw-r--r--poky/meta/recipes-extended/tar/tar/0001-tests-fix-TESTSUITE_AT.patch228
-rw-r--r--poky/meta/recipes-extended/tar/tar/0002-tests-check-for-recently-fixed-bug.patch60
-rw-r--r--poky/meta/recipes-extended/tar/tar/0003-Exclude-VCS-directory-with-writing-from-an-archive.patch112
-rw-r--r--poky/meta/recipes-extended/tar/tar/run-ptest14
-rw-r--r--poky/meta/recipes-extended/tar/tar_1.35.bb34
-rw-r--r--poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb1
-rw-r--r--poky/meta/recipes-extended/unzip/unzip_6.0.bb1
-rw-r--r--poky/meta/recipes-extended/watchdog/watchdog_5.16.bb1
-rw-r--r--poky/meta/recipes-extended/which/which_2.21.bb1
-rw-r--r--poky/meta/recipes-extended/zip/zip_3.0.bb1
-rw-r--r--poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch27
-rw-r--r--poky/meta/recipes-gnome/gnome/adwaita-icon-theme_43.bb40
-rw-r--r--poky/meta/recipes-gnome/gnome/adwaita-icon-theme_45.0.bb30
-rw-r--r--poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch2
-rw-r--r--poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-g-ir-tool-template.in-fix-girdir-path.patch33
-rw-r--r--poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb (renamed from poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.76.1.bb)3
-rw-r--r--poky/meta/recipes-gnome/libadwaita/libadwaita_1.4.0.bb (renamed from poky/meta/recipes-gnome/libadwaita/libadwaita_1.3.4.bb)5
-rw-r--r--poky/meta/recipes-gnome/libportal/libportal_0.7.1.bb (renamed from poky/meta/recipes-gnome/libportal/libportal_0.6.bb)4
-rw-r--r--poky/meta/recipes-gnome/libsecret/libsecret_0.21.1.bb (renamed from poky/meta/recipes-gnome/libsecret/libsecret_0.21.0.bb)2
-rw-r--r--poky/meta/recipes-gnome/libxmlb/libxmlb/0001-xb-selftest.c-hardcode-G_TEST_SRCDIR.patch35
-rw-r--r--poky/meta/recipes-gnome/libxmlb/libxmlb/run-ptest (renamed from meta-openembedded/meta-oe/recipes-gnome/libxmlb/libxmlb/run-ptest)0
-rw-r--r--poky/meta/recipes-gnome/libxmlb/libxmlb_0.3.14.bb25
-rw-r--r--poky/meta/recipes-graphics/builder/builder_0.1.bb1
-rw-r--r--poky/meta/recipes-graphics/freetype/freetype_2.13.2.bb (renamed from poky/meta/recipes-graphics/freetype/freetype_2.13.1.bb)2
-rw-r--r--poky/meta/recipes-graphics/glslang/glslang_1.3.261.1.bb (renamed from poky/meta/recipes-graphics/glslang/glslang_1.3.250.0.bb)2
-rw-r--r--poky/meta/recipes-graphics/harfbuzz/harfbuzz_8.2.1.bb (renamed from poky/meta/recipes-graphics/harfbuzz/harfbuzz_8.1.1.bb)2
-rw-r--r--poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools/0001-Support-procps-4.x.patch502
-rw-r--r--poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb10
-rw-r--r--poky/meta/recipes-graphics/kmscube/kmscube_git.bb2
-rw-r--r--poky/meta/recipes-graphics/libsdl2/libsdl2_2.28.3.bb (renamed from poky/meta/recipes-graphics/libsdl2/libsdl2_2.28.0.bb)2
-rw-r--r--poky/meta/recipes-graphics/libva/libva-utils_2.20.0.bb (renamed from poky/meta/recipes-graphics/libva/libva-utils_2.19.0.bb)4
-rw-r--r--poky/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb1
-rw-r--r--poky/meta/recipes-graphics/mesa/files/0001-gallium-Fix-build-with-llvm-17.patch22
-rw-r--r--poky/meta/recipes-graphics/mesa/files/0001-meson-Disable-cmake-dependency-detector-for-llvm.patch42
-rw-r--r--poky/meta/recipes-graphics/mesa/mesa-gl_23.1.8.bb (renamed from poky/meta/recipes-graphics/mesa/mesa-gl_23.1.3.bb)0
-rw-r--r--poky/meta/recipes-graphics/mesa/mesa.inc3
-rw-r--r--poky/meta/recipes-graphics/mesa/mesa_23.1.8.bb (renamed from poky/meta/recipes-graphics/mesa/mesa_23.1.3.bb)0
-rw-r--r--poky/meta/recipes-graphics/mini-x-session/mini-x-session_0.1.bb1
-rw-r--r--poky/meta/recipes-graphics/packagegroups/packagegroup-core-weston.bb1
-rw-r--r--poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb1
-rw-r--r--poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb6
-rw-r--r--poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb1
-rw-r--r--poky/meta/recipes-graphics/piglit/piglit/0001-cmake-install-bash-completions-in-the-right-place.patch35
-rw-r--r--poky/meta/recipes-graphics/piglit/piglit_git.bb3
-rw-r--r--poky/meta/recipes-graphics/spir/spirv-headers_1.3.261.1.bb (renamed from poky/meta/recipes-graphics/spir/spirv-headers_1.3.250.0.bb)2
-rw-r--r--poky/meta/recipes-graphics/spir/spirv-tools_1.3.261.1.bb (renamed from poky/meta/recipes-graphics/spir/spirv-tools_1.3.250.0.bb)2
-rw-r--r--poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb1
-rw-r--r--poky/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb1
-rw-r--r--poky/meta/recipes-graphics/vulkan/vulkan-headers_1.3.261.1.bb (renamed from poky/meta/recipes-graphics/vulkan/vulkan-headers_1.3.250.0.bb)6
-rw-r--r--poky/meta/recipes-graphics/vulkan/vulkan-loader_1.3.261.1.bb (renamed from poky/meta/recipes-graphics/vulkan/vulkan-loader_1.3.250.0.bb)4
-rw-r--r--poky/meta/recipes-graphics/vulkan/vulkan-tools/0001-scripts-CMakeLists.txt-do-not-make-special-arrangeme.patch29
-rw-r--r--poky/meta/recipes-graphics/vulkan/vulkan-tools_1.3.261.1.bb (renamed from poky/meta/recipes-graphics/vulkan/vulkan-tools_1.3.250.0.bb)6
-rw-r--r--poky/meta/recipes-graphics/vulkan/vulkan-validation-layers/0001-scripts-CMakeLists.txt-append-to-CMAKE_FIND_ROOT_PAT.patch28
-rw-r--r--poky/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.261.1.bb (renamed from poky/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.250.0.bb)10
-rw-r--r--poky/meta/recipes-graphics/wayland/files/0001-wayland-info-Fix-build-without-libdrm.patch42
-rw-r--r--poky/meta/recipes-graphics/wayland/libinput_1.24.0.bb (renamed from poky/meta/recipes-graphics/wayland/libinput_1.23.0.bb)2
-rw-r--r--poky/meta/recipes-graphics/wayland/wayland-utils_1.2.0.bb (renamed from poky/meta/recipes-graphics/wayland/wayland-utils_1.1.0.bb)6
-rw-r--r--poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb1
-rw-r--r--poky/meta/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb1
-rw-r--r--poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb1
-rw-r--r--poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_1.4.0.bb (renamed from poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_1.3.0.bb)2
-rw-r--r--poky/meta/recipes-graphics/xorg-font/font-util_1.4.1.bb (renamed from poky/meta/recipes-graphics/xorg-font/font-util_1.4.0.bb)10
-rw-r--r--poky/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb1
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/libxcb_1.16.bb (renamed from poky/meta/recipes-graphics/xorg-lib/libxcb_1.15.bb)2
-rw-r--r--poky/meta/recipes-graphics/xorg-proto/xcb-proto_1.16.0.bb (renamed from poky/meta/recipes-graphics/xorg-proto/xcb-proto_1.15.2.bb)2
-rw-r--r--poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb1
-rw-r--r--poky/meta/recipes-graphics/xrestop/xrestop_0.4.bb1
-rw-r--r--poky/meta/recipes-graphics/xwayland/xwayland_23.2.1.bb (renamed from poky/meta/recipes-graphics/xwayland/xwayland_23.1.2.bb)2
-rw-r--r--poky/meta/recipes-kernel/kexec/kexec-tools_2.0.27.bb (renamed from poky/meta/recipes-kernel/kexec/kexec-tools_2.0.26.bb)2
-rw-r--r--poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.5.bb (renamed from poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.4.bb)2
-rw-r--r--poky/meta/recipes-kernel/linux/cve-exclusion_6.1.inc68
-rw-r--r--poky/meta/recipes-kernel/linux/cve-exclusion_6.4.inc66
-rw-r--r--poky/meta/recipes-kernel/linux/cve-exclusion_6.5.inc5072
-rw-r--r--poky/meta/recipes-kernel/linux/linux-dummy.bb1
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-dev.bb4
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-rt_6.1.bb6
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-rt_6.4.bb6
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-rt_6.5.bb48
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.1.bb6
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.4.bb6
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.5.bb33
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto_6.1.bb28
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto_6.4.bb28
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto_6.5.bb72
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-tools_2.13.11.bb (renamed from poky/meta/recipes-kernel/lttng/lttng-tools_2.13.10.bb)2
-rw-r--r--poky/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb1
-rw-r--r--poky/meta/recipes-kernel/perf/perf.bb1
-rw-r--r--poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2023.09.01.bb (renamed from poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2023.05.03.bb)2
-rw-r--r--poky/meta/recipes-multimedia/alsa/alsa-lib/0001-global.h-move-__STRING-macro-outside-PIC-ifdef-block.patch52
-rw-r--r--poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.10.bb (renamed from poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.9.bb)6
-rw-r--r--poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.10.bb (renamed from poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.9.bb)2
-rw-r--r--poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-add-define-to-compile-with-glibc-2.38.patch39
-rw-r--r--poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-fix-compilation-when-building-in-a-subdir.patch35
-rw-r--r--poky/meta/recipes-multimedia/alsa/alsa-utils/0001-nhlt-nhlt-dmic-info.c-include-sys-types.h.patch31
-rw-r--r--poky/meta/recipes-multimedia/alsa/alsa-utils/0001-topology.c-include-locale.h.patch31
-rw-r--r--poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.10.bb (renamed from poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.9.bb)11
-rw-r--r--poky/meta/recipes-multimedia/liba52/liba52_0.7.4.bb1
-rw-r--r--poky/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb1
-rw-r--r--poky/meta/recipes-multimedia/libtiff/tiff_4.6.0.bb (renamed from poky/meta/recipes-multimedia/libtiff/tiff_4.5.1.bb)5
-rw-r--r--poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc2
-rw-r--r--poky/meta/recipes-multimedia/webp/libwebp_1.3.2.bb (renamed from poky/meta/recipes-multimedia/webp/libwebp_1.3.1.bb)2
-rw-r--r--poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb1
-rw-r--r--poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb1
-rw-r--r--poky/meta/recipes-sato/puzzles/puzzles_git.bb2
-rw-r--r--poky/meta/recipes-sato/shutdown-desktop/shutdown-desktop.bb1
-rw-r--r--poky/meta/recipes-sato/webkit/webkitgtk_2.40.5.bb4
-rw-r--r--poky/meta/recipes-support/appstream/appstream/0001-meson-do-not-rely-on-an-exe-wrapper.patch36
-rw-r--r--poky/meta/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch31
-rw-r--r--poky/meta/recipes-support/appstream/appstream_0.16.3.bb (renamed from meta-openembedded/meta-oe/recipes-support/appstream/appstream_0.16.2.bb)22
-rw-r--r--poky/meta/recipes-support/atk/at-spi2-core_2.50.0.bb (renamed from poky/meta/recipes-support/atk/at-spi2-core_2.48.3.bb)2
-rw-r--r--poky/meta/recipes-support/boost/boost-1.83.0.inc (renamed from poky/meta/recipes-support/boost/boost-1.82.0.inc)2
-rw-r--r--poky/meta/recipes-support/boost/boost-build-native_1.83.0.bb (renamed from poky/meta/recipes-support/boost/boost-build-native_1.82.0.bb)2
-rw-r--r--poky/meta/recipes-support/boost/boost_1.83.0.bb (renamed from poky/meta/recipes-support/boost/boost_1.82.0.bb)0
-rw-r--r--poky/meta/recipes-support/curl/curl/disable-tests1
-rw-r--r--poky/meta/recipes-support/curl/curl/run-ptest2
-rw-r--r--poky/meta/recipes-support/curl/curl_8.3.0.bb (renamed from poky/meta/recipes-support/curl/curl_8.2.1.bb)22
-rw-r--r--poky/meta/recipes-support/db/db_5.3.28.bb1
-rw-r--r--poky/meta/recipes-support/debianutils/debianutils_5.13.bb (renamed from poky/meta/recipes-support/debianutils/debianutils_5.8.bb)2
-rw-r--r--poky/meta/recipes-support/diffoscope/diffoscope_249.bb (renamed from poky/meta/recipes-support/diffoscope/diffoscope_244.bb)2
-rw-r--r--poky/meta/recipes-support/enchant/enchant2_2.6.1.bb (renamed from poky/meta/recipes-support/enchant/enchant2_2.5.0.bb)2
-rw-r--r--poky/meta/recipes-support/libevent/libevent/0004-test-retriable-tests-are-marked-failed-only-when-all-a.patch2
-rw-r--r--poky/meta/recipes-support/libnl/libnl_3.8.0.bb (renamed from poky/meta/recipes-support/libnl/libnl_3.7.0.bb)2
-rw-r--r--poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb2
-rw-r--r--poky/meta/recipes-support/libsoup/libsoup_3.4.2.bb2
-rw-r--r--poky/meta/recipes-support/nghttp2/nghttp2_1.56.0.bb (renamed from poky/meta/recipes-support/nghttp2/nghttp2_1.55.1.bb)2
-rw-r--r--poky/meta/recipes-support/sqlite/sqlite3_3.43.1.bb (renamed from poky/meta/recipes-support/sqlite/sqlite3_3.43.0.bb)2
-rw-r--r--poky/meta/recipes-support/vim/vim.inc6
-rw-r--r--poky/scripts/lib/devtool/build_sdk.py2
-rw-r--r--poky/scripts/lib/devtool/standard.py1
-rw-r--r--poky/scripts/lib/devtool/upgrade.py1
-rw-r--r--poky/scripts/lib/recipetool/append.py3
-rw-r--r--poky/scripts/lib/recipetool/create.py1
-rw-r--r--poky/scripts/lib/recipetool/setvar.py1
-rw-r--r--poky/scripts/lib/wic/plugins/source/bootimg-partition.py2
-rw-r--r--poky/scripts/postinst-intercepts/update_mandb2
-rwxr-xr-xpoky/scripts/runqemu17
1036 files changed, 19941 insertions, 16925 deletions
diff --git a/meta-arm/.gitlab-ci.yml b/meta-arm/.gitlab-ci.yml
index a2af871687..0466c096da 100644
--- a/meta-arm/.gitlab-ci.yml
+++ b/meta-arm/.gitlab-ci.yml
@@ -1,9 +1,10 @@
-image: ghcr.io/siemens/kas/kas:3.3
+image: ${MIRROR_GHCR}/siemens/kas/kas:4.0
variables:
CPU_REQUEST: ""
DEFAULT_TAG: ""
CACHE_DIR: $CI_BUILDS_DIR/persist
+ MIRROR_GHCR: ghcr.io
# These are needed as the k8s executor doesn't respect the container entrypoint
# by default
FF_KUBERNETES_HONOR_ENTRYPOINT: 1
@@ -76,6 +77,8 @@ stages:
update-repos:
extends: .setup
stage: prep
+ allow_failure:
+ exit_codes: 128
script:
- |
flock --verbose --timeout 60 $KAS_REPO_REF_DIR ./ci/update-repos
@@ -122,14 +125,6 @@ fvp-base:
- TESTING: testimage
- FIRMWARE: edk2
-fvp-baser-aemv8r64:
- extends: .build
- parallel:
- matrix:
- - TESTING: testimage
- tags:
- - x86_64
-
fvps:
extends: .build
@@ -285,7 +280,14 @@ documentation:
extends: .setup
script:
- |
- sudo pip3 install -r meta-arm-bsp/documentation/requirements.txt
+ # This can be removed when the kas container has python3-venv installed
+ sudo apt-get update && sudo apt-get install --yes python3-venv
+
+ python3 -m venv venv
+ . ./venv/bin/activate
+
+ pip3 install -r meta-arm-bsp/documentation/requirements.txt
+
for CONF in meta-*/documentation/*/conf.py ; do
echo Building $CONF...
SOURCE_DIR=$(dirname $CONF)
diff --git a/meta-arm/README.md b/meta-arm/README.md
index 7779258551..82c326de7e 100644
--- a/meta-arm/README.md
+++ b/meta-arm/README.md
@@ -6,10 +6,6 @@ This repository contains the Arm layers for OpenEmbedded.
This layer contains general recipes for the Arm architecture, such as firmware, FVPs, and Arm-specific integration.
-* meta-arm-autonomy
-
- This layer is the distribution for a reference stack for autonomous systems.
-
* meta-arm-bsp
This layer contains machines for Arm reference platforms, for example FVP Base, N1SDP, and Juno.
diff --git a/meta-arm/ci/corstone1000-common.yml b/meta-arm/ci/corstone1000-common.yml
index a4c9ca3ff8..094722850f 100644
--- a/meta-arm/ci/corstone1000-common.yml
+++ b/meta-arm/ci/corstone1000-common.yml
@@ -4,6 +4,7 @@ header:
- ci/base.yml
- ci/meta-openembedded.yml
- ci/poky-tiny.yml
+ - ci/meta-secure-core.yml
local_conf_header:
extrapackages: |
diff --git a/meta-arm/ci/fvp-baser-aemv8r64.yml b/meta-arm/ci/fvp-baser-aemv8r64.yml
deleted file mode 100644
index fd906250b1..0000000000
--- a/meta-arm/ci/fvp-baser-aemv8r64.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-header:
- version: 14
- includes:
- - ci/base.yml
- - ci/fvp.yml
-
-machine: fvp-baser-aemv8r64
diff --git a/meta-arm/ci/meta-openembedded.yml b/meta-arm/ci/meta-openembedded.yml
index e1e16c8fc4..743fdde57f 100644
--- a/meta-arm/ci/meta-openembedded.yml
+++ b/meta-arm/ci/meta-openembedded.yml
@@ -9,3 +9,4 @@ repos:
meta-networking:
meta-oe:
meta-python:
+ meta-perl:
diff --git a/meta-arm/ci/meta-secure-core.yml b/meta-arm/ci/meta-secure-core.yml
new file mode 100644
index 0000000000..94b11a7c5d
--- /dev/null
+++ b/meta-arm/ci/meta-secure-core.yml
@@ -0,0 +1,11 @@
+header:
+ version: 14
+
+repos:
+ meta-secure-core:
+ url: https://github.com/Wind-River/meta-secure-core.git
+ layers:
+ meta:
+ meta-signing-key:
+ meta-efi-secure-boot:
+
diff --git a/meta-arm/ci/testimage.yml b/meta-arm/ci/testimage.yml
index f496ec1c9a..a0e90250b2 100644
--- a/meta-arm/ci/testimage.yml
+++ b/meta-arm/ci/testimage.yml
@@ -11,8 +11,6 @@ local_conf_header:
QEMU_USE_KVM = ""
slirp: |
TEST_RUNQEMUPARAMS = "slirp"
- TEST_SERVER_IP = "127.0.0.1"
- QEMU_USE_SLIRP = "1"
sshd: |
IMAGE_FEATURES:append = " ssh-server-dropbear"
sshkeys: |
diff --git a/meta-arm/ci/update-repos b/meta-arm/ci/update-repos
index 9487102df1..069a94ea98 100755
--- a/meta-arm/ci/update-repos
+++ b/meta-arm/ci/update-repos
@@ -32,6 +32,7 @@ if __name__ == "__main__":
sys.exit(1)
base_repodir = pathlib.Path(os.environ["KAS_REPO_REF_DIR"])
+ failed = False
for repo in repositories:
repodir = base_repodir / repo_shortname(repo)
@@ -41,8 +42,15 @@ if __name__ == "__main__":
shutil.rmtree(repodir, ignore_errors=True)
if repodir.exists():
- print("Updating %s..." % repo)
- subprocess.run(["git", "-C", repodir, "-c", "gc.autoDetach=false", "fetch"], check=True)
+ try:
+ print("Updating %s..." % repo)
+ subprocess.run(["git", "-C", repodir, "-c", "gc.autoDetach=false", "fetch"], check=True)
+ except subprocess.CalledProcessError as e:
+ print(e)
+ failed = True
else:
print("Cloning %s..." % repo)
subprocess.run(["git", "clone", "--bare", repo, repodir], check=True)
+
+ if failed:
+ sys.exit(128)
diff --git a/meta-arm/documentation/oeqa-fvp.md b/meta-arm/documentation/oeqa-fvp.md
index b39e09638e..c66a9420dc 100644
--- a/meta-arm/documentation/oeqa-fvp.md
+++ b/meta-arm/documentation/oeqa-fvp.md
@@ -8,9 +8,9 @@ meta-arm provides the OEFVPTarget which must be set up in the machine configurat
```
TEST_TARGET = "OEFVPTarget"
TEST_SERVER_IP = "127.0.0.1"
-TEST_TARGET_IP = "127.0.0.1:8022"
+TEST_TARGET_IP = "127.0.0.1:2222"
IMAGE_FEATURES:append = " ssh-server-dropbear"
-FVP_CONFIG[bp.virtio_net.hostbridge.userNetPorts] ?= "8022=22"
+FVP_CONFIG[bp.virtio_net.hostbridge.userNetPorts] ?= "2222=22"
FVP_CONSOLES[default] = "terminal_0"
FVP_CONSOLES[tf-a] = "s_terminal_0"
```
diff --git a/meta-arm/documentation/runfvp.md b/meta-arm/documentation/runfvp.md
index b3c6467f50..ed14d44a5d 100644
--- a/meta-arm/documentation/runfvp.md
+++ b/meta-arm/documentation/runfvp.md
@@ -55,7 +55,7 @@ The name of the FVP binary itself, for example `fvp-base` uses `FVP_Base_RevC-2x
The name of the recipe that provides the FVP executable set in `FVP_EXE`, for example `fvp-base` uses `fvp-base-a-aem-native`. This *must* be a `-native` recipe as the binary will be executed on the build host.
-There are recipes for common FVPs in meta-arm already, and writing new recipes is trivial. For FVPs which are free to download `fvp-base-a-aem.bb` is a good example. Some FVPs must be downloaded separately as they need an account on Arm's website, `fvp-base-r-aem.bb` is a good example of those.
+There are recipes for common FVPs in meta-arm already, and writing new recipes is trivial. For FVPs which are free to download `fvp-base-a-aem.bb` is a good example. Some FVPs must be downloaded separately as they need an account on Arm's website.
If `FVP_PROVIDER` is not set then it is assumed that `FVP_EXE` is installed on the host already.
diff --git a/meta-arm/kas/corstone1000-base.yml b/meta-arm/kas/corstone1000-base.yml
index 161312fbcc..5e4ae7e4cd 100644
--- a/meta-arm/kas/corstone1000-base.yml
+++ b/meta-arm/kas/corstone1000-base.yml
@@ -32,6 +32,13 @@ repos:
meta-oe:
meta-python:
+ meta-secure-core:
+ url: https://github.com/wind-river/meta-secure-core.git
+ layers:
+ meta:
+ meta-signing-key:
+ meta-efi-secure-boot:
+
local_conf_header:
base: |
CONF_VERSION = "2"
diff --git a/meta-arm/kas/fvp-baser-aemv8r64-bsp.yml b/meta-arm/kas/fvp-baser-aemv8r64-bsp.yml
deleted file mode 100644
index 366ab87eb7..0000000000
--- a/meta-arm/kas/fvp-baser-aemv8r64-bsp.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-header:
- version: 9
- includes:
- - kas/fvp-eula.yml
-
-env:
- DISPLAY: ""
-
-distro: poky
-machine: fvp-baser-aemv8r64
-
-defaults:
- repos:
- refspec: master
-
-repos:
- meta-arm:
- url: https://git.yoctoproject.org/git/meta-arm
- path: layers/meta-arm
- layers:
- meta-arm:
- meta-arm-bsp:
- meta-arm-toolchain:
-
- poky:
- url: https://git.yoctoproject.org/git/poky
- path: layers/poky
- layers:
- meta:
- meta-poky:
-
-local_conf_header:
- base: |
- CONF_VERSION = "2"
- PACKAGE_CLASSES = "package_ipk"
- PACKAGECONFIG:remove:pn-qemu-system-native = "gtk+ sdl"
- EXTRA_IMAGE_FEATURES:append = " debug-tweaks ssh-server-openssh"
- CORE_IMAGE_EXTRA_INSTALL:append = " ssh-pregen-hostkeys"
- IMAGE_CLASSES:append = " testimage"
-
-target:
- - core-image-minimal
diff --git a/meta-arm/kas/fvp-baser-aemv8r64-rt-bsp.yml b/meta-arm/kas/fvp-baser-aemv8r64-rt-bsp.yml
deleted file mode 100644
index 19ee747f92..0000000000
--- a/meta-arm/kas/fvp-baser-aemv8r64-rt-bsp.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-header:
- version: 9
- includes:
- - kas/fvp-baser-aemv8r64-bsp.yml
-
-local_conf_header:
- base-rt: |
- PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-rt"
diff --git a/meta-arm/meta-arm-bsp/conf/layer.conf b/meta-arm/meta-arm-bsp/conf/layer.conf
index e192a83ddf..97d9728c87 100644
--- a/meta-arm/meta-arm-bsp/conf/layer.conf
+++ b/meta-arm/meta-arm-bsp/conf/layer.conf
@@ -9,7 +9,7 @@ BBFILE_COLLECTIONS += "meta-arm-bsp"
BBFILE_PATTERN_meta-arm-bsp = "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-arm-bsp = "5"
-LAYERSERIES_COMPAT_meta-arm-bsp = "mickledore"
+LAYERSERIES_COMPAT_meta-arm-bsp = "nanbield"
LAYERDEPENDS_meta-arm-bsp = "core meta-arm"
# This won't be used by layerindex-fetch, but works everywhere else
diff --git a/meta-arm/meta-arm-bsp/conf/machine/corstone1000-fvp.conf b/meta-arm/meta-arm-bsp/conf/machine/corstone1000-fvp.conf
index ebfba5b93f..5b3e150260 100644
--- a/meta-arm/meta-arm-bsp/conf/machine/corstone1000-fvp.conf
+++ b/meta-arm/meta-arm-bsp/conf/machine/corstone1000-fvp.conf
@@ -24,7 +24,7 @@ FVP_CONFIG[se.BootROM_config] ?= "3"
FVP_CONFIG[board.hostbridge.interfaceName] ?= "tap0"
FVP_CONFIG[board.smsc_91c111.enabled] ?= "1"
FVP_CONFIG[board.hostbridge.userNetworking] ?= "true"
-FVP_CONFIG[board.hostbridge.userNetPorts] ?= "5555=5555,8080=80,8022=22"
+FVP_CONFIG[board.hostbridge.userNetPorts] ?= "5555=5555,8080=80,2222=22"
FVP_CONFIG[board.se_flash_size] ?= "8192"
FVP_CONFIG[diagnostics] ?= "4"
FVP_CONFIG[disable_visualisation] ?= "true"
diff --git a/meta-arm/meta-arm-bsp/conf/machine/fvp-baser-aemv8r64.conf b/meta-arm/meta-arm-bsp/conf/machine/fvp-baser-aemv8r64.conf
deleted file mode 100644
index 7d2eaf9b94..0000000000
--- a/meta-arm/meta-arm-bsp/conf/machine/fvp-baser-aemv8r64.conf
+++ /dev/null
@@ -1,66 +0,0 @@
-# Configuration for Fixed Virtual Platform BaseR AEMv8r64 Machine
-
-#@TYPE: Machine
-#@NAME: FVP BaseR AEMv8r64 Machine
-#@DESCRIPTION: Machine configuration for FVP BaseR AEMv8r64
-
-require conf/machine/include/arm/armv8r/arch-armv8r64.inc
-
-EXTRA_IMAGEDEPENDS += "boot-wrapper-aarch64"
-
-PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
-PREFERRED_VERSION_u-boot ?= "2023.01"
-
-KERNEL_IMAGETYPE = "Image"
-KERNEL_DEVICETREE = "arm/fvp-baser-aemv8r64.dtb"
-
-UBOOT_MACHINE ?= "vexpress_aemv8r_defconfig"
-
-SERIAL_CONSOLES = "115200;ttyAMA0"
-
-IMAGE_CLASSES:append = " fvpboot"
-IMAGE_FSTYPES += "wic"
-WKS_FILE ?= "efi-disk.wks.in"
-EFI_PROVIDER ?= "grub-efi"
-MACHINE_FEATURES:append = " efi"
-
-IMAGE_NAME_SUFFIX = ""
-
-# As this is a virtual target that will not be used in the real world there is
-# no need for real SSH keys.
-MACHINE_EXTRA_RRECOMMENDS += "ssh-pregen-hostkeys"
-
-# testimage configuration
-TEST_TARGET = "OEFVPTarget"
-TEST_SUITES:append = " fvp_boot fvp_devices"
-TEST_TARGET_IP ?= "127.0.0.1:8022"
-TEST_SERVER_IP ?= "127.0.1.1"
-TEST_FVP_DEVICES ?= "rtc watchdog networking virtiorng cpu_hotplug"
-
-FVP_EXTRA_ARGS = "-a cluster0*=linux-system.axf"
-FVP_PROVIDER ?= "fvp-base-r-aem-native"
-FVP_EXE ?= "FVP_BaseR_AEMv8R"
-FVP_CONSOLE ?= "terminal_0"
-
-# FVP parameters
-FVP_CONFIG[bp.exclusive_monitor.monitor_access_level] ?= "2"
-FVP_CONFIG[bp.refcounter.non_arch_start_at_default] ?= "1"
-FVP_CONFIG[bp.refcounter.use_real_time] ?= "1"
-FVP_CONFIG[bp.ve_sysregs.exit_on_shutdown] ?= "1"
-FVP_CONFIG[bp.virtio_net.enabled] ?= "1"
-FVP_CONFIG[bp.virtio_net.hostbridge.userNetPorts] ?= "8022=22"
-FVP_CONFIG[bp.virtio_net.hostbridge.userNetworking] ?= "1"
-FVP_CONFIG[bp.virtio_net.secure_accesses] = "1"
-FVP_CONFIG[bp.virtio_rng.enabled] ?= "1"
-FVP_CONFIG[bp.virtio_rng.secure_accesses] = "1"
-FVP_CONFIG[bp.virtioblockdevice.image_path] ?= "${IMAGE_NAME}.wic"
-FVP_CONFIG[bp.virtioblockdevice.secure_accesses] = "1"
-FVP_CONFIG[cache_state_modelled] ?= "0"
-FVP_CONFIG[cci400.force_on_from_start] = "1"
-FVP_CONFIG[cluster0.gicv3.cpuintf-mmap-access-level] ?= "2"
-FVP_CONFIG[cluster0.gicv3.extended-interrupt-range-support] ?= "1"
-FVP_CONFIG[cluster0.gicv3.SRE-EL2-enable-RAO] ?= "1"
-FVP_CONFIG[cluster0.gicv3.SRE-enable-action-on-mmap] ?= "2"
-FVP_CONFIG[cluster0.has_aarch64] ?= "1"
-FVP_CONFIG[gic_distributor.GICD_CTLR-DS-1-means-secure-only] ?= "1"
-FVP_CONFIG[gic_distributor.has-two-security-states] ?= "0"
diff --git a/meta-arm/meta-arm-bsp/conf/machine/include/arm/armv8r/arch-armv8r64.inc b/meta-arm/meta-arm-bsp/conf/machine/include/arm/armv8r/arch-armv8r64.inc
deleted file mode 100644
index 5db12e2c5d..0000000000
--- a/meta-arm/meta-arm-bsp/conf/machine/include/arm/armv8r/arch-armv8r64.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-require conf/machine/include/arm/arch-armv8r.inc
-
-TUNE_FEATURES:tune-armv8r =+ "aarch64"
-PACKAGE_EXTRA_ARCHS:tune-armv8r =+ "aarch64"
-BASE_LIB:tune-armv8r = "lib64"
-BASE_LIB:tune-armv8r-crc = "lib64"
-BASE_LIB:tune-armv8r-crypto = "lib64"
-BASE_LIB:tune-armv8r-simd = "lib64"
-BASE_LIB:tune-armv8r-crc-simd = "lib64"
-BASE_LIB:tune-armv8r-crc-crypto-simd = "lib64"
diff --git a/meta-arm/meta-arm-bsp/conf/machine/include/corstone1000.inc b/meta-arm/meta-arm-bsp/conf/machine/include/corstone1000.inc
index 72c0af518d..5a66f54d20 100644
--- a/meta-arm/meta-arm-bsp/conf/machine/include/corstone1000.inc
+++ b/meta-arm/meta-arm-bsp/conf/machine/include/corstone1000.inc
@@ -52,7 +52,7 @@ EXTRA_IMAGEDEPENDS += "external-system"
# Linux kernel
PREFERRED_PROVIDER_virtual/kernel:forcevariable = "linux-yocto"
-PREFERRED_VERSION_linux-yocto = "6.1%"
+PREFERRED_VERSION_linux-yocto = "6.4%"
KERNEL_IMAGETYPE = "Image.gz"
INITRAMFS_IMAGE_BUNDLE ?= "1"
diff --git a/meta-arm/meta-arm-bsp/conf/machine/include/fvp-common.inc b/meta-arm/meta-arm-bsp/conf/machine/include/fvp-common.inc
index 36bf9555e8..e6e4443199 100644
--- a/meta-arm/meta-arm-bsp/conf/machine/include/fvp-common.inc
+++ b/meta-arm/meta-arm-bsp/conf/machine/include/fvp-common.inc
@@ -23,7 +23,7 @@ EXTRA_IMAGEDEPENDS += "trusted-firmware-a"
MACHINE_EXTRA_RRECOMMENDS += "ssh-pregen-hostkeys"
TEST_TARGET = "OEFVPTarget"
-TEST_TARGET_IP = "127.0.0.1:8022"
+TEST_TARGET_IP = "127.0.0.1:2222"
TEST_SUITES:append = " fvp_boot fvp_devices"
TEST_FVP_DEVICES ?= "rtc watchdog networking virtiorng cpu_hotplug"
@@ -32,8 +32,8 @@ FVP_EXE ?= "FVP_Base_RevC-2xAEMvA"
FVP_CONFIG[bp.ve_sysregs.exit_on_shutdown] ?= "1"
FVP_CONFIG[bp.virtio_net.enabled] ?= "1"
FVP_CONFIG[bp.virtio_net.hostbridge.userNetworking] ?= "1"
-# Tell testimage to connect to localhost:8022, and forward that to SSH in the FVP.
-FVP_CONFIG[bp.virtio_net.hostbridge.userNetPorts] = "8022=22"
+# Tell testimage to connect to localhost:2222, and forward that to SSH in the FVP.
+FVP_CONFIG[bp.virtio_net.hostbridge.userNetPorts] = "2222=22"
FVP_CONFIG[cache_state_modelled] ?= "0"
FVP_CONFIG[bp.secureflashloader.fname] ?= "bl1-fvp.bin"
FVP_CONFIG[bp.flashloader0.fname] ?= "fip-fvp.bin"
diff --git a/meta-arm/meta-arm-bsp/conf/machine/n1sdp.conf b/meta-arm/meta-arm-bsp/conf/machine/n1sdp.conf
index c25a32dcff..b93e053d1f 100644
--- a/meta-arm/meta-arm-bsp/conf/machine/n1sdp.conf
+++ b/meta-arm/meta-arm-bsp/conf/machine/n1sdp.conf
@@ -19,7 +19,7 @@ WKS_FILE_DEPENDS:append = " ${EXTRA_IMAGEDEPENDS}"
# Use kernel provided by yocto
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
-PREFERRED_VERSION_linux-yocto ?= "6.1%"
+PREFERRED_VERSION_linux-yocto ?= "6.4%"
# RTL8168E Gigabit Ethernet Controller is attached to the PCIe interface
MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "linux-firmware-rtl8168"
@@ -32,7 +32,7 @@ EXTRA_IMAGEDEPENDS += "edk2-firmware"
PREFERRED_VERSION_edk2-firmware ?= "202305"
#optee
-PREFERRED_VERSION_optee-os ?= "3.20.%"
+PREFERRED_VERSION_optee-os ?= "3.22.%"
#grub-efi
EFI_PROVIDER ?= "grub-efi"
diff --git a/meta-arm/meta-arm-bsp/conf/machine/tc1.conf b/meta-arm/meta-arm-bsp/conf/machine/tc1.conf
index 31bcc2fb06..a0f2967bb9 100644
--- a/meta-arm/meta-arm-bsp/conf/machine/tc1.conf
+++ b/meta-arm/meta-arm-bsp/conf/machine/tc1.conf
@@ -19,7 +19,7 @@ FVP_CONFIG[css.trustedBootROMloader.fname] ?= "bl1-tc.bin"
FVP_CONFIG[board.flashloader0.fname] ?= "fip_gpt-tc.bin"
#FVP_CONFIG[board.hostbridge.userNetworking] ?= "true"
-#FVP_CONFIG[board.hostbridge.userNetPorts] ?= "8022=22"
+#FVP_CONFIG[board.hostbridge.userNetPorts] ?= "2222=22"
#smsc ethernet takes a very long time to come up. disable now to prevent testimage timeout
#FVP_CONFIG[board.smsc_91c111.enabled] ?= "1"
diff --git a/meta-arm/meta-arm-bsp/documentation/fvp-baser-aemv8r64.md b/meta-arm/meta-arm-bsp/documentation/fvp-baser-aemv8r64.md
deleted file mode 100644
index 2635e75d79..0000000000
--- a/meta-arm/meta-arm-bsp/documentation/fvp-baser-aemv8r64.md
+++ /dev/null
@@ -1,264 +0,0 @@
-Armv8-R AArch64 AEM FVP Support in meta-arm-bsp
-===============================================
-
-Overview
---------
-
-Fixed Virtual Platforms (FVP) are complete simulations of an Arm system,
-including processor, memory and peripherals. These are set out in a
-"programmer's view", which gives you a comprehensive model on which to build
-and test your software.
-
-The Armv8-R AEM FVP is a free of charge Armv8-R Fixed Virtual Platform. It
-supports the latest Armv8-R feature set.
-
-This BSP implements a reference stack for the AArch64 support in the R-class
-first announced with the Cortex-R82 processor:
-https://developer.arm.com/ip-products/processors/cortex-r/cortex-r82
-
-Fast Models Fixed Virtual Platforms (FVP) Reference Guide:
-https://developer.arm.com/docs/100966/latest
-
-
-BSP Support
------------
-
-The fvp-baser-aemv8r64 Yocto MACHINE supports the following BSP components,
-where either a standard or Real-Time Linux kernel (PREEMPT\_RT) can be built
-and run:
-
- - FVP_Base_AEMv8R: v11.22.14
- - boot-wrapper-aarch64: provides PSCI support
- - U-Boot: v2022.07 - provides UEFI services
- - Linux kernel: linux-yocto-5.15
- - Linux kernel with PREEMPT\_RT support: linux-yocto-rt-5.15
-
-Note that the Real-Time Linux kernel (PREEMPT\_RT) does not use the real-time
-architectural extensions of the Armv8-R feature set.
-
-High-Level Architecture
------------------------
-
-The diagram below shows the current boot flow:
-
- +---------------------------------------------------------------+
- | Linux kernel |
- +---------------------------------------------------------------+
- /|\ /|\
- | |
- | UEFI services |
- | PSCI services |
- \|/ |
- +----------------+ | S-EL1
- ----| U-Boot |------------------------------|-----------
- +----------------+ | S-EL2
- /|\ |
- | |
- | |
- | |
- +--------------------------------------------------\|/----------+
- | +----------------+ +----------------+ |
- | boot-wrapper-aarch64 | Device tree | | PSCI handler | |
- | +----------------+ +----------------+ |
- +---------------------------------------------------------------+
-
-
-The firmware binary (generated as `linux-system.axf`) includes
-boot-wrapper-aarch64, the flattened device tree and U-Boot. U-Boot is configured
-to automatically detect a virtio block device and boot the UEFI payload at the
-path `/efi/boot/bootaa64.efi`. Using the standard build, the first partition
-contains a Grub image at this path, which boots the Linux kernel at `/Image` on
-the same partition. The second partition of the image contains the Linux root
-file system.
-
-There is no EL3 or non-secure world in the Armv8-R AArch64 architecture, so the
-reset vector starts boot-wrapper-aarch64 at S-EL2. Boot-wrapper-aarch64 is
-compiled with the `--enable-keep-el` flag, which causes it to boot U-Boot at
-S-EL2 too. U-Boot is compiled with the `CONFIG_ARMV8_SWITCH_TO_EL1` flag, which
-causes it to switch to S-EL1 before booting Linux.
-
-The bundled device tree is passed to U-Boot via register x0. U-Boot passes the
-same device tree to Linux via the UEFI system table.
-
-Power state management is provided by PSCI services in boot-wrapper-aarch64.
-Linux accesses the PSCI handler via HVC calls to S-EL2. U-Boot has been patched
-to prevent it from overriding the exception vector at S-EL2. The PSCI handler
-memory region is added to a `/memreserve/` node in the device tree.
-
-Please note that the final firmware architecture for the fvp-baser-aemv8r64 is
-not yet stabilized. The patches in this layer are provided for development and
-evaluation purposes only, and should not be used in production firmware.
-
-Quick start: Howto Build and Run
---------------------------------
-
-### Host environment setup
-The following instructions have been tested on hosts running Ubuntu 18.04 and
-Ubuntu 20.04.
-Install the required packages for the build host:
-https://docs.yoctoproject.org/singleindex.html#required-packages-for-the-build-host
-
-Kas is a setup tool for bitbake based projects. The minimal supported version
-is 3.0, install it like so:
-
- pip3 install --user --upgrade kas
-
-For more details on kas, see https://kas.readthedocs.io/.
-
-To build the images for the fvp-baser-aemv8r64 machine, you also need to accept
-the EULA at
-https://developer.arm.com/downloads/-/arm-ecosystem-fvps/eula
-by setting the following environment variable:
-
- ARM_FVP_EULA_ACCEPT="True"
-
-**Note:** The host machine should have at least 50 GBytes of free disk space
-for the next steps to work correctly.
-
-### Fetch sources
-To fetch and build the ongoing development of the software stack follow the
-instructions on this document.
-
-To fetch and build the version 1 (single core) find instructions at https://community.arm.com/developer/tools-software/oss-platforms/w/docs/633/release-1-single-core
-
-To fetch and build the version 2 (linux smp) find instructions at https://community.arm.com/developer/tools-software/oss-platforms/w/docs/634/release-2---smp
-
-Fetch the meta-arm repository into a build directory:
-
- mkdir -p ~/fvp-baser-aemv8r64-build
- cd ~/fvp-baser-aemv8r64-build
- git clone https://git.yoctoproject.org/git/meta-arm
-
-
-### Build
-Building with the standard Linux kernel:
-
- cd ~/fvp-baser-aemv8r64-build
- export ARM_FVP_EULA_ACCEPT="True"
- kas build meta-arm/kas/fvp-baser-aemv8r64-bsp.yml
-
-Building with the Real-Time Linux kernel (PREEMPT\_RT):
-
- cd ~/fvp-baser-aemv8r64-build
- export ARM_FVP_EULA_ACCEPT="True"
- kas build meta-arm/kas/fvp-baser-aemv8r64-rt-bsp.yml
-
-### Run
-To run an image after the build is done with the standard Linux kernel:
-
- kas shell --keep-config-unchanged \
- meta-arm/kas/fvp-baser-aemv8r64-bsp.yml \
- --command "../layers/meta-arm/scripts/runfvp \
- --console "
-
-To run an image after the build is done with the Real-Time Linux kernel
-(PREEMPT\_RT):
-
- kas shell --keep-config-unchanged \
- meta-arm/kas/fvp-baser-aemv8r64-rt-bsp.yml \
- --command "../layers/meta-arm/scripts/runfvp \
- --console "
-
-**Note:** The terminal console login is `root` without password.
-
-To finish the fvp emulation, you need to close the telnet session:
-
- - Escape to telnet console with ``ctrl+]``.
- - Run ``quit`` to close the session.
-
-### Networking
-The FVP is configured by default to use "user-mode networking", which simulates
-an IP router and DHCP server to avoid additional host dependencies and
-networking configuration. Outbound connections work automatically, e.g. by
-running:
-
- wget www.arm.com
-
-Inbound connections require an explicit port mapping from the host. By default,
-port 8022 on the host is mapped to port 22 on the FVP, so that the following
-command will connect to an ssh server running on the FVP:
-
- ssh root@localhost -p 8022
-
-Note that user-mode networking does not support ICMP, so `ping` will not work.
-For more information about user-mode networking, please see
-https://developer.arm.com/documentation/100964/1117/Introduction-to-Fast-Models/User-mode-networking?lang=en
-
-### File sharing between host and fvp
-It is possible to share a directory between the host machine and the fvp using
-the virtio P9 device component included in the kernel. To do so, create a
-directory to be mounted from the host machine:
-
- mkdir /path/to/host-mount-dir
-
-Then, add the following parameter containing the path to the directory when
-launching the model:
-
- --parameter 'bp.virtiop9device.root_path=/path/to/host-mount-dir'
-
-e.g. for the standard Linux kernel:
-
- kas shell --keep-config-unchanged \
- meta-arm/kas/fvp-baser-aemv8r64-bsp.yml \
- --command "../layers/meta-arm/scripts/runfvp \
- --console -- --parameter \
- 'bp.virtiop9device.root_path=/path/to/host-mount-dir'"
-
-Once you are logged into the fvp, the host directory can be mounted in a
-directory on the model using the following command:
-
- mount -t 9p -o trans=virtio,version=9p2000.L FM /path/to/fvp-mount-dir
-
-Devices supported in the kernel
--------------------------------
-
-- serial
-- virtio 9p
-- virtio disk
-- virtio network
-- virtio rng
-- watchdog
-- rtc
-
-Known Issues and Limitations
-----------------------------
-
-- Only PSCI CPU\_ON and CPU\_OFF functions are supported
-- Linux kernel does not support booting from secure EL2 on Armv8-R AArch64
-- Linux KVM does not support Armv8-R AArch64
-- Device DMA memory cache-coherence issue: the FVP `cache_state_modelled`
- parameter will affect the cache coherence behavior of peripherals’ DMA. When
- users set `cache_state_modelled=1`, they also have to set
- `cci400.force_on_from_start=1` to force the FVP to enable snooping on upstream
- ports.
-
-Change Log
-----------
-- Enabled the ability for U-Boot to apply device tree overlays
-- Fixed bug in U-Boot that caused changes to the `memory` node in the device
- tree to be ignored.
-- Added boot-wrapper-aarch64 support for booting SMP payloads at S-EL2.
-- Enabled testimage support by default.
-- Added virtio\_rng to improve random number generation.
-- Added U-Boot v2022.01 for UEFI support.
-- Updated Linux kernel version from 5.14 to 5.15 for both standard and
- Real-Time (PREEMPT\_RT) builds.
-- Updated boot-wrapper-aarch64 revision and added support for booting U-Boot.
-- Included boot-wrapper-aarch64 PSCI services in `/memreserve/` region.
-- Fixed the counter frequency initialization in boot-wrapper-aarch64.
-- Configured the FVP to use the default RAM size of 4 Gb
-- Fixed PL011 and SP805 register sizes in the device tree.
-- Added virtio\_net User Networking mode by default and removed instructions
- about tap networking setup.
-- Updated Linux kernel version from 5.10 to 5.14 for both standard and
- Real-Time (PREEMPT\_RT) builds.
-- Enabled SMP support via boot-wrapper-aarch64 providing the PSCI CPU\_ON and
- CPU\_OFF functions.
-- Introduced Armv8-R64 compiler flags.
-- Added Linux PREEMPT\_RT support via linux-yocto-rt-5.10.
-- Added support for file sharing with the host machine using Virtio P9.
-- Added support for runfvp.
-- Added performance event support (PMU) in the Linux device tree.
-- Introduced the fvp-baser-aemv8r64 machine and its BSP composed of
- boot-wrapper-aarch64 and linux-yocto-5.10 supporting serial, virtio disk,
- virtio network, watchdog and rtc.
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/boot-wrapper-aarch64-fvp-baser-aemv8r64.inc b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/boot-wrapper-aarch64-fvp-baser-aemv8r64.inc
deleted file mode 100644
index 8ffa0aa2e0..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/boot-wrapper-aarch64-fvp-baser-aemv8r64.inc
+++ /dev/null
@@ -1,36 +0,0 @@
-COMPATIBLE_MACHINE = "fvp-baser-aemv8r64"
-
-FILESEXTRAPATHS:prepend := "${THISDIR}/files/${MACHINE}:"
-SRC_URI:append = " \
- file://0001-aarch64-Rename-labels-and-prepare-for-lower-EL-booti.patch \
- file://0002-aarch64-Prepare-for-EL1-booting.patch \
- file://0003-aarch64-Prepare-for-lower-EL-booting.patch \
- file://0004-gic-v3-Prepare-for-gicv3-with-EL2.patch \
- file://0005-aarch64-Prepare-for-booting-with-EL2.patch \
- file://0006-aarch64-Introduce-EL2-boot-code-for-Armv8-R-AArch64.patch \
- file://0007-Allow-enable-psci-to-choose-between-smc-and-hvc.patch \
- file://0008-aarch64-Disable-CNTPCT_EL0-trap-for-v8-R64.patch \
- file://0009-lds-Mark-the-mem-range.patch \
- file://0010-common-Introduce-the-libfdt.patch \
- file://0011-common-Add-essential-libc-functions.patch \
- file://0012-Makefile-Add-the-libfdt-to-the-Makefile-system.patch \
- file://0013-platform-Add-print_hex-func.patch \
- file://0014-common-Add-mem-usage-to-memreserve.patch \
- file://0015-boot-Add-the-enable-keep-el-compile-option.patch \
- file://0016-Makefile-Change-COUNTER_FREQ-to-100-MHz.patch \
- file://0017-PSCI-Apply-flush-cache-after-setting-branch_data.patch \
- file://0018-PSCI-Add-function-call-entry-point.patch \
- file://0019-lds-Rearrange-and-mark-the-sections.patch \
- file://0020-common-Provide-firmware-info-using-libfdt.patch \
- file://0021-boot-Enable-firmware-node-initialization.patch \
- "
-
-BOOT_WRAPPER_AARCH64_CMDLINE = "\
-earlycon console=ttyAMA0 loglevel=8 rootfstype=ext4 root=/dev/vda1 rw"
-
-EXTRA_OECONF += "--enable-psci=hvc --enable-keep-el"
-
-TUNE_CCARGS = ""
-
-BOOT_WRAPPER_AARCH64_KERNEL = "u-boot.bin"
-do_deploy[depends] += "u-boot:do_deploy"
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/boot-wrapper-aarch64_%.bbappend b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/boot-wrapper-aarch64_%.bbappend
deleted file mode 100644
index c2e7e6e3ff..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/boot-wrapper-aarch64_%.bbappend
+++ /dev/null
@@ -1,4 +0,0 @@
-MACHINE_BOOT_WRAPPER_AARCH64_REQUIRE ?= ""
-MACHINE_BOOT_WRAPPER_AARCH64_REQUIRE:fvp-baser-aemv8r64 ?= "boot-wrapper-aarch64-fvp-baser-aemv8r64.inc"
-
-require ${MACHINE_BOOT_WRAPPER_AARCH64_REQUIRE}
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0001-aarch64-Rename-labels-and-prepare-for-lower-EL-booti.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0001-aarch64-Rename-labels-and-prepare-for-lower-EL-booti.patch
deleted file mode 100644
index 31fd515228..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0001-aarch64-Rename-labels-and-prepare-for-lower-EL-booti.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From 545f6950ae4dc55b4974986aa9629adb16eaf4e1 Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Tue, 25 May 2021 07:25:00 +0100
-Subject: [PATCH] aarch64: Rename labels and prepare for lower EL booting
-
-Prepare for booting from lower EL. Rename *_el3 relavant labels with
-*_el_max and *_no_el3 with *_keep_el. Since the original _no_el3 means
-"We neither do init sequence at this highest EL nor drop to lower EL
-when entering to kernel", we rename it with _keep_el to make it more
-clear for lower EL initialisation.
-
-Upstream-Status: Pending
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
----
- arch/aarch64/boot.S | 28 ++++++++++++++++++++--------
- arch/aarch64/psci.S | 9 +++++----
- arch/aarch64/spin.S | 4 ++--
- 3 files changed, 27 insertions(+), 14 deletions(-)
-
-diff --git a/arch/aarch64/boot.S b/arch/aarch64/boot.S
-index d682ba5..fab694e 100644
---- a/arch/aarch64/boot.S
-+++ b/arch/aarch64/boot.S
-@@ -34,18 +34,30 @@ ASM_FUNC(_start)
-
- /*
- * EL3 initialisation
-+ * Boot sequence
-+ * If CurrentEL == EL3, then goto EL3 initialisation and drop to
-+ * lower EL before entering the kernel.
-+ * Else, no initialisation and keep the current EL before
-+ * entering the kernel.
- */
- mrs x0, CurrentEL
- cmp x0, #CURRENTEL_EL3
-- b.eq 1f
-+ b.eq el3_init
-
-+ /*
-+ * We stay in the current EL for entering the kernel
-+ */
- mov w0, #1
-- ldr x1, =flag_no_el3
-+ ldr x1, =flag_keep_el
- str w0, [x1]
-
-- b start_no_el3
-+ b start_keep_el
-
--1: mov x0, #0x30 // RES1
-+ /*
-+ * EL3 initialisation
-+ */
-+el3_init:
-+ mov x0, #0x30 // RES1
- orr x0, x0, #(1 << 0) // Non-secure EL1
- orr x0, x0, #(1 << 8) // HVC enable
-
-@@ -145,7 +157,7 @@ ASM_FUNC(_start)
-
- bl gic_secure_init
-
-- b start_el3
-+ b start_el_max
-
- err_invalid_id:
- b .
-@@ -172,7 +184,7 @@ ASM_FUNC(jump_kernel)
- bl find_logical_id
- bl setup_stack // Reset stack pointer
-
-- ldr w0, flag_no_el3
-+ ldr w0, flag_keep_el
- cmp w0, #0 // Prepare Z flag
-
- mov x0, x20
-@@ -181,7 +193,7 @@ ASM_FUNC(jump_kernel)
- mov x3, x23
-
- b.eq 1f
-- br x19 // No EL3
-+ br x19 // Keep current EL
-
- 1: mov x4, #SPSR_KERNEL
-
-@@ -199,5 +211,5 @@ ASM_FUNC(jump_kernel)
-
- .data
- .align 3
--flag_no_el3:
-+flag_keep_el:
- .long 0
-diff --git a/arch/aarch64/psci.S b/arch/aarch64/psci.S
-index 8bd224b..7b8919a 100644
---- a/arch/aarch64/psci.S
-+++ b/arch/aarch64/psci.S
-@@ -79,7 +79,7 @@ smc_exit:
- ldp x18, x19, [sp], #16
- eret
-
--ASM_FUNC(start_el3)
-+ASM_FUNC(start_el_max)
- ldr x0, =vector
- bl setup_vector
-
-@@ -89,10 +89,11 @@ ASM_FUNC(start_el3)
- b psci_first_spin
-
- /*
-- * This PSCI implementation requires EL3. Without EL3 we'll only boot the
-- * primary cpu, all others will be trapped in an infinite loop.
-+ * This PSCI implementation requires the highest EL(EL3 or Armv8-R EL2).
-+ * Without the highest EL, we'll only boot the primary cpu, all othersr
-+ * will be trapped in an infinite loop.
- */
--ASM_FUNC(start_no_el3)
-+ASM_FUNC(start_keep_el)
- cpuid x0, x1
- bl find_logical_id
- cbz x0, psci_first_spin
-diff --git a/arch/aarch64/spin.S b/arch/aarch64/spin.S
-index 1ea1c0b..bfb1d47 100644
---- a/arch/aarch64/spin.S
-+++ b/arch/aarch64/spin.S
-@@ -12,8 +12,8 @@
-
- .text
-
--ASM_FUNC(start_el3)
--ASM_FUNC(start_no_el3)
-+ASM_FUNC(start_el_max)
-+ASM_FUNC(start_keep_el)
- cpuid x0, x1
- bl find_logical_id
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0002-aarch64-Prepare-for-EL1-booting.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0002-aarch64-Prepare-for-EL1-booting.patch
deleted file mode 100644
index 4ef4507e79..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0002-aarch64-Prepare-for-EL1-booting.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From bad32d3fc127a421be416b17e4f7d6d514f06abb Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Tue, 25 May 2021 07:25:00 +0100
-Subject: [PATCH] aarch64: Prepare for EL1 booting
-
-When booting from EL1, add a check and skip the init of
-sctlr_el2 in jump_kernel
-
-Upstream-Status: Pending
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
-Reviewed-by: Andre Przywara <andre.przywara@arm.com>
----
- arch/aarch64/boot.S | 6 +++++-
- arch/aarch64/include/asm/cpu.h | 1 +
- 2 files changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/arch/aarch64/boot.S b/arch/aarch64/boot.S
-index fab694e..5105b41 100644
---- a/arch/aarch64/boot.S
-+++ b/arch/aarch64/boot.S
-@@ -177,10 +177,14 @@ ASM_FUNC(jump_kernel)
- ldr x0, =SCTLR_EL1_KERNEL
- msr sctlr_el1, x0
-
-+ mrs x0, CurrentEL
-+ cmp x0, #CURRENTEL_EL2
-+ b.lt 1f
-+
- ldr x0, =SCTLR_EL2_KERNEL
- msr sctlr_el2, x0
-
-- cpuid x0, x1
-+1: cpuid x0, x1
- bl find_logical_id
- bl setup_stack // Reset stack pointer
-
-diff --git a/arch/aarch64/include/asm/cpu.h b/arch/aarch64/include/asm/cpu.h
-index 49d3f86..3767da3 100644
---- a/arch/aarch64/include/asm/cpu.h
-+++ b/arch/aarch64/include/asm/cpu.h
-@@ -11,6 +11,7 @@
-
- #define MPIDR_ID_BITS 0xff00ffffff
-
-+#define CURRENTEL_EL2 (2 << 2)
- #define CURRENTEL_EL3 (3 << 2)
-
- /*
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0003-aarch64-Prepare-for-lower-EL-booting.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0003-aarch64-Prepare-for-lower-EL-booting.patch
deleted file mode 100644
index c621187bfc..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0003-aarch64-Prepare-for-lower-EL-booting.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 252cbd36e51414b60ab68306f9c38e358709494d Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Tue, 25 May 2021 07:25:00 +0100
-Subject: [PATCH] aarch64: Prepare for lower EL booting
-
-Save SPSR_KERNEL into spsr_to_elx during el3_init.
-The jump_kernel will load spsr_to_elx into spsr_el3.
-
-This change will make it easier to control whether drop to lower EL
-before jumping to the kernel.
-
-Upstream-Status: Pending
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
-Reviewed-by: Andre Przywara <andre.przywara@arm.com>
----
- arch/aarch64/boot.S | 15 +++++++++++++--
- 1 file changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/arch/aarch64/boot.S b/arch/aarch64/boot.S
-index 5105b41..243198d 100644
---- a/arch/aarch64/boot.S
-+++ b/arch/aarch64/boot.S
-@@ -151,7 +151,16 @@ el3_init:
- mov x0, #ZCR_EL3_LEN_MAX // SVE: Enable full vector len
- msr ZCR_EL3, x0 // for EL2.
-
--1:
-+ /*
-+ * Save SPSR_KERNEL into spsr_to_elx.
-+ * The jump_kernel will load spsr_to_elx into spsr_el3
-+ */
-+1: mov w0, #SPSR_KERNEL
-+ ldr x1, =spsr_to_elx
-+ str w0, [x1]
-+ b el_max_init
-+
-+el_max_init:
- ldr x0, =COUNTER_FREQ
- msr cntfrq_el0, x0
-
-@@ -199,7 +208,7 @@ ASM_FUNC(jump_kernel)
- b.eq 1f
- br x19 // Keep current EL
-
--1: mov x4, #SPSR_KERNEL
-+1: ldr w4, spsr_to_elx
-
- /*
- * If bit 0 of the kernel address is set, we're entering in AArch32
-@@ -217,3 +226,5 @@ ASM_FUNC(jump_kernel)
- .align 3
- flag_keep_el:
- .long 0
-+spsr_to_elx:
-+ .long 0
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0004-gic-v3-Prepare-for-gicv3-with-EL2.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0004-gic-v3-Prepare-for-gicv3-with-EL2.patch
deleted file mode 100644
index 43885b93d8..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0004-gic-v3-Prepare-for-gicv3-with-EL2.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From bff110a95a5e4c9db2d61e629b4aa4b84530201e Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Tue, 25 May 2021 07:25:00 +0100
-Subject: [PATCH] gic-v3: Prepare for gicv3 with EL2
-
-This is a preparation for allowing boot-wrapper configuring the gicv3
-with EL2.
-
-When confiuring with EL2, since there is no ICC_CTLR_EL2, the
-ICC_CTLR_EL3 cannot be replaced with ICC_CTLR_EL2 simply.
-See [https://developer.arm.com/documentation/ihi0069/latest/].
-
-As the caller, gic_secure_init expects the ICC_CTLR to be written,
-we change the function into gic_init_icc_ctlr(). In the GIC spec,
-the r/w bits in this register ([6:0]) either affect EL3 IRQ routing
-(not applicable since no EL3), non-secure IRQ handling (not applicable
-since only secure state in Armv8-R aarch64), or are aliased to
-ICC_CTLR_EL1 bits.
-So, based on this, the new gic_init_icc_ctlr() would be:
-When currentEL is EL3, init ICC_CTLR_EL3 as before.
-When currentEL is not EL3, init ICC_CTLR_EL1 with ICC_CTLR_EL1_RESET.
-
-Upstream-Status: Pending
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
-Reviewed-by: Andre Przywara <andre.przywara@arm.com>
----
- arch/aarch32/include/asm/gic-v3.h | 7 +++++++
- arch/aarch64/include/asm/gic-v3.h | 23 ++++++++++++++++++++---
- common/gic-v3.c | 2 +-
- 3 files changed, 28 insertions(+), 4 deletions(-)
-
-diff --git a/arch/aarch32/include/asm/gic-v3.h b/arch/aarch32/include/asm/gic-v3.h
-index 65f38de..11e7bc7 100644
---- a/arch/aarch32/include/asm/gic-v3.h
-+++ b/arch/aarch32/include/asm/gic-v3.h
-@@ -9,6 +9,8 @@
- #ifndef __ASM_AARCH32_GICV3_H
- #define __ASM_AARCH32_GICV3_H
-
-+#define ICC_CTLR_RESET (0UL)
-+
- static inline void gic_write_icc_sre(uint32_t val)
- {
- asm volatile ("mcr p15, 6, %0, c12, c12, 5" : : "r" (val));
-@@ -19,4 +21,9 @@ static inline void gic_write_icc_ctlr(uint32_t val)
- asm volatile ("mcr p15, 6, %0, c12, c12, 4" : : "r" (val));
- }
-
-+static inline void gic_init_icc_ctlr()
-+{
-+ gic_write_icc_ctlr(ICC_CTLR_RESET);
-+}
-+
- #endif
-diff --git a/arch/aarch64/include/asm/gic-v3.h b/arch/aarch64/include/asm/gic-v3.h
-index 5b32380..090ab0b 100644
---- a/arch/aarch64/include/asm/gic-v3.h
-+++ b/arch/aarch64/include/asm/gic-v3.h
-@@ -15,14 +15,31 @@
- #define ICC_CTLR_EL3 "S3_6_C12_C12_4"
- #define ICC_PMR_EL1 "S3_0_C4_C6_0"
-
-+#define ICC_CTLR_EL3_RESET (0UL)
-+#define ICC_CTLR_EL1_RESET (0UL)
-+
-+static inline uint32_t current_el(void)
-+{
-+ uint32_t val;
-+
-+ asm volatile ("mrs %0, CurrentEL" : "=r" (val));
-+ return val;
-+}
-+
- static inline void gic_write_icc_sre(uint32_t val)
- {
-- asm volatile ("msr " ICC_SRE_EL3 ", %0" : : "r" (val));
-+ if (current_el() == CURRENTEL_EL3)
-+ asm volatile ("msr " ICC_SRE_EL3 ", %0" : : "r" (val));
-+ else
-+ asm volatile ("msr " ICC_SRE_EL2 ", %0" : : "r" (val));
- }
-
--static inline void gic_write_icc_ctlr(uint32_t val)
-+static inline void gic_init_icc_ctlr()
- {
-- asm volatile ("msr " ICC_CTLR_EL3 ", %0" : : "r" (val));
-+ if (current_el() == CURRENTEL_EL3)
-+ asm volatile ("msr " ICC_CTLR_EL3 ", %0" : : "r" (ICC_CTLR_EL3_RESET));
-+ else
-+ asm volatile ("msr " ICC_CTLR_EL1 ", %0" : : "r" (ICC_CTLR_EL1_RESET));
- }
-
- #endif
-diff --git a/common/gic-v3.c b/common/gic-v3.c
-index 6207007..a0fe564 100644
---- a/common/gic-v3.c
-+++ b/common/gic-v3.c
-@@ -117,6 +117,6 @@ void gic_secure_init(void)
- gic_write_icc_sre(ICC_SRE_Enable | ICC_SRE_DIB | ICC_SRE_DFB | ICC_SRE_SRE);
- isb();
-
-- gic_write_icc_ctlr(0);
-+ gic_init_icc_ctlr();
- isb();
- }
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0005-aarch64-Prepare-for-booting-with-EL2.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0005-aarch64-Prepare-for-booting-with-EL2.patch
deleted file mode 100644
index c6343456a7..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0005-aarch64-Prepare-for-booting-with-EL2.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From ba955efb35ce1d41b562190d7c2fbcbcf8ef97ff Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Tue, 25 May 2021 07:25:00 +0100
-Subject: [PATCH] aarch64: Prepare for booting with EL2
-
-Prepare for allowing boot-wrapper to be entered in EL2.
-Detect current EL and set the corresponding EL registers.
-
-Upstream-Status: Pending
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
-Reviewed-by: Andre Przywara <andre.przywara@arm.com>
----
- arch/aarch64/boot.S | 8 ++++++++
- arch/aarch64/utils.S | 10 +++++++++-
- 2 files changed, 17 insertions(+), 1 deletion(-)
-
-diff --git a/arch/aarch64/boot.S b/arch/aarch64/boot.S
-index 243198d..3593ca5 100644
---- a/arch/aarch64/boot.S
-+++ b/arch/aarch64/boot.S
-@@ -216,10 +216,18 @@ ASM_FUNC(jump_kernel)
- */
- bfi x4, x19, #5, #1
-
-+ mrs x5, CurrentEL
-+ cmp x5, #CURRENTEL_EL2
-+ b.eq 1f
-+
- msr elr_el3, x19
- msr spsr_el3, x4
- eret
-
-+1: msr elr_el2, x19
-+ msr spsr_el2, x4
-+ eret
-+
- .ltorg
-
- .data
-diff --git a/arch/aarch64/utils.S b/arch/aarch64/utils.S
-index 85c7f8a..f02a249 100644
---- a/arch/aarch64/utils.S
-+++ b/arch/aarch64/utils.S
-@@ -34,10 +34,18 @@ ASM_FUNC(find_logical_id)
- ret
-
- /*
-- * Setup EL3 vectors
-+ * Setup EL3/EL2 vectors
- * x0: vector address
- */
- ASM_FUNC(setup_vector)
-+ mrs x1, CurrentEL
-+ cmp x1, #CURRENTEL_EL2
-+ b.eq 1f
-+
- msr VBAR_EL3, x0
- isb
- ret
-+
-+1: msr VBAR_EL2, x0
-+ isb
-+ ret
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0006-aarch64-Introduce-EL2-boot-code-for-Armv8-R-AArch64.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0006-aarch64-Introduce-EL2-boot-code-for-Armv8-R-AArch64.patch
deleted file mode 100644
index 18dc7ed7e4..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0006-aarch64-Introduce-EL2-boot-code-for-Armv8-R-AArch64.patch
+++ /dev/null
@@ -1,182 +0,0 @@
-From 8e44fac113d935affed1550480631f3fe7f30584 Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Tue, 25 May 2021 07:25:00 +0100
-Subject: [PATCH] aarch64: Introduce EL2 boot code for Armv8-R AArch64
-
-The Armv8-R AArch64 profile does not support the EL3 exception level.
-The Armv8-R AArch64 profile allows for an (optional) VMSAv8-64 MMU
-at EL1, which allows to run off-the-shelf Linux. However EL2 only
-supports a PMSA, which is not supported by Linux, so we need to drop
-into EL1 before entering the kernel.
-
-We add a new err_invalid_arch symbol as a dead loop. If we detect the
-current Armv8-R aarch64 only supports with PMSA, meaning we cannot boot
-Linux anymore, then we jump to err_invalid_arch.
-
-During Armv8-R aarch64 init, to make sure nothing unexpected traps into
-EL2, we auto-detect and config FIEN and EnSCXT in HCR_EL2.
-
-The boot sequence is:
-If CurrentEL == EL3, then goto EL3 initialisation and drop to lower EL
- before entering the kernel.
-If CurrentEL == EL2 && id_aa64mmfr0_el1.MSA == 0xf (Armv8-R aarch64),
- if id_aa64mmfr0_el1.MSA_frac == 0x2,
- then goto Armv8-R AArch64 initialisation and drop to EL1 before
- entering the kernel.
- else, which means VMSA unsupported and cannot boot Linux,
- goto err_invalid_arch (dead loop).
-Else, no initialisation and keep the current EL before entering the
- kernel.
-
-Upstream-Status: Pending
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
----
- arch/aarch64/boot.S | 92 +++++++++++++++++++++++++++++++++-
- arch/aarch64/include/asm/cpu.h | 2 +
- 2 files changed, 92 insertions(+), 2 deletions(-)
-
-diff --git a/arch/aarch64/boot.S b/arch/aarch64/boot.S
-index 3593ca5..a219ea7 100644
---- a/arch/aarch64/boot.S
-+++ b/arch/aarch64/boot.S
-@@ -37,16 +37,24 @@ ASM_FUNC(_start)
- * Boot sequence
- * If CurrentEL == EL3, then goto EL3 initialisation and drop to
- * lower EL before entering the kernel.
-+ * If CurrentEL == EL2 && id_aa64mmfr0_el1.MSA == 0xf, then
-+ * If id_aa64mmfr0_el1.MSA_frac == 0x2, then goto
-+ * Armv8-R AArch64 initialisation and drop to EL1 before
-+ * entering the kernel.
-+ * Else, which means VMSA unsupported and cannot boot Linux,
-+ * goto err_invalid_arch (dead loop).
- * Else, no initialisation and keep the current EL before
- * entering the kernel.
- */
- mrs x0, CurrentEL
-- cmp x0, #CURRENTEL_EL3
-- b.eq el3_init
-+ cmp x0, #CURRENTEL_EL2
-+ bgt el3_init
-+ beq el2_init
-
- /*
- * We stay in the current EL for entering the kernel
- */
-+keep_el:
- mov w0, #1
- ldr x1, =flag_keep_el
- str w0, [x1]
-@@ -160,6 +168,85 @@ el3_init:
- str w0, [x1]
- b el_max_init
-
-+ /*
-+ * EL2 Armv8-R AArch64 initialisation
-+ */
-+el2_init:
-+ /* Detect Armv8-R AArch64 */
-+ mrs x1, id_aa64mmfr0_el1
-+ /*
-+ * Check MSA, bits [51:48]:
-+ * 0xf means Armv8-R AArch64.
-+ * If not 0xf, proceed in Armv8-A EL2.
-+ */
-+ ubfx x0, x1, #48, #4 // MSA
-+ cmp x0, 0xf
-+ bne keep_el
-+ /*
-+ * Check MSA_frac, bits [55:52]:
-+ * 0x2 means EL1&0 translation regime also supports VMSAv8-64.
-+ */
-+ ubfx x0, x1, #52, #4 // MSA_frac
-+ cmp x0, 0x2
-+ /*
-+ * If not 0x2, no VMSA, so cannot boot Linux and dead loop.
-+ * Also, since the architecture guarantees that those CPUID
-+ * fields never lose features when the value in a field
-+ * increases, we use blt to cover it.
-+ */
-+ blt err_invalid_arch
-+
-+ mrs x0, midr_el1
-+ msr vpidr_el2, x0
-+
-+ mrs x0, mpidr_el1
-+ msr vmpidr_el2, x0
-+
-+ mov x0, #(1 << 31) // VTCR_MSA: VMSAv8-64 support
-+ msr vtcr_el2, x0
-+
-+ /* Init HCR_EL2 */
-+ mov x0, #(1 << 31) // RES1: Armv8-R aarch64 only
-+
-+ mrs x1, id_aa64pfr0_el1
-+ ubfx x2, x1, #56, 4 // ID_AA64PFR0_EL1.CSV2
-+ cmp x2, 0x2
-+ b.lt 1f
-+ /*
-+ * Disable trap when accessing SCTXNUM_EL0 or SCTXNUM_EL1
-+ * if FEAT_CSV2.
-+ */
-+ orr x0, x0, #(1 << 53) // HCR_EL2.EnSCXT
-+
-+1: ubfx x2, x1, #28, 4 // ID_AA64PFR0_EL1.RAS
-+ cmp x2, 0x2
-+ b.lt 1f
-+ /* Disable trap when accessing ERXPFGCDN_EL1 if FEAT_RASv1p1. */
-+ orr x0, x0, #(1 << 47) // HCR_EL2.FIEN
-+
-+ /* Enable pointer authentication if present */
-+1: mrs x1, id_aa64isar1_el1
-+ /*
-+ * If ID_AA64ISAR1_EL1.{GPI, GPA, API, APA} == {0000, 0000, 0000, 0000}
-+ * then HCR_EL2.APK and HCR_EL2.API are RES 0.
-+ * Else
-+ * set HCR_EL2.APK and HCR_EL2.API.
-+ */
-+ ldr x2, =(((0xff) << 24) | (0xff << 4))
-+ and x1, x1, x2
-+ cbz x1, 1f
-+
-+ orr x0, x0, #(1 << 40) // HCR_EL2.APK
-+ orr x0, x0, #(1 << 41) // HCR_EL2.API
-+
-+1: msr hcr_el2, x0
-+ isb
-+
-+ mov w0, #SPSR_KERNEL_EL1
-+ ldr x1, =spsr_to_elx
-+ str w0, [x1]
-+ // fall through
-+
- el_max_init:
- ldr x0, =COUNTER_FREQ
- msr cntfrq_el0, x0
-@@ -169,6 +256,7 @@ el_max_init:
- b start_el_max
-
- err_invalid_id:
-+err_invalid_arch:
- b .
-
- /*
-diff --git a/arch/aarch64/include/asm/cpu.h b/arch/aarch64/include/asm/cpu.h
-index 3767da3..3c0e00d 100644
---- a/arch/aarch64/include/asm/cpu.h
-+++ b/arch/aarch64/include/asm/cpu.h
-@@ -25,6 +25,7 @@
- #define SPSR_I (1 << 7) /* IRQ masked */
- #define SPSR_F (1 << 6) /* FIQ masked */
- #define SPSR_T (1 << 5) /* Thumb */
-+#define SPSR_EL1H (5 << 0) /* EL1 Handler mode */
- #define SPSR_EL2H (9 << 0) /* EL2 Handler mode */
- #define SPSR_HYP (0x1a << 0) /* M[3:0] = hyp, M[4] = AArch32 */
-
-@@ -50,6 +51,7 @@
- #else
- #define SCTLR_EL1_KERNEL SCTLR_EL1_RES1
- #define SPSR_KERNEL (SPSR_A | SPSR_D | SPSR_I | SPSR_F | SPSR_EL2H)
-+#define SPSR_KERNEL_EL1 (SPSR_A | SPSR_D | SPSR_I | SPSR_F | SPSR_EL1H)
- #endif
-
- #ifndef __ASSEMBLY__
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0007-Allow-enable-psci-to-choose-between-smc-and-hvc.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0007-Allow-enable-psci-to-choose-between-smc-and-hvc.patch
deleted file mode 100644
index 131e271012..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0007-Allow-enable-psci-to-choose-between-smc-and-hvc.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 0b9a966b8a28961b078215ee7169e32a976d5e7d Mon Sep 17 00:00:00 2001
-From: Qi Feng <qi.feng@arm.com>
-Date: Wed, 26 May 2021 17:52:01 +0800
-Subject: [PATCH] Allow --enable-psci to choose between smc and hvc
-
-According to Armv8-R AArch64 manual [1], Armv8-R AArch64 does not
-support smc:
-
-- Pseudocode for AArch64.CheckForSMCUndefOrTrap has this snippet:
-
- if !HaveEL(EL3) || PSTATE.EL == EL0 then
- UNDEFINED;
-
- And Armv8-R AArch64 does not have EL3.
-
-- In the document of HCR_EL2 TSC bit:
- If EL3 is not implemented and HCR_EL2.NV is 0, it is IMPLEMENTATION
- DEFINED whether this bit is:
- - RES0.
- - Implemented with the functionality as described in HCR_EL2.TSC.
-
-So hvc is needed in this situation. And due to the lack of libfdt, the
-psci method cannot be modified at runtime.
-
-To use smc, use --enable-psci or --enable-psci=smc.
-To use hvc, use --enable-psci=hvc.
-
-[1]: https://developer.arm.com/documentation/ddi0600/latest/
-
-Issue-Id: SCM-2654
-Upstream-Status: Pending
-Signed-off-by: Qi Feng <qi.feng@arm.com>
-Change-Id: Ib8afabdad2d98bc37371d165bbb6f1f9b88bfc87
-
-Upstream-Status: Pending
-Signed-off-by: Huifeng Zhang <Huifeng.Zhang@arm.com>
----
- Makefile.am | 10 +++++-----
- configure.ac | 14 +++++++++-----
- 2 files changed, 14 insertions(+), 10 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 5731a19..fc66662 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -50,11 +50,11 @@ endif
- if PSCI
- ARCH_OBJ += psci.o
- COMMON_OBJ += psci.o
--PSCI_NODE := psci { \
-- compatible = \"arm,psci\"; \
-- method = \"smc\"; \
-- cpu_on = <$(PSCI_CPU_ON)>; \
-- cpu_off = <$(PSCI_CPU_OFF)>; \
-+PSCI_NODE := psci { \
-+ compatible = \"arm,psci\"; \
-+ method = \"$(PSCI_METHOD)\"; \
-+ cpu_on = <$(PSCI_CPU_ON)>; \
-+ cpu_off = <$(PSCI_CPU_OFF)>; \
- };
- CPU_NODES := $(shell perl -I $(SCRIPT_DIR) $(SCRIPT_DIR)/addpsci.pl $(KERNEL_DTB))
- else
-diff --git a/configure.ac b/configure.ac
-index 9e3b722..53e51be 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -83,13 +83,17 @@ AS_IF([test "x$X_IMAGE" != "x"],
- # Allow a user to pass --enable-psci
- AC_ARG_ENABLE([psci],
- AS_HELP_STRING([--disable-psci], [disable the psci boot method]),
-- [USE_PSCI=$enableval], [USE_PSCI="yes"])
--AM_CONDITIONAL([PSCI], [test "x$USE_PSCI" = "xyes"])
--AS_IF([test "x$USE_PSCI" = "xyes"], [], [USE_PSCI=no])
--
--AS_IF([test "x$USE_PSCI" != "xyes" -a "x$KERNEL_ES" = "x32"],
-+ [case "${enableval}" in
-+ yes|smc) USE_PSCI=smc ;;
-+ hvc) USE_PSCI=hvc ;;
-+ *) AC_MSG_ERROR([Bad value "${enableval}" for --enable-psci. Use "smc" or "hvc"]) ;;
-+ esac], [USE_PSCI="yes"])
-+AM_CONDITIONAL([PSCI], [test "x$USE_PSCI" = "xyes" -o "x$USE_PSCI" = "xsmc" -o "x$USE_PSCI" = "xhvc"])
-+
-+AS_IF([test "x$USE_PSCI" = "xno" -a "x$KERNEL_ES" = "x32"],
- [AC_MSG_ERROR([With an AArch32 kernel, boot method must be PSCI.])]
- )
-+AC_SUBST([PSCI_METHOD], [$USE_PSCI])
-
- # Allow a user to pass --with-initrd
- AC_ARG_WITH([initrd],
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0008-aarch64-Disable-CNTPCT_EL0-trap-for-v8-R64.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0008-aarch64-Disable-CNTPCT_EL0-trap-for-v8-R64.patch
deleted file mode 100644
index d3ccb2ebe9..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0008-aarch64-Disable-CNTPCT_EL0-trap-for-v8-R64.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 521c121eccb386aca7c75d92528e495546adccec Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Mon, 25 Oct 2021 17:09:13 +0800
-Subject: [PATCH] aarch64: Disable CNTPCT_EL0 trap for v8-R64
-
-To allow EL1 to access CNTPCT_EL0 without traping into EL2, we need to
-set CNTHCTL_EL2.EL1PCTEN to 1.
-
-For v8-R64, the CNTHCTL_EL2 register follows the v8-A architecture.
-However, as described in the v8-A architecture profile, the
-CNTHCTL_EL2's bit assignments are different according to whether the
-FEAT_VHE is implemented.
-
-Since v8-R64 does not support FEAT_VHE, we do not need to detect
-FEAT_VHE. We can simply set CNTHCTL_EL2.EL1PCTEN to 1.
-
-Issue-ID: SCM-3508
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
-Change-Id: I4147e66341c8153312021e6f2ab67d0037246da1
----
- arch/aarch64/boot.S | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
-diff --git a/arch/aarch64/boot.S b/arch/aarch64/boot.S
-index a219ea7..27b1139 100644
---- a/arch/aarch64/boot.S
-+++ b/arch/aarch64/boot.S
-@@ -240,6 +240,18 @@ el2_init:
- orr x0, x0, #(1 << 41) // HCR_EL2.API
-
- 1: msr hcr_el2, x0
-+
-+ /*
-+ * To disable trap when accessing CNTPCT_EL0, we need to set
-+ * CNTHCTL_EL2.EL1PCTEN to 1. However, the CNTHCTL_EL2 bit assignments
-+ * are different according to whether the FEAT_VHE is implemented.
-+ *
-+ * For Armv8-R AArch64, FEAT_VHE is not supported, so we do not need to
-+ * detect FEAT_VHE(ID_AA64MMFR1_EL1.VH) and simply set
-+ * CNTHCTL_EL2.EL1PCTEN to 1.
-+ */
-+ mov x0, #1 // CNTHCTL_EL2.EL1PCTEN
-+ msr cnthctl_el2, x0
- isb
-
- mov w0, #SPSR_KERNEL_EL1
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0009-lds-Mark-the-mem-range.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0009-lds-Mark-the-mem-range.patch
deleted file mode 100644
index c34d01c386..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0009-lds-Mark-the-mem-range.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 780df234d98db81485b1f351f902a68def35c9d4 Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Tue, 2 Nov 2021 15:10:28 +0800
-Subject: [PATCH] lds: Mark the mem range
-
-Add firmware_start and firmware_end, so that we can use them to
-calculate the mem range of boot-wrapper and then set the range to
-/memreserve/ of dtb.
-
-Issue-ID: SCM-3815
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
-Change-Id: Idc5a2894e193c75381049a0f359b4b2a51c567ee
----
- model.lds.S | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/model.lds.S b/model.lds.S
-index d4e7e13..ab98ddf 100644
---- a/model.lds.S
-+++ b/model.lds.S
-@@ -64,6 +64,7 @@ SECTIONS
- #endif
-
- .boot PHYS_OFFSET: {
-+ PROVIDE(firmware_start = .);
- *(.init)
- *(.text*)
- *(.data* .rodata* .bss* COMMON)
-@@ -76,6 +77,7 @@ SECTIONS
- mbox = .;
- QUAD(0x0)
- }
-+ PROVIDE(firmware_end = .);
-
- ASSERT(etext <= (PHYS_OFFSET + TEXT_LIMIT), ".text overflow!")
- }
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0010-common-Introduce-the-libfdt.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0010-common-Introduce-the-libfdt.patch
deleted file mode 100644
index 2d12db593b..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0010-common-Introduce-the-libfdt.patch
+++ /dev/null
@@ -1,6044 +0,0 @@
-From b3762b6c5a56bf594bc5cb63d145e8efd86e106e Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Tue, 28 Dec 2021 17:02:17 +0800
-Subject: [PATCH] common: Introduce the libfdt
-
-We introduce libfdt (v1.6.1) [1] to boot-wrapper, so we can dynamically
-add the firmware node.
-
-According to [2]: The libfdt is GPL/BSD dual-licensed which means it can
-be used either under the terms of GPL, or under the terms of BSD.
-We choose BSD because the boot-wrapper is under BSD.
-
-[1]: https://github.com/dgibson/dtc/tree/v1.6.1/libfdt
-[2]: https://github.com/dgibson/dtc/blob/v1.6.1/README.license
-
-Issue-Id: SCM-3814
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
-Change-Id: Iec2f469053c8ac0ed38838c597b21a42bdf67b38
----
- common/libfdt/README.license | 56 +
- common/libfdt/fdt.c | 335 +++++
- common/libfdt/fdt_addresses.c | 101 ++
- common/libfdt/fdt_check.c | 93 ++
- common/libfdt/fdt_empty_tree.c | 38 +
- common/libfdt/fdt_overlay.c | 882 +++++++++++++
- common/libfdt/fdt_ro.c | 859 +++++++++++++
- common/libfdt/fdt_rw.c | 500 +++++++
- common/libfdt/fdt_strerror.c | 59 +
- common/libfdt/fdt_sw.c | 384 ++++++
- common/libfdt/fdt_wip.c | 94 ++
- common/libfdt/libfdt_internal.h | 192 +++
- include/fdt.h | 66 +
- include/libfdt.h | 2147 +++++++++++++++++++++++++++++++
- include/libfdt_env.h | 95 ++
- 15 files changed, 5901 insertions(+)
- create mode 100644 common/libfdt/README.license
- create mode 100644 common/libfdt/fdt.c
- create mode 100644 common/libfdt/fdt_addresses.c
- create mode 100644 common/libfdt/fdt_check.c
- create mode 100644 common/libfdt/fdt_empty_tree.c
- create mode 100644 common/libfdt/fdt_overlay.c
- create mode 100644 common/libfdt/fdt_ro.c
- create mode 100644 common/libfdt/fdt_rw.c
- create mode 100644 common/libfdt/fdt_strerror.c
- create mode 100644 common/libfdt/fdt_sw.c
- create mode 100644 common/libfdt/fdt_wip.c
- create mode 100644 common/libfdt/libfdt_internal.h
- create mode 100644 include/fdt.h
- create mode 100644 include/libfdt.h
- create mode 100644 include/libfdt_env.h
-
-diff --git a/common/libfdt/README.license b/common/libfdt/README.license
-new file mode 100644
-index 0000000..102b004
---- /dev/null
-+++ b/common/libfdt/README.license
-@@ -0,0 +1,56 @@
-+Licensing and contribution policy of dtc and libfdt
-+===================================================
-+
-+This dtc package contains two pieces of software: dtc itself, and
-+libfdt which comprises the files in the libfdt/ subdirectory. These
-+two pieces of software, although closely related, are quite distinct.
-+dtc does not incorporate or rely on libfdt for its operation, nor vice
-+versa. It is important that these two pieces of software have
-+different license conditions.
-+
-+As SPDX license tags in each source file attest, dtc is licensed
-+under the GNU GPL. The full text of the GPL can be found in the file
-+entitled 'GPL' which should be included in this package. dtc code,
-+therefore, may not be incorporated into works which do not have a GPL
-+compatible license.
-+
-+libfdt, however, is GPL/BSD dual-licensed. That is, it may be used
-+either under the terms of the GPL, or under the terms of the 2-clause
-+BSD license (aka the ISC license). The full terms of that license can
-+be found are in the file entitled 'BSD-2-Clause'. This is, in
-+practice, equivalent to being BSD licensed, since the terms of the BSD
-+license are strictly more permissive than the GPL.
-+
-+I made the decision to license libfdt in this way because I want to
-+encourage widespread and correct usage of flattened device trees,
-+including by proprietary or otherwise GPL-incompatible firmware or
-+tools. Allowing libfdt to be used under the terms of the BSD license
-+makes that it easier for vendors or authors of such software to do so.
-+
-+This does mean that libfdt code could be "stolen" - say, included in a
-+proprietary fimware and extended without contributing those extensions
-+back to the libfdt mainline. While I hope that doesn't happen, I
-+believe the goal of allowing libfdt to be widely used is more
-+important than avoiding that. libfdt is quite small, and hardly
-+rocket science; so the incentive for such impolite behaviour is small,
-+and the inconvenience caused thereby is not dire.
-+
-+Licenses such as the LGPL which would allow code to be used in non-GPL
-+software, but also require contributions to be returned were
-+considered. However, libfdt is designed to be used in firmwares and
-+other environments with unusual technical constraints. It's difficult
-+to anticipate all possible changes which might be needed to meld
-+libfdt into such environments and so difficult to suitably word a
-+license that puts the boundary between what is and isn't permitted in
-+the intended place. Again, I judged encouraging widespread use of
-+libfdt by keeping the license terms simple and familiar to be the more
-+important goal.
-+
-+**IMPORTANT** It's intended that all of libfdt as released remain
-+permissively licensed this way. Therefore only contributions which
-+are released under these terms can be merged into the libfdt mainline.
-+
-+
-+David Gibson <david@gibson.dropbear.id.au>
-+(principal original author of dtc and libfdt)
-+2 November 2007
-diff --git a/common/libfdt/fdt.c b/common/libfdt/fdt.c
-new file mode 100644
-index 0000000..9fe7cf4
---- /dev/null
-+++ b/common/libfdt/fdt.c
-@@ -0,0 +1,335 @@
-+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
-+/*
-+ * libfdt - Flat Device Tree manipulation
-+ * Copyright (C) 2006 David Gibson, IBM Corporation.
-+ */
-+#include "libfdt_env.h"
-+
-+#include <fdt.h>
-+#include <libfdt.h>
-+
-+#include "libfdt_internal.h"
-+
-+/*
-+ * Minimal sanity check for a read-only tree. fdt_ro_probe_() checks
-+ * that the given buffer contains what appears to be a flattened
-+ * device tree with sane information in its header.
-+ */
-+int32_t fdt_ro_probe_(const void *fdt)
-+{
-+ uint32_t totalsize = fdt_totalsize(fdt);
-+
-+ if (can_assume(VALID_DTB))
-+ return totalsize;
-+
-+ /* The device tree must be at an 8-byte aligned address */
-+ if ((uintptr_t)fdt & 7)
-+ return -FDT_ERR_ALIGNMENT;
-+
-+ if (fdt_magic(fdt) == FDT_MAGIC) {
-+ /* Complete tree */
-+ if (!can_assume(LATEST)) {
-+ if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
-+ return -FDT_ERR_BADVERSION;
-+ if (fdt_last_comp_version(fdt) >
-+ FDT_LAST_SUPPORTED_VERSION)
-+ return -FDT_ERR_BADVERSION;
-+ }
-+ } else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
-+ /* Unfinished sequential-write blob */
-+ if (!can_assume(VALID_INPUT) && fdt_size_dt_struct(fdt) == 0)
-+ return -FDT_ERR_BADSTATE;
-+ } else {
-+ return -FDT_ERR_BADMAGIC;
-+ }
-+
-+ if (totalsize < INT32_MAX)
-+ return totalsize;
-+ else
-+ return -FDT_ERR_TRUNCATED;
-+}
-+
-+static int check_off_(uint32_t hdrsize, uint32_t totalsize, uint32_t off)
-+{
-+ return (off >= hdrsize) && (off <= totalsize);
-+}
-+
-+static int check_block_(uint32_t hdrsize, uint32_t totalsize,
-+ uint32_t base, uint32_t size)
-+{
-+ if (!check_off_(hdrsize, totalsize, base))
-+ return 0; /* block start out of bounds */
-+ if ((base + size) < base)
-+ return 0; /* overflow */
-+ if (!check_off_(hdrsize, totalsize, base + size))
-+ return 0; /* block end out of bounds */
-+ return 1;
-+}
-+
-+size_t fdt_header_size_(uint32_t version)
-+{
-+ if (version <= 1)
-+ return FDT_V1_SIZE;
-+ else if (version <= 2)
-+ return FDT_V2_SIZE;
-+ else if (version <= 3)
-+ return FDT_V3_SIZE;
-+ else if (version <= 16)
-+ return FDT_V16_SIZE;
-+ else
-+ return FDT_V17_SIZE;
-+}
-+
-+size_t fdt_header_size(const void *fdt)
-+{
-+ return can_assume(LATEST) ? FDT_V17_SIZE :
-+ fdt_header_size_(fdt_version(fdt));
-+}
-+
-+int fdt_check_header(const void *fdt)
-+{
-+ size_t hdrsize;
-+
-+ /* The device tree must be at an 8-byte aligned address */
-+ if ((uintptr_t)fdt & 7)
-+ return -FDT_ERR_ALIGNMENT;
-+
-+ if (fdt_magic(fdt) != FDT_MAGIC)
-+ return -FDT_ERR_BADMAGIC;
-+ if (!can_assume(LATEST)) {
-+ if ((fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
-+ || (fdt_last_comp_version(fdt) >
-+ FDT_LAST_SUPPORTED_VERSION))
-+ return -FDT_ERR_BADVERSION;
-+ if (fdt_version(fdt) < fdt_last_comp_version(fdt))
-+ return -FDT_ERR_BADVERSION;
-+ }
-+ hdrsize = fdt_header_size(fdt);
-+ if (!can_assume(VALID_DTB)) {
-+
-+ if ((fdt_totalsize(fdt) < hdrsize)
-+ || (fdt_totalsize(fdt) > INT_MAX))
-+ return -FDT_ERR_TRUNCATED;
-+
-+ /* Bounds check memrsv block */
-+ if (!check_off_(hdrsize, fdt_totalsize(fdt),
-+ fdt_off_mem_rsvmap(fdt)))
-+ return -FDT_ERR_TRUNCATED;
-+ }
-+
-+ if (!can_assume(VALID_DTB)) {
-+ /* Bounds check structure block */
-+ if (!can_assume(LATEST) && fdt_version(fdt) < 17) {
-+ if (!check_off_(hdrsize, fdt_totalsize(fdt),
-+ fdt_off_dt_struct(fdt)))
-+ return -FDT_ERR_TRUNCATED;
-+ } else {
-+ if (!check_block_(hdrsize, fdt_totalsize(fdt),
-+ fdt_off_dt_struct(fdt),
-+ fdt_size_dt_struct(fdt)))
-+ return -FDT_ERR_TRUNCATED;
-+ }
-+
-+ /* Bounds check strings block */
-+ if (!check_block_(hdrsize, fdt_totalsize(fdt),
-+ fdt_off_dt_strings(fdt),
-+ fdt_size_dt_strings(fdt)))
-+ return -FDT_ERR_TRUNCATED;
-+ }
-+
-+ return 0;
-+}
-+
-+const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len)
-+{
-+ unsigned int uoffset = offset;
-+ unsigned int absoffset = offset + fdt_off_dt_struct(fdt);
-+
-+ if (offset < 0)
-+ return NULL;
-+
-+ if (!can_assume(VALID_INPUT))
-+ if ((absoffset < uoffset)
-+ || ((absoffset + len) < absoffset)
-+ || (absoffset + len) > fdt_totalsize(fdt))
-+ return NULL;
-+
-+ if (can_assume(LATEST) || fdt_version(fdt) >= 0x11)
-+ if (((uoffset + len) < uoffset)
-+ || ((offset + len) > fdt_size_dt_struct(fdt)))
-+ return NULL;
-+
-+ return fdt_offset_ptr_(fdt, offset);
-+}
-+
-+uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
-+{
-+ const fdt32_t *tagp, *lenp;
-+ uint32_t tag;
-+ int offset = startoffset;
-+ const char *p;
-+
-+ *nextoffset = -FDT_ERR_TRUNCATED;
-+ tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE);
-+ if (!can_assume(VALID_DTB) && !tagp)
-+ return FDT_END; /* premature end */
-+ tag = fdt32_to_cpu(*tagp);
-+ offset += FDT_TAGSIZE;
-+
-+ *nextoffset = -FDT_ERR_BADSTRUCTURE;
-+ switch (tag) {
-+ case FDT_BEGIN_NODE:
-+ /* skip name */
-+ do {
-+ p = fdt_offset_ptr(fdt, offset++, 1);
-+ } while (p && (*p != '\0'));
-+ if (!can_assume(VALID_DTB) && !p)
-+ return FDT_END; /* premature end */
-+ break;
-+
-+ case FDT_PROP:
-+ lenp = fdt_offset_ptr(fdt, offset, sizeof(*lenp));
-+ if (!can_assume(VALID_DTB) && !lenp)
-+ return FDT_END; /* premature end */
-+ /* skip-name offset, length and value */
-+ offset += sizeof(struct fdt_property) - FDT_TAGSIZE
-+ + fdt32_to_cpu(*lenp);
-+ if (!can_assume(LATEST) &&
-+ fdt_version(fdt) < 0x10 && fdt32_to_cpu(*lenp) >= 8 &&
-+ ((offset - fdt32_to_cpu(*lenp)) % 8) != 0)
-+ offset += 4;
-+ break;
-+
-+ case FDT_END:
-+ case FDT_END_NODE:
-+ case FDT_NOP:
-+ break;
-+
-+ default:
-+ return FDT_END;
-+ }
-+
-+ if (!fdt_offset_ptr(fdt, startoffset, offset - startoffset))
-+ return FDT_END; /* premature end */
-+
-+ *nextoffset = FDT_TAGALIGN(offset);
-+ return tag;
-+}
-+
-+int fdt_check_node_offset_(const void *fdt, int offset)
-+{
-+ if (!can_assume(VALID_INPUT)
-+ && ((offset < 0) || (offset % FDT_TAGSIZE)))
-+ return -FDT_ERR_BADOFFSET;
-+
-+ if (fdt_next_tag(fdt, offset, &offset) != FDT_BEGIN_NODE)
-+ return -FDT_ERR_BADOFFSET;
-+
-+ return offset;
-+}
-+
-+int fdt_check_prop_offset_(const void *fdt, int offset)
-+{
-+ if (!can_assume(VALID_INPUT)
-+ && ((offset < 0) || (offset % FDT_TAGSIZE)))
-+ return -FDT_ERR_BADOFFSET;
-+
-+ if (fdt_next_tag(fdt, offset, &offset) != FDT_PROP)
-+ return -FDT_ERR_BADOFFSET;
-+
-+ return offset;
-+}
-+
-+int fdt_next_node(const void *fdt, int offset, int *depth)
-+{
-+ int nextoffset = 0;
-+ uint32_t tag;
-+
-+ if (offset >= 0)
-+ if ((nextoffset = fdt_check_node_offset_(fdt, offset)) < 0)
-+ return nextoffset;
-+
-+ do {
-+ offset = nextoffset;
-+ tag = fdt_next_tag(fdt, offset, &nextoffset);
-+
-+ switch (tag) {
-+ case FDT_PROP:
-+ case FDT_NOP:
-+ break;
-+
-+ case FDT_BEGIN_NODE:
-+ if (depth)
-+ (*depth)++;
-+ break;
-+
-+ case FDT_END_NODE:
-+ if (depth && ((--(*depth)) < 0))
-+ return nextoffset;
-+ break;
-+
-+ case FDT_END:
-+ if ((nextoffset >= 0)
-+ || ((nextoffset == -FDT_ERR_TRUNCATED) && !depth))
-+ return -FDT_ERR_NOTFOUND;
-+ else
-+ return nextoffset;
-+ }
-+ } while (tag != FDT_BEGIN_NODE);
-+
-+ return offset;
-+}
-+
-+int fdt_first_subnode(const void *fdt, int offset)
-+{
-+ int depth = 0;
-+
-+ offset = fdt_next_node(fdt, offset, &depth);
-+ if (offset < 0 || depth != 1)
-+ return -FDT_ERR_NOTFOUND;
-+
-+ return offset;
-+}
-+
-+int fdt_next_subnode(const void *fdt, int offset)
-+{
-+ int depth = 1;
-+
-+ /*
-+ * With respect to the parent, the depth of the next subnode will be
-+ * the same as the last.
-+ */
-+ do {
-+ offset = fdt_next_node(fdt, offset, &depth);
-+ if (offset < 0 || depth < 1)
-+ return -FDT_ERR_NOTFOUND;
-+ } while (depth > 1);
-+
-+ return offset;
-+}
-+
-+const char *fdt_find_string_(const char *strtab, int tabsize, const char *s)
-+{
-+ int len = strlen(s) + 1;
-+ const char *last = strtab + tabsize - len;
-+ const char *p;
-+
-+ for (p = strtab; p <= last; p++)
-+ if (memcmp(p, s, len) == 0)
-+ return p;
-+ return NULL;
-+}
-+
-+int fdt_move(const void *fdt, void *buf, int bufsize)
-+{
-+ if (!can_assume(VALID_INPUT) && bufsize < 0)
-+ return -FDT_ERR_NOSPACE;
-+
-+ FDT_RO_PROBE(fdt);
-+
-+ if (fdt_totalsize(fdt) > (unsigned int)bufsize)
-+ return -FDT_ERR_NOSPACE;
-+
-+ memmove(buf, fdt, fdt_totalsize(fdt));
-+ return 0;
-+}
-diff --git a/common/libfdt/fdt_addresses.c b/common/libfdt/fdt_addresses.c
-new file mode 100644
-index 0000000..9a82cd0
---- /dev/null
-+++ b/common/libfdt/fdt_addresses.c
-@@ -0,0 +1,101 @@
-+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
-+/*
-+ * libfdt - Flat Device Tree manipulation
-+ * Copyright (C) 2014 David Gibson <david@gibson.dropbear.id.au>
-+ * Copyright (C) 2018 embedded brains GmbH
-+ */
-+#include "libfdt_env.h"
-+
-+#include <fdt.h>
-+#include <libfdt.h>
-+
-+#include "libfdt_internal.h"
-+
-+static int fdt_cells(const void *fdt, int nodeoffset, const char *name)
-+{
-+ const fdt32_t *c;
-+ uint32_t val;
-+ int len;
-+
-+ c = fdt_getprop(fdt, nodeoffset, name, &len);
-+ if (!c)
-+ return len;
-+
-+ if (len != sizeof(*c))
-+ return -FDT_ERR_BADNCELLS;
-+
-+ val = fdt32_to_cpu(*c);
-+ if (val > FDT_MAX_NCELLS)
-+ return -FDT_ERR_BADNCELLS;
-+
-+ return (int)val;
-+}
-+
-+int fdt_address_cells(const void *fdt, int nodeoffset)
-+{
-+ int val;
-+
-+ val = fdt_cells(fdt, nodeoffset, "#address-cells");
-+ if (val == 0)
-+ return -FDT_ERR_BADNCELLS;
-+ if (val == -FDT_ERR_NOTFOUND)
-+ return 2;
-+ return val;
-+}
-+
-+int fdt_size_cells(const void *fdt, int nodeoffset)
-+{
-+ int val;
-+
-+ val = fdt_cells(fdt, nodeoffset, "#size-cells");
-+ if (val == -FDT_ERR_NOTFOUND)
-+ return 1;
-+ return val;
-+}
-+
-+/* This function assumes that [address|size]_cells is 1 or 2 */
-+int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
-+ const char *name, uint64_t addr, uint64_t size)
-+{
-+ int addr_cells, size_cells, ret;
-+ uint8_t data[sizeof(fdt64_t) * 2], *prop;
-+
-+ ret = fdt_address_cells(fdt, parent);
-+ if (ret < 0)
-+ return ret;
-+ addr_cells = ret;
-+
-+ ret = fdt_size_cells(fdt, parent);
-+ if (ret < 0)
-+ return ret;
-+ size_cells = ret;
-+
-+ /* check validity of address */
-+ prop = data;
-+ if (addr_cells == 1) {
-+ if ((addr > UINT32_MAX) || ((UINT32_MAX + 1 - addr) < size))
-+ return -FDT_ERR_BADVALUE;
-+
-+ fdt32_st(prop, (uint32_t)addr);
-+ } else if (addr_cells == 2) {
-+ fdt64_st(prop, addr);
-+ } else {
-+ return -FDT_ERR_BADNCELLS;
-+ }
-+
-+ /* check validity of size */
-+ prop += addr_cells * sizeof(fdt32_t);
-+ if (size_cells == 1) {
-+ if (size > UINT32_MAX)
-+ return -FDT_ERR_BADVALUE;
-+
-+ fdt32_st(prop, (uint32_t)size);
-+ } else if (size_cells == 2) {
-+ fdt64_st(prop, size);
-+ } else {
-+ return -FDT_ERR_BADNCELLS;
-+ }
-+
-+ return fdt_appendprop(fdt, nodeoffset, name, data,
-+ (addr_cells + size_cells) * sizeof(fdt32_t));
-+}
-diff --git a/common/libfdt/fdt_check.c b/common/libfdt/fdt_check.c
-new file mode 100644
-index 0000000..fa410a8
---- /dev/null
-+++ b/common/libfdt/fdt_check.c
-@@ -0,0 +1,93 @@
-+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
-+/*
-+ * libfdt - Flat Device Tree manipulation
-+ * Copyright (C) 2006 David Gibson, IBM Corporation.
-+ */
-+#include "libfdt_env.h"
-+
-+#include <fdt.h>
-+#include <libfdt.h>
-+
-+#include "libfdt_internal.h"
-+
-+int fdt_check_full(const void *fdt, size_t bufsize)
-+{
-+ int err;
-+ int num_memrsv;
-+ int offset, nextoffset = 0;
-+ uint32_t tag;
-+ unsigned int depth = 0;
-+ const void *prop;
-+ const char *propname;
-+ bool expect_end = false;
-+
-+ if (bufsize < FDT_V1_SIZE)
-+ return -FDT_ERR_TRUNCATED;
-+ if (bufsize < fdt_header_size(fdt))
-+ return -FDT_ERR_TRUNCATED;
-+ err = fdt_check_header(fdt);
-+ if (err != 0)
-+ return err;
-+ if (bufsize < fdt_totalsize(fdt))
-+ return -FDT_ERR_TRUNCATED;
-+
-+ num_memrsv = fdt_num_mem_rsv(fdt);
-+ if (num_memrsv < 0)
-+ return num_memrsv;
-+
-+ while (1) {
-+ offset = nextoffset;
-+ tag = fdt_next_tag(fdt, offset, &nextoffset);
-+
-+ if (nextoffset < 0)
-+ return nextoffset;
-+
-+ /* If we see two root nodes, something is wrong */
-+ if (expect_end && tag != FDT_END)
-+ return -FDT_ERR_BADSTRUCTURE;
-+
-+ switch (tag) {
-+ case FDT_NOP:
-+ break;
-+
-+ case FDT_END:
-+ if (depth != 0)
-+ return -FDT_ERR_BADSTRUCTURE;
-+ return 0;
-+
-+ case FDT_BEGIN_NODE:
-+ depth++;
-+ if (depth > INT_MAX)
-+ return -FDT_ERR_BADSTRUCTURE;
-+
-+ /* The root node must have an empty name */
-+ if (depth == 1) {
-+ const char *name;
-+ int len;
-+
-+ name = fdt_get_name(fdt, offset, &len);
-+ if (*name || len)
-+ return -FDT_ERR_BADSTRUCTURE;
-+ }
-+ break;
-+
-+ case FDT_END_NODE:
-+ if (depth == 0)
-+ return -FDT_ERR_BADSTRUCTURE;
-+ depth--;
-+ if (depth == 0)
-+ expect_end = true;
-+ break;
-+
-+ case FDT_PROP:
-+ prop = fdt_getprop_by_offset(fdt, offset, &propname,
-+ &err);
-+ if (!prop)
-+ return err;
-+ break;
-+
-+ default:
-+ return -FDT_ERR_INTERNAL;
-+ }
-+ }
-+}
-diff --git a/common/libfdt/fdt_empty_tree.c b/common/libfdt/fdt_empty_tree.c
-new file mode 100644
-index 0000000..49d54d4
---- /dev/null
-+++ b/common/libfdt/fdt_empty_tree.c
-@@ -0,0 +1,38 @@
-+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
-+/*
-+ * libfdt - Flat Device Tree manipulation
-+ * Copyright (C) 2012 David Gibson, IBM Corporation.
-+ */
-+#include "libfdt_env.h"
-+
-+#include <fdt.h>
-+#include <libfdt.h>
-+
-+#include "libfdt_internal.h"
-+
-+int fdt_create_empty_tree(void *buf, int bufsize)
-+{
-+ int err;
-+
-+ err = fdt_create(buf, bufsize);
-+ if (err)
-+ return err;
-+
-+ err = fdt_finish_reservemap(buf);
-+ if (err)
-+ return err;
-+
-+ err = fdt_begin_node(buf, "");
-+ if (err)
-+ return err;
-+
-+ err = fdt_end_node(buf);
-+ if (err)
-+ return err;
-+
-+ err = fdt_finish(buf);
-+ if (err)
-+ return err;
-+
-+ return fdt_open_into(buf, buf, bufsize);
-+}
-diff --git a/common/libfdt/fdt_overlay.c b/common/libfdt/fdt_overlay.c
-new file mode 100644
-index 0000000..d217e79
---- /dev/null
-+++ b/common/libfdt/fdt_overlay.c
-@@ -0,0 +1,882 @@
-+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
-+/*
-+ * libfdt - Flat Device Tree manipulation
-+ * Copyright (C) 2016 Free Electrons
-+ * Copyright (C) 2016 NextThing Co.
-+ */
-+#include "libfdt_env.h"
-+
-+#include <fdt.h>
-+#include <libfdt.h>
-+
-+#include "libfdt_internal.h"
-+
-+/**
-+ * overlay_get_target_phandle - retrieves the target phandle of a fragment
-+ * @fdto: pointer to the device tree overlay blob
-+ * @fragment: node offset of the fragment in the overlay
-+ *
-+ * overlay_get_target_phandle() retrieves the target phandle of an
-+ * overlay fragment when that fragment uses a phandle (target
-+ * property) instead of a path (target-path property).
-+ *
-+ * returns:
-+ * the phandle pointed by the target property
-+ * 0, if the phandle was not found
-+ * -1, if the phandle was malformed
-+ */
-+static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
-+{
-+ const fdt32_t *val;
-+ int len;
-+
-+ val = fdt_getprop(fdto, fragment, "target", &len);
-+ if (!val)
-+ return 0;
-+
-+ if ((len != sizeof(*val)) || (fdt32_to_cpu(*val) == (uint32_t)-1))
-+ return (uint32_t)-1;
-+
-+ return fdt32_to_cpu(*val);
-+}
-+
-+/**
-+ * overlay_get_target - retrieves the offset of a fragment's target
-+ * @fdt: Base device tree blob
-+ * @fdto: Device tree overlay blob
-+ * @fragment: node offset of the fragment in the overlay
-+ * @pathp: pointer which receives the path of the target (or NULL)
-+ *
-+ * overlay_get_target() retrieves the target offset in the base
-+ * device tree of a fragment, no matter how the actual targeting is
-+ * done (through a phandle or a path)
-+ *
-+ * returns:
-+ * the targeted node offset in the base device tree
-+ * Negative error code on error
-+ */
-+static int overlay_get_target(const void *fdt, const void *fdto,
-+ int fragment, char const **pathp)
-+{
-+ uint32_t phandle;
-+ const char *path = NULL;
-+ int path_len = 0, ret;
-+
-+ /* Try first to do a phandle based lookup */
-+ phandle = overlay_get_target_phandle(fdto, fragment);
-+ if (phandle == (uint32_t)-1)
-+ return -FDT_ERR_BADPHANDLE;
-+
-+ /* no phandle, try path */
-+ if (!phandle) {
-+ /* And then a path based lookup */
-+ path = fdt_getprop(fdto, fragment, "target-path", &path_len);
-+ if (path)
-+ ret = fdt_path_offset(fdt, path);
-+ else
-+ ret = path_len;
-+ } else
-+ ret = fdt_node_offset_by_phandle(fdt, phandle);
-+
-+ /*
-+ * If we haven't found either a target or a
-+ * target-path property in a node that contains a
-+ * __overlay__ subnode (we wouldn't be called
-+ * otherwise), consider it a improperly written
-+ * overlay
-+ */
-+ if (ret < 0 && path_len == -FDT_ERR_NOTFOUND)
-+ ret = -FDT_ERR_BADOVERLAY;
-+
-+ /* return on error */
-+ if (ret < 0)
-+ return ret;
-+
-+ /* return pointer to path (if available) */
-+ if (pathp)
-+ *pathp = path ? path : NULL;
-+
-+ return ret;
-+}
-+
-+/**
-+ * overlay_phandle_add_offset - Increases a phandle by an offset
-+ * @fdt: Base device tree blob
-+ * @node: Device tree overlay blob
-+ * @name: Name of the property to modify (phandle or linux,phandle)
-+ * @delta: offset to apply
-+ *
-+ * overlay_phandle_add_offset() increments a node phandle by a given
-+ * offset.
-+ *
-+ * returns:
-+ * 0 on success.
-+ * Negative error code on error
-+ */
-+static int overlay_phandle_add_offset(void *fdt, int node,
-+ const char *name, uint32_t delta)
-+{
-+ const fdt32_t *val;
-+ uint32_t adj_val;
-+ int len;
-+
-+ val = fdt_getprop(fdt, node, name, &len);
-+ if (!val)
-+ return len;
-+
-+ if (len != sizeof(*val))
-+ return -FDT_ERR_BADPHANDLE;
-+
-+ adj_val = fdt32_to_cpu(*val);
-+ if ((adj_val + delta) < adj_val)
-+ return -FDT_ERR_NOPHANDLES;
-+
-+ adj_val += delta;
-+ if (adj_val == (uint32_t)-1)
-+ return -FDT_ERR_NOPHANDLES;
-+
-+ return fdt_setprop_inplace_u32(fdt, node, name, adj_val);
-+}
-+
-+/**
-+ * overlay_adjust_node_phandles - Offsets the phandles of a node
-+ * @fdto: Device tree overlay blob
-+ * @node: Offset of the node we want to adjust
-+ * @delta: Offset to shift the phandles of
-+ *
-+ * overlay_adjust_node_phandles() adds a constant to all the phandles
-+ * of a given node. This is mainly use as part of the overlay
-+ * application process, when we want to update all the overlay
-+ * phandles to not conflict with the overlays of the base device tree.
-+ *
-+ * returns:
-+ * 0 on success
-+ * Negative error code on failure
-+ */
-+static int overlay_adjust_node_phandles(void *fdto, int node,
-+ uint32_t delta)
-+{
-+ int child;
-+ int ret;
-+
-+ ret = overlay_phandle_add_offset(fdto, node, "phandle", delta);
-+ if (ret && ret != -FDT_ERR_NOTFOUND)
-+ return ret;
-+
-+ ret = overlay_phandle_add_offset(fdto, node, "linux,phandle", delta);
-+ if (ret && ret != -FDT_ERR_NOTFOUND)
-+ return ret;
-+
-+ fdt_for_each_subnode(child, fdto, node) {
-+ ret = overlay_adjust_node_phandles(fdto, child, delta);
-+ if (ret)
-+ return ret;
-+ }
-+
-+ return 0;
-+}
-+
-+/**
-+ * overlay_adjust_local_phandles - Adjust the phandles of a whole overlay
-+ * @fdto: Device tree overlay blob
-+ * @delta: Offset to shift the phandles of
-+ *
-+ * overlay_adjust_local_phandles() adds a constant to all the
-+ * phandles of an overlay. This is mainly use as part of the overlay
-+ * application process, when we want to update all the overlay
-+ * phandles to not conflict with the overlays of the base device tree.
-+ *
-+ * returns:
-+ * 0 on success
-+ * Negative error code on failure
-+ */
-+static int overlay_adjust_local_phandles(void *fdto, uint32_t delta)
-+{
-+ /*
-+ * Start adjusting the phandles from the overlay root
-+ */
-+ return overlay_adjust_node_phandles(fdto, 0, delta);
-+}
-+
-+/**
-+ * overlay_update_local_node_references - Adjust the overlay references
-+ * @fdto: Device tree overlay blob
-+ * @tree_node: Node offset of the node to operate on
-+ * @fixup_node: Node offset of the matching local fixups node
-+ * @delta: Offset to shift the phandles of
-+ *
-+ * overlay_update_local_nodes_references() update the phandles
-+ * pointing to a node within the device tree overlay by adding a
-+ * constant delta.
-+ *
-+ * This is mainly used as part of a device tree application process,
-+ * where you want the device tree overlays phandles to not conflict
-+ * with the ones from the base device tree before merging them.
-+ *
-+ * returns:
-+ * 0 on success
-+ * Negative error code on failure
-+ */
-+static int overlay_update_local_node_references(void *fdto,
-+ int tree_node,
-+ int fixup_node,
-+ uint32_t delta)
-+{
-+ int fixup_prop;
-+ int fixup_child;
-+ int ret;
-+
-+ fdt_for_each_property_offset(fixup_prop, fdto, fixup_node) {
-+ const fdt32_t *fixup_val;
-+ const char *tree_val;
-+ const char *name;
-+ int fixup_len;
-+ int tree_len;
-+ int i;
-+
-+ fixup_val = fdt_getprop_by_offset(fdto, fixup_prop,
-+ &name, &fixup_len);
-+ if (!fixup_val)
-+ return fixup_len;
-+
-+ if (fixup_len % sizeof(uint32_t))
-+ return -FDT_ERR_BADOVERLAY;
-+ fixup_len /= sizeof(uint32_t);
-+
-+ tree_val = fdt_getprop(fdto, tree_node, name, &tree_len);
-+ if (!tree_val) {
-+ if (tree_len == -FDT_ERR_NOTFOUND)
-+ return -FDT_ERR_BADOVERLAY;
-+
-+ return tree_len;
-+ }
-+
-+ for (i = 0; i < fixup_len; i++) {
-+ fdt32_t adj_val;
-+ uint32_t poffset;
-+
-+ poffset = fdt32_to_cpu(fixup_val[i]);
-+
-+ /*
-+ * phandles to fixup can be unaligned.
-+ *
-+ * Use a memcpy for the architectures that do
-+ * not support unaligned accesses.
-+ */
-+ memcpy(&adj_val, tree_val + poffset, sizeof(adj_val));
-+
-+ adj_val = cpu_to_fdt32(fdt32_to_cpu(adj_val) + delta);
-+
-+ ret = fdt_setprop_inplace_namelen_partial(fdto,
-+ tree_node,
-+ name,
-+ strlen(name),
-+ poffset,
-+ &adj_val,
-+ sizeof(adj_val));
-+ if (ret == -FDT_ERR_NOSPACE)
-+ return -FDT_ERR_BADOVERLAY;
-+
-+ if (ret)
-+ return ret;
-+ }
-+ }
-+
-+ fdt_for_each_subnode(fixup_child, fdto, fixup_node) {
-+ const char *fixup_child_name = fdt_get_name(fdto, fixup_child,
-+ NULL);
-+ int tree_child;
-+
-+ tree_child = fdt_subnode_offset(fdto, tree_node,
-+ fixup_child_name);
-+ if (tree_child == -FDT_ERR_NOTFOUND)
-+ return -FDT_ERR_BADOVERLAY;
-+ if (tree_child < 0)
-+ return tree_child;
-+
-+ ret = overlay_update_local_node_references(fdto,
-+ tree_child,
-+ fixup_child,
-+ delta);
-+ if (ret)
-+ return ret;
-+ }
-+
-+ return 0;
-+}
-+
-+/**
-+ * overlay_update_local_references - Adjust the overlay references
-+ * @fdto: Device tree overlay blob
-+ * @delta: Offset to shift the phandles of
-+ *
-+ * overlay_update_local_references() update all the phandles pointing
-+ * to a node within the device tree overlay by adding a constant
-+ * delta to not conflict with the base overlay.
-+ *
-+ * This is mainly used as part of a device tree application process,
-+ * where you want the device tree overlays phandles to not conflict
-+ * with the ones from the base device tree before merging them.
-+ *
-+ * returns:
-+ * 0 on success
-+ * Negative error code on failure
-+ */
-+static int overlay_update_local_references(void *fdto, uint32_t delta)
-+{
-+ int fixups;
-+
-+ fixups = fdt_path_offset(fdto, "/__local_fixups__");
-+ if (fixups < 0) {
-+ /* There's no local phandles to adjust, bail out */
-+ if (fixups == -FDT_ERR_NOTFOUND)
-+ return 0;
-+
-+ return fixups;
-+ }
-+
-+ /*
-+ * Update our local references from the root of the tree
-+ */
-+ return overlay_update_local_node_references(fdto, 0, fixups,
-+ delta);
-+}
-+
-+/**
-+ * overlay_fixup_one_phandle - Set an overlay phandle to the base one
-+ * @fdt: Base Device Tree blob
-+ * @fdto: Device tree overlay blob
-+ * @symbols_off: Node offset of the symbols node in the base device tree
-+ * @path: Path to a node holding a phandle in the overlay
-+ * @path_len: number of path characters to consider
-+ * @name: Name of the property holding the phandle reference in the overlay
-+ * @name_len: number of name characters to consider
-+ * @poffset: Offset within the overlay property where the phandle is stored
-+ * @label: Label of the node referenced by the phandle
-+ *
-+ * overlay_fixup_one_phandle() resolves an overlay phandle pointing to
-+ * a node in the base device tree.
-+ *
-+ * This is part of the device tree overlay application process, when
-+ * you want all the phandles in the overlay to point to the actual
-+ * base dt nodes.
-+ *
-+ * returns:
-+ * 0 on success
-+ * Negative error code on failure
-+ */
-+static int overlay_fixup_one_phandle(void *fdt, void *fdto,
-+ int symbols_off,
-+ const char *path, uint32_t path_len,
-+ const char *name, uint32_t name_len,
-+ int poffset, const char *label)
-+{
-+ const char *symbol_path;
-+ uint32_t phandle;
-+ fdt32_t phandle_prop;
-+ int symbol_off, fixup_off;
-+ int prop_len;
-+
-+ if (symbols_off < 0)
-+ return symbols_off;
-+
-+ symbol_path = fdt_getprop(fdt, symbols_off, label,
-+ &prop_len);
-+ if (!symbol_path)
-+ return prop_len;
-+
-+ symbol_off = fdt_path_offset(fdt, symbol_path);
-+ if (symbol_off < 0)
-+ return symbol_off;
-+
-+ phandle = fdt_get_phandle(fdt, symbol_off);
-+ if (!phandle)
-+ return -FDT_ERR_NOTFOUND;
-+
-+ fixup_off = fdt_path_offset_namelen(fdto, path, path_len);
-+ if (fixup_off == -FDT_ERR_NOTFOUND)
-+ return -FDT_ERR_BADOVERLAY;
-+ if (fixup_off < 0)
-+ return fixup_off;
-+
-+ phandle_prop = cpu_to_fdt32(phandle);
-+ return fdt_setprop_inplace_namelen_partial(fdto, fixup_off,
-+ name, name_len, poffset,
-+ &phandle_prop,
-+ sizeof(phandle_prop));
-+};
-+
-+/**
-+ * overlay_fixup_phandle - Set an overlay phandle to the base one
-+ * @fdt: Base Device Tree blob
-+ * @fdto: Device tree overlay blob
-+ * @symbols_off: Node offset of the symbols node in the base device tree
-+ * @property: Property offset in the overlay holding the list of fixups
-+ *
-+ * overlay_fixup_phandle() resolves all the overlay phandles pointed
-+ * to in a __fixups__ property, and updates them to match the phandles
-+ * in use in the base device tree.
-+ *
-+ * This is part of the device tree overlay application process, when
-+ * you want all the phandles in the overlay to point to the actual
-+ * base dt nodes.
-+ *
-+ * returns:
-+ * 0 on success
-+ * Negative error code on failure
-+ */
-+static int overlay_fixup_phandle(void *fdt, void *fdto, int symbols_off,
-+ int property)
-+{
-+ const char *value;
-+ const char *label;
-+ int len;
-+
-+ value = fdt_getprop_by_offset(fdto, property,
-+ &label, &len);
-+ if (!value) {
-+ if (len == -FDT_ERR_NOTFOUND)
-+ return -FDT_ERR_INTERNAL;
-+
-+ return len;
-+ }
-+
-+ do {
-+ const char *path, *name, *fixup_end;
-+ const char *fixup_str = value;
-+ uint32_t path_len, name_len;
-+ uint32_t fixup_len;
-+ char *sep, *endptr;
-+ int poffset, ret;
-+
-+ fixup_end = memchr(value, '\0', len);
-+ if (!fixup_end)
-+ return -FDT_ERR_BADOVERLAY;
-+ fixup_len = fixup_end - fixup_str;
-+
-+ len -= fixup_len + 1;
-+ value += fixup_len + 1;
-+
-+ path = fixup_str;
-+ sep = memchr(fixup_str, ':', fixup_len);
-+ if (!sep || *sep != ':')
-+ return -FDT_ERR_BADOVERLAY;
-+
-+ path_len = sep - path;
-+ if (path_len == (fixup_len - 1))
-+ return -FDT_ERR_BADOVERLAY;
-+
-+ fixup_len -= path_len + 1;
-+ name = sep + 1;
-+ sep = memchr(name, ':', fixup_len);
-+ if (!sep || *sep != ':')
-+ return -FDT_ERR_BADOVERLAY;
-+
-+ name_len = sep - name;
-+ if (!name_len)
-+ return -FDT_ERR_BADOVERLAY;
-+
-+ poffset = strtoul(sep + 1, &endptr, 10);
-+ if ((*endptr != '\0') || (endptr <= (sep + 1)))
-+ return -FDT_ERR_BADOVERLAY;
-+
-+ ret = overlay_fixup_one_phandle(fdt, fdto, symbols_off,
-+ path, path_len, name, name_len,
-+ poffset, label);
-+ if (ret)
-+ return ret;
-+ } while (len > 0);
-+
-+ return 0;
-+}
-+
-+/**
-+ * overlay_fixup_phandles - Resolve the overlay phandles to the base
-+ * device tree
-+ * @fdt: Base Device Tree blob
-+ * @fdto: Device tree overlay blob
-+ *
-+ * overlay_fixup_phandles() resolves all the overlay phandles pointing
-+ * to nodes in the base device tree.
-+ *
-+ * This is one of the steps of the device tree overlay application
-+ * process, when you want all the phandles in the overlay to point to
-+ * the actual base dt nodes.
-+ *
-+ * returns:
-+ * 0 on success
-+ * Negative error code on failure
-+ */
-+static int overlay_fixup_phandles(void *fdt, void *fdto)
-+{
-+ int fixups_off, symbols_off;
-+ int property;
-+
-+ /* We can have overlays without any fixups */
-+ fixups_off = fdt_path_offset(fdto, "/__fixups__");
-+ if (fixups_off == -FDT_ERR_NOTFOUND)
-+ return 0; /* nothing to do */
-+ if (fixups_off < 0)
-+ return fixups_off;
-+
-+ /* And base DTs without symbols */
-+ symbols_off = fdt_path_offset(fdt, "/__symbols__");
-+ if ((symbols_off < 0 && (symbols_off != -FDT_ERR_NOTFOUND)))
-+ return symbols_off;
-+
-+ fdt_for_each_property_offset(property, fdto, fixups_off) {
-+ int ret;
-+
-+ ret = overlay_fixup_phandle(fdt, fdto, symbols_off, property);
-+ if (ret)
-+ return ret;
-+ }
-+
-+ return 0;
-+}
-+
-+/**
-+ * overlay_apply_node - Merges a node into the base device tree
-+ * @fdt: Base Device Tree blob
-+ * @target: Node offset in the base device tree to apply the fragment to
-+ * @fdto: Device tree overlay blob
-+ * @node: Node offset in the overlay holding the changes to merge
-+ *
-+ * overlay_apply_node() merges a node into a target base device tree
-+ * node pointed.
-+ *
-+ * This is part of the final step in the device tree overlay
-+ * application process, when all the phandles have been adjusted and
-+ * resolved and you just have to merge overlay into the base device
-+ * tree.
-+ *
-+ * returns:
-+ * 0 on success
-+ * Negative error code on failure
-+ */
-+static int overlay_apply_node(void *fdt, int target,
-+ void *fdto, int node)
-+{
-+ int property;
-+ int subnode;
-+
-+ fdt_for_each_property_offset(property, fdto, node) {
-+ const char *name;
-+ const void *prop;
-+ int prop_len;
-+ int ret;
-+
-+ prop = fdt_getprop_by_offset(fdto, property, &name,
-+ &prop_len);
-+ if (prop_len == -FDT_ERR_NOTFOUND)
-+ return -FDT_ERR_INTERNAL;
-+ if (prop_len < 0)
-+ return prop_len;
-+
-+ ret = fdt_setprop(fdt, target, name, prop, prop_len);
-+ if (ret)
-+ return ret;
-+ }
-+
-+ fdt_for_each_subnode(subnode, fdto, node) {
-+ const char *name = fdt_get_name(fdto, subnode, NULL);
-+ int nnode;
-+ int ret;
-+
-+ nnode = fdt_add_subnode(fdt, target, name);
-+ if (nnode == -FDT_ERR_EXISTS) {
-+ nnode = fdt_subnode_offset(fdt, target, name);
-+ if (nnode == -FDT_ERR_NOTFOUND)
-+ return -FDT_ERR_INTERNAL;
-+ }
-+
-+ if (nnode < 0)
-+ return nnode;
-+
-+ ret = overlay_apply_node(fdt, nnode, fdto, subnode);
-+ if (ret)
-+ return ret;
-+ }
-+
-+ return 0;
-+}
-+
-+/**
-+ * overlay_merge - Merge an overlay into its base device tree
-+ * @fdt: Base Device Tree blob
-+ * @fdto: Device tree overlay blob
-+ *
-+ * overlay_merge() merges an overlay into its base device tree.
-+ *
-+ * This is the next to last step in the device tree overlay application
-+ * process, when all the phandles have been adjusted and resolved and
-+ * you just have to merge overlay into the base device tree.
-+ *
-+ * returns:
-+ * 0 on success
-+ * Negative error code on failure
-+ */
-+static int overlay_merge(void *fdt, void *fdto)
-+{
-+ int fragment;
-+
-+ fdt_for_each_subnode(fragment, fdto, 0) {
-+ int overlay;
-+ int target;
-+ int ret;
-+
-+ /*
-+ * Each fragments will have an __overlay__ node. If
-+ * they don't, it's not supposed to be merged
-+ */
-+ overlay = fdt_subnode_offset(fdto, fragment, "__overlay__");
-+ if (overlay == -FDT_ERR_NOTFOUND)
-+ continue;
-+
-+ if (overlay < 0)
-+ return overlay;
-+
-+ target = overlay_get_target(fdt, fdto, fragment, NULL);
-+ if (target < 0)
-+ return target;
-+
-+ ret = overlay_apply_node(fdt, target, fdto, overlay);
-+ if (ret)
-+ return ret;
-+ }
-+
-+ return 0;
-+}
-+
-+static int get_path_len(const void *fdt, int nodeoffset)
-+{
-+ int len = 0, namelen;
-+ const char *name;
-+
-+ FDT_RO_PROBE(fdt);
-+
-+ for (;;) {
-+ name = fdt_get_name(fdt, nodeoffset, &namelen);
-+ if (!name)
-+ return namelen;
-+
-+ /* root? we're done */
-+ if (namelen == 0)
-+ break;
-+
-+ nodeoffset = fdt_parent_offset(fdt, nodeoffset);
-+ if (nodeoffset < 0)
-+ return nodeoffset;
-+ len += namelen + 1;
-+ }
-+
-+ /* in case of root pretend it's "/" */
-+ if (len == 0)
-+ len++;
-+ return len;
-+}
-+
-+/**
-+ * overlay_symbol_update - Update the symbols of base tree after a merge
-+ * @fdt: Base Device Tree blob
-+ * @fdto: Device tree overlay blob
-+ *
-+ * overlay_symbol_update() updates the symbols of the base tree with the
-+ * symbols of the applied overlay
-+ *
-+ * This is the last step in the device tree overlay application
-+ * process, allowing the reference of overlay symbols by subsequent
-+ * overlay operations.
-+ *
-+ * returns:
-+ * 0 on success
-+ * Negative error code on failure
-+ */
-+static int overlay_symbol_update(void *fdt, void *fdto)
-+{
-+ int root_sym, ov_sym, prop, path_len, fragment, target;
-+ int len, frag_name_len, ret, rel_path_len;
-+ const char *s, *e;
-+ const char *path;
-+ const char *name;
-+ const char *frag_name;
-+ const char *rel_path;
-+ const char *target_path;
-+ char *buf;
-+ void *p;
-+
-+ ov_sym = fdt_subnode_offset(fdto, 0, "__symbols__");
-+
-+ /* if no overlay symbols exist no problem */
-+ if (ov_sym < 0)
-+ return 0;
-+
-+ root_sym = fdt_subnode_offset(fdt, 0, "__symbols__");
-+
-+ /* it no root symbols exist we should create them */
-+ if (root_sym == -FDT_ERR_NOTFOUND)
-+ root_sym = fdt_add_subnode(fdt, 0, "__symbols__");
-+
-+ /* any error is fatal now */
-+ if (root_sym < 0)
-+ return root_sym;
-+
-+ /* iterate over each overlay symbol */
-+ fdt_for_each_property_offset(prop, fdto, ov_sym) {
-+ path = fdt_getprop_by_offset(fdto, prop, &name, &path_len);
-+ if (!path)
-+ return path_len;
-+
-+ /* verify it's a string property (terminated by a single \0) */
-+ if (path_len < 1 || memchr(path, '\0', path_len) != &path[path_len - 1])
-+ return -FDT_ERR_BADVALUE;
-+
-+ /* keep end marker to avoid strlen() */
-+ e = path + path_len;
-+
-+ if (*path != '/')
-+ return -FDT_ERR_BADVALUE;
-+
-+ /* get fragment name first */
-+ s = strchr(path + 1, '/');
-+ if (!s) {
-+ /* Symbol refers to something that won't end
-+ * up in the target tree */
-+ continue;
-+ }
-+
-+ frag_name = path + 1;
-+ frag_name_len = s - path - 1;
-+
-+ /* verify format; safe since "s" lies in \0 terminated prop */
-+ len = sizeof("/__overlay__/") - 1;
-+ if ((e - s) > len && (memcmp(s, "/__overlay__/", len) == 0)) {
-+ /* /<fragment-name>/__overlay__/<relative-subnode-path> */
-+ rel_path = s + len;
-+ rel_path_len = e - rel_path - 1;
-+ } else if ((e - s) == len
-+ && (memcmp(s, "/__overlay__", len - 1) == 0)) {
-+ /* /<fragment-name>/__overlay__ */
-+ rel_path = "";
-+ rel_path_len = 0;
-+ } else {
-+ /* Symbol refers to something that won't end
-+ * up in the target tree */
-+ continue;
-+ }
-+
-+ /* find the fragment index in which the symbol lies */
-+ ret = fdt_subnode_offset_namelen(fdto, 0, frag_name,
-+ frag_name_len);
-+ /* not found? */
-+ if (ret < 0)
-+ return -FDT_ERR_BADOVERLAY;
-+ fragment = ret;
-+
-+ /* an __overlay__ subnode must exist */
-+ ret = fdt_subnode_offset(fdto, fragment, "__overlay__");
-+ if (ret < 0)
-+ return -FDT_ERR_BADOVERLAY;
-+
-+ /* get the target of the fragment */
-+ ret = overlay_get_target(fdt, fdto, fragment, &target_path);
-+ if (ret < 0)
-+ return ret;
-+ target = ret;
-+
-+ /* if we have a target path use */
-+ if (!target_path) {
-+ ret = get_path_len(fdt, target);
-+ if (ret < 0)
-+ return ret;
-+ len = ret;
-+ } else {
-+ len = strlen(target_path);
-+ }
-+
-+ ret = fdt_setprop_placeholder(fdt, root_sym, name,
-+ len + (len > 1) + rel_path_len + 1, &p);
-+ if (ret < 0)
-+ return ret;
-+
-+ if (!target_path) {
-+ /* again in case setprop_placeholder changed it */
-+ ret = overlay_get_target(fdt, fdto, fragment, &target_path);
-+ if (ret < 0)
-+ return ret;
-+ target = ret;
-+ }
-+
-+ buf = p;
-+ if (len > 1) { /* target is not root */
-+ if (!target_path) {
-+ ret = fdt_get_path(fdt, target, buf, len + 1);
-+ if (ret < 0)
-+ return ret;
-+ } else
-+ memcpy(buf, target_path, len + 1);
-+
-+ } else
-+ len--;
-+
-+ buf[len] = '/';
-+ memcpy(buf + len + 1, rel_path, rel_path_len);
-+ buf[len + 1 + rel_path_len] = '\0';
-+ }
-+
-+ return 0;
-+}
-+
-+int fdt_overlay_apply(void *fdt, void *fdto)
-+{
-+ uint32_t delta;
-+ int ret;
-+
-+ FDT_RO_PROBE(fdt);
-+ FDT_RO_PROBE(fdto);
-+
-+ ret = fdt_find_max_phandle(fdt, &delta);
-+ if (ret)
-+ goto err;
-+
-+ ret = overlay_adjust_local_phandles(fdto, delta);
-+ if (ret)
-+ goto err;
-+
-+ ret = overlay_update_local_references(fdto, delta);
-+ if (ret)
-+ goto err;
-+
-+ ret = overlay_fixup_phandles(fdt, fdto);
-+ if (ret)
-+ goto err;
-+
-+ ret = overlay_merge(fdt, fdto);
-+ if (ret)
-+ goto err;
-+
-+ ret = overlay_symbol_update(fdt, fdto);
-+ if (ret)
-+ goto err;
-+
-+ /*
-+ * The overlay has been damaged, erase its magic.
-+ */
-+ fdt_set_magic(fdto, ~0);
-+
-+ return 0;
-+
-+err:
-+ /*
-+ * The overlay might have been damaged, erase its magic.
-+ */
-+ fdt_set_magic(fdto, ~0);
-+
-+ /*
-+ * The base device tree might have been damaged, erase its
-+ * magic.
-+ */
-+ fdt_set_magic(fdt, ~0);
-+
-+ return ret;
-+}
-diff --git a/common/libfdt/fdt_ro.c b/common/libfdt/fdt_ro.c
-new file mode 100644
-index 0000000..17584da
---- /dev/null
-+++ b/common/libfdt/fdt_ro.c
-@@ -0,0 +1,859 @@
-+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
-+/*
-+ * libfdt - Flat Device Tree manipulation
-+ * Copyright (C) 2006 David Gibson, IBM Corporation.
-+ */
-+#include "libfdt_env.h"
-+
-+#include <fdt.h>
-+#include <libfdt.h>
-+
-+#include "libfdt_internal.h"
-+
-+static int fdt_nodename_eq_(const void *fdt, int offset,
-+ const char *s, int len)
-+{
-+ int olen;
-+ const char *p = fdt_get_name(fdt, offset, &olen);
-+
-+ if (!p || olen < len)
-+ /* short match */
-+ return 0;
-+
-+ if (memcmp(p, s, len) != 0)
-+ return 0;
-+
-+ if (p[len] == '\0')
-+ return 1;
-+ else if (!memchr(s, '@', len) && (p[len] == '@'))
-+ return 1;
-+ else
-+ return 0;
-+}
-+
-+const char *fdt_get_string(const void *fdt, int stroffset, int *lenp)
-+{
-+ int32_t totalsize;
-+ uint32_t absoffset;
-+ size_t len;
-+ int err;
-+ const char *s, *n;
-+
-+ if (can_assume(VALID_INPUT)) {
-+ s = (const char *)fdt + fdt_off_dt_strings(fdt) + stroffset;
-+
-+ if (lenp)
-+ *lenp = strlen(s);
-+ return s;
-+ }
-+ totalsize = fdt_ro_probe_(fdt);
-+ err = totalsize;
-+ if (totalsize < 0)
-+ goto fail;
-+
-+ err = -FDT_ERR_BADOFFSET;
-+ absoffset = stroffset + fdt_off_dt_strings(fdt);
-+ if (absoffset >= (unsigned)totalsize)
-+ goto fail;
-+ len = totalsize - absoffset;
-+
-+ if (fdt_magic(fdt) == FDT_MAGIC) {
-+ if (stroffset < 0)
-+ goto fail;
-+ if (can_assume(LATEST) || fdt_version(fdt) >= 17) {
-+ if ((unsigned)stroffset >= fdt_size_dt_strings(fdt))
-+ goto fail;
-+ if ((fdt_size_dt_strings(fdt) - stroffset) < len)
-+ len = fdt_size_dt_strings(fdt) - stroffset;
-+ }
-+ } else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
-+ unsigned int sw_stroffset = -stroffset;
-+
-+ if ((stroffset >= 0) ||
-+ (sw_stroffset > fdt_size_dt_strings(fdt)))
-+ goto fail;
-+ if (sw_stroffset < len)
-+ len = sw_stroffset;
-+ } else {
-+ err = -FDT_ERR_INTERNAL;
-+ goto fail;
-+ }
-+
-+ s = (const char *)fdt + absoffset;
-+ n = memchr(s, '\0', len);
-+ if (!n) {
-+ /* missing terminating NULL */
-+ err = -FDT_ERR_TRUNCATED;
-+ goto fail;
-+ }
-+
-+ if (lenp)
-+ *lenp = n - s;
-+ return s;
-+
-+fail:
-+ if (lenp)
-+ *lenp = err;
-+ return NULL;
-+}
-+
-+const char *fdt_string(const void *fdt, int stroffset)
-+{
-+ return fdt_get_string(fdt, stroffset, NULL);
-+}
-+
-+static int fdt_string_eq_(const void *fdt, int stroffset,
-+ const char *s, int len)
-+{
-+ int slen;
-+ const char *p = fdt_get_string(fdt, stroffset, &slen);
-+
-+ return p && (slen == len) && (memcmp(p, s, len) == 0);
-+}
-+
-+int fdt_find_max_phandle(const void *fdt, uint32_t *phandle)
-+{
-+ uint32_t max = 0;
-+ int offset = -1;
-+
-+ while (true) {
-+ uint32_t value;
-+
-+ offset = fdt_next_node(fdt, offset, NULL);
-+ if (offset < 0) {
-+ if (offset == -FDT_ERR_NOTFOUND)
-+ break;
-+
-+ return offset;
-+ }
-+
-+ value = fdt_get_phandle(fdt, offset);
-+
-+ if (value > max)
-+ max = value;
-+ }
-+
-+ if (phandle)
-+ *phandle = max;
-+
-+ return 0;
-+}
-+
-+int fdt_generate_phandle(const void *fdt, uint32_t *phandle)
-+{
-+ uint32_t max;
-+ int err;
-+
-+ err = fdt_find_max_phandle(fdt, &max);
-+ if (err < 0)
-+ return err;
-+
-+ if (max == FDT_MAX_PHANDLE)
-+ return -FDT_ERR_NOPHANDLES;
-+
-+ if (phandle)
-+ *phandle = max + 1;
-+
-+ return 0;
-+}
-+
-+static const struct fdt_reserve_entry *fdt_mem_rsv(const void *fdt, int n)
-+{
-+ unsigned int offset = n * sizeof(struct fdt_reserve_entry);
-+ unsigned int absoffset = fdt_off_mem_rsvmap(fdt) + offset;
-+
-+ if (!can_assume(VALID_INPUT)) {
-+ if (absoffset < fdt_off_mem_rsvmap(fdt))
-+ return NULL;
-+ if (absoffset > fdt_totalsize(fdt) -
-+ sizeof(struct fdt_reserve_entry))
-+ return NULL;
-+ }
-+ return fdt_mem_rsv_(fdt, n);
-+}
-+
-+int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size)
-+{
-+ const struct fdt_reserve_entry *re;
-+
-+ FDT_RO_PROBE(fdt);
-+ re = fdt_mem_rsv(fdt, n);
-+ if (!can_assume(VALID_INPUT) && !re)
-+ return -FDT_ERR_BADOFFSET;
-+
-+ *address = fdt64_ld_(&re->address);
-+ *size = fdt64_ld_(&re->size);
-+ return 0;
-+}
-+
-+int fdt_num_mem_rsv(const void *fdt)
-+{
-+ int i;
-+ const struct fdt_reserve_entry *re;
-+
-+ for (i = 0; (re = fdt_mem_rsv(fdt, i)) != NULL; i++) {
-+ if (fdt64_ld_(&re->size) == 0)
-+ return i;
-+ }
-+ return -FDT_ERR_TRUNCATED;
-+}
-+
-+static int nextprop_(const void *fdt, int offset)
-+{
-+ uint32_t tag;
-+ int nextoffset;
-+
-+ do {
-+ tag = fdt_next_tag(fdt, offset, &nextoffset);
-+
-+ switch (tag) {
-+ case FDT_END:
-+ if (nextoffset >= 0)
-+ return -FDT_ERR_BADSTRUCTURE;
-+ else
-+ return nextoffset;
-+
-+ case FDT_PROP:
-+ return offset;
-+ }
-+ offset = nextoffset;
-+ } while (tag == FDT_NOP);
-+
-+ return -FDT_ERR_NOTFOUND;
-+}
-+
-+int fdt_subnode_offset_namelen(const void *fdt, int offset,
-+ const char *name, int namelen)
-+{
-+ int depth;
-+
-+ FDT_RO_PROBE(fdt);
-+
-+ for (depth = 0;
-+ (offset >= 0) && (depth >= 0);
-+ offset = fdt_next_node(fdt, offset, &depth))
-+ if ((depth == 1)
-+ && fdt_nodename_eq_(fdt, offset, name, namelen))
-+ return offset;
-+
-+ if (depth < 0)
-+ return -FDT_ERR_NOTFOUND;
-+ return offset; /* error */
-+}
-+
-+int fdt_subnode_offset(const void *fdt, int parentoffset,
-+ const char *name)
-+{
-+ return fdt_subnode_offset_namelen(fdt, parentoffset, name, strlen(name));
-+}
-+
-+int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen)
-+{
-+ const char *end = path + namelen;
-+ const char *p = path;
-+ int offset = 0;
-+
-+ FDT_RO_PROBE(fdt);
-+
-+ /* see if we have an alias */
-+ if (*path != '/') {
-+ const char *q = memchr(path, '/', end - p);
-+
-+ if (!q)
-+ q = end;
-+
-+ p = fdt_get_alias_namelen(fdt, p, q - p);
-+ if (!p)
-+ return -FDT_ERR_BADPATH;
-+ offset = fdt_path_offset(fdt, p);
-+
-+ p = q;
-+ }
-+
-+ while (p < end) {
-+ const char *q;
-+
-+ while (*p == '/') {
-+ p++;
-+ if (p == end)
-+ return offset;
-+ }
-+ q = memchr(p, '/', end - p);
-+ if (! q)
-+ q = end;
-+
-+ offset = fdt_subnode_offset_namelen(fdt, offset, p, q-p);
-+ if (offset < 0)
-+ return offset;
-+
-+ p = q;
-+ }
-+
-+ return offset;
-+}
-+
-+int fdt_path_offset(const void *fdt, const char *path)
-+{
-+ return fdt_path_offset_namelen(fdt, path, strlen(path));
-+}
-+
-+const char *fdt_get_name(const void *fdt, int nodeoffset, int *len)
-+{
-+ const struct fdt_node_header *nh = fdt_offset_ptr_(fdt, nodeoffset);
-+ const char *nameptr;
-+ int err;
-+
-+ if (((err = fdt_ro_probe_(fdt)) < 0)
-+ || ((err = fdt_check_node_offset_(fdt, nodeoffset)) < 0))
-+ goto fail;
-+
-+ nameptr = nh->name;
-+
-+ if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
-+ /*
-+ * For old FDT versions, match the naming conventions of V16:
-+ * give only the leaf name (after all /). The actual tree
-+ * contents are loosely checked.
-+ */
-+ const char *leaf;
-+ leaf = strrchr(nameptr, '/');
-+ if (leaf == NULL) {
-+ err = -FDT_ERR_BADSTRUCTURE;
-+ goto fail;
-+ }
-+ nameptr = leaf+1;
-+ }
-+
-+ if (len)
-+ *len = strlen(nameptr);
-+
-+ return nameptr;
-+
-+ fail:
-+ if (len)
-+ *len = err;
-+ return NULL;
-+}
-+
-+int fdt_first_property_offset(const void *fdt, int nodeoffset)
-+{
-+ int offset;
-+
-+ if ((offset = fdt_check_node_offset_(fdt, nodeoffset)) < 0)
-+ return offset;
-+
-+ return nextprop_(fdt, offset);
-+}
-+
-+int fdt_next_property_offset(const void *fdt, int offset)
-+{
-+ if ((offset = fdt_check_prop_offset_(fdt, offset)) < 0)
-+ return offset;
-+
-+ return nextprop_(fdt, offset);
-+}
-+
-+static const struct fdt_property *fdt_get_property_by_offset_(const void *fdt,
-+ int offset,
-+ int *lenp)
-+{
-+ int err;
-+ const struct fdt_property *prop;
-+
-+ if (!can_assume(VALID_INPUT) &&
-+ (err = fdt_check_prop_offset_(fdt, offset)) < 0) {
-+ if (lenp)
-+ *lenp = err;
-+ return NULL;
-+ }
-+
-+ prop = fdt_offset_ptr_(fdt, offset);
-+
-+ if (lenp)
-+ *lenp = fdt32_ld_(&prop->len);
-+
-+ return prop;
-+}
-+
-+const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
-+ int offset,
-+ int *lenp)
-+{
-+ /* Prior to version 16, properties may need realignment
-+ * and this API does not work. fdt_getprop_*() will, however. */
-+
-+ if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
-+ if (lenp)
-+ *lenp = -FDT_ERR_BADVERSION;
-+ return NULL;
-+ }
-+
-+ return fdt_get_property_by_offset_(fdt, offset, lenp);
-+}
-+
-+static const struct fdt_property *fdt_get_property_namelen_(const void *fdt,
-+ int offset,
-+ const char *name,
-+ int namelen,
-+ int *lenp,
-+ int *poffset)
-+{
-+ for (offset = fdt_first_property_offset(fdt, offset);
-+ (offset >= 0);
-+ (offset = fdt_next_property_offset(fdt, offset))) {
-+ const struct fdt_property *prop;
-+
-+ prop = fdt_get_property_by_offset_(fdt, offset, lenp);
-+ if (!can_assume(LIBFDT_FLAWLESS) && !prop) {
-+ offset = -FDT_ERR_INTERNAL;
-+ break;
-+ }
-+ if (fdt_string_eq_(fdt, fdt32_ld_(&prop->nameoff),
-+ name, namelen)) {
-+ if (poffset)
-+ *poffset = offset;
-+ return prop;
-+ }
-+ }
-+
-+ if (lenp)
-+ *lenp = offset;
-+ return NULL;
-+}
-+
-+
-+const struct fdt_property *fdt_get_property_namelen(const void *fdt,
-+ int offset,
-+ const char *name,
-+ int namelen, int *lenp)
-+{
-+ /* Prior to version 16, properties may need realignment
-+ * and this API does not work. fdt_getprop_*() will, however. */
-+ if (!can_assume(LATEST) && fdt_version(fdt) < 0x10) {
-+ if (lenp)
-+ *lenp = -FDT_ERR_BADVERSION;
-+ return NULL;
-+ }
-+
-+ return fdt_get_property_namelen_(fdt, offset, name, namelen, lenp,
-+ NULL);
-+}
-+
-+
-+const struct fdt_property *fdt_get_property(const void *fdt,
-+ int nodeoffset,
-+ const char *name, int *lenp)
-+{
-+ return fdt_get_property_namelen(fdt, nodeoffset, name,
-+ strlen(name), lenp);
-+}
-+
-+const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
-+ const char *name, int namelen, int *lenp)
-+{
-+ int poffset;
-+ const struct fdt_property *prop;
-+
-+ prop = fdt_get_property_namelen_(fdt, nodeoffset, name, namelen, lenp,
-+ &poffset);
-+ if (!prop)
-+ return NULL;
-+
-+ /* Handle realignment */
-+ if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
-+ (poffset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >= 8)
-+ return prop->data + 4;
-+ return prop->data;
-+}
-+
-+const void *fdt_getprop_by_offset(const void *fdt, int offset,
-+ const char **namep, int *lenp)
-+{
-+ const struct fdt_property *prop;
-+
-+ prop = fdt_get_property_by_offset_(fdt, offset, lenp);
-+ if (!prop)
-+ return NULL;
-+ if (namep) {
-+ const char *name;
-+ int namelen;
-+
-+ if (!can_assume(VALID_INPUT)) {
-+ name = fdt_get_string(fdt, fdt32_ld_(&prop->nameoff),
-+ &namelen);
-+ if (!name) {
-+ if (lenp)
-+ *lenp = namelen;
-+ return NULL;
-+ }
-+ *namep = name;
-+ } else {
-+ *namep = fdt_string(fdt, fdt32_ld_(&prop->nameoff));
-+ }
-+ }
-+
-+ /* Handle realignment */
-+ if (!can_assume(LATEST) && fdt_version(fdt) < 0x10 &&
-+ (offset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >= 8)
-+ return prop->data + 4;
-+ return prop->data;
-+}
-+
-+const void *fdt_getprop(const void *fdt, int nodeoffset,
-+ const char *name, int *lenp)
-+{
-+ return fdt_getprop_namelen(fdt, nodeoffset, name, strlen(name), lenp);
-+}
-+
-+uint32_t fdt_get_phandle(const void *fdt, int nodeoffset)
-+{
-+ const fdt32_t *php;
-+ int len;
-+
-+ /* FIXME: This is a bit sub-optimal, since we potentially scan
-+ * over all the properties twice. */
-+ php = fdt_getprop(fdt, nodeoffset, "phandle", &len);
-+ if (!php || (len != sizeof(*php))) {
-+ php = fdt_getprop(fdt, nodeoffset, "linux,phandle", &len);
-+ if (!php || (len != sizeof(*php)))
-+ return 0;
-+ }
-+
-+ return fdt32_ld_(php);
-+}
-+
-+const char *fdt_get_alias_namelen(const void *fdt,
-+ const char *name, int namelen)
-+{
-+ int aliasoffset;
-+
-+ aliasoffset = fdt_path_offset(fdt, "/aliases");
-+ if (aliasoffset < 0)
-+ return NULL;
-+
-+ return fdt_getprop_namelen(fdt, aliasoffset, name, namelen, NULL);
-+}
-+
-+const char *fdt_get_alias(const void *fdt, const char *name)
-+{
-+ return fdt_get_alias_namelen(fdt, name, strlen(name));
-+}
-+
-+int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen)
-+{
-+ int pdepth = 0, p = 0;
-+ int offset, depth, namelen;
-+ const char *name;
-+
-+ FDT_RO_PROBE(fdt);
-+
-+ if (buflen < 2)
-+ return -FDT_ERR_NOSPACE;
-+
-+ for (offset = 0, depth = 0;
-+ (offset >= 0) && (offset <= nodeoffset);
-+ offset = fdt_next_node(fdt, offset, &depth)) {
-+ while (pdepth > depth) {
-+ do {
-+ p--;
-+ } while (buf[p-1] != '/');
-+ pdepth--;
-+ }
-+
-+ if (pdepth >= depth) {
-+ name = fdt_get_name(fdt, offset, &namelen);
-+ if (!name)
-+ return namelen;
-+ if ((p + namelen + 1) <= buflen) {
-+ memcpy(buf + p, name, namelen);
-+ p += namelen;
-+ buf[p++] = '/';
-+ pdepth++;
-+ }
-+ }
-+
-+ if (offset == nodeoffset) {
-+ if (pdepth < (depth + 1))
-+ return -FDT_ERR_NOSPACE;
-+
-+ if (p > 1) /* special case so that root path is "/", not "" */
-+ p--;
-+ buf[p] = '\0';
-+ return 0;
-+ }
-+ }
-+
-+ if ((offset == -FDT_ERR_NOTFOUND) || (offset >= 0))
-+ return -FDT_ERR_BADOFFSET;
-+ else if (offset == -FDT_ERR_BADOFFSET)
-+ return -FDT_ERR_BADSTRUCTURE;
-+
-+ return offset; /* error from fdt_next_node() */
-+}
-+
-+int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
-+ int supernodedepth, int *nodedepth)
-+{
-+ int offset, depth;
-+ int supernodeoffset = -FDT_ERR_INTERNAL;
-+
-+ FDT_RO_PROBE(fdt);
-+
-+ if (supernodedepth < 0)
-+ return -FDT_ERR_NOTFOUND;
-+
-+ for (offset = 0, depth = 0;
-+ (offset >= 0) && (offset <= nodeoffset);
-+ offset = fdt_next_node(fdt, offset, &depth)) {
-+ if (depth == supernodedepth)
-+ supernodeoffset = offset;
-+
-+ if (offset == nodeoffset) {
-+ if (nodedepth)
-+ *nodedepth = depth;
-+
-+ if (supernodedepth > depth)
-+ return -FDT_ERR_NOTFOUND;
-+ else
-+ return supernodeoffset;
-+ }
-+ }
-+
-+ if (!can_assume(VALID_INPUT)) {
-+ if ((offset == -FDT_ERR_NOTFOUND) || (offset >= 0))
-+ return -FDT_ERR_BADOFFSET;
-+ else if (offset == -FDT_ERR_BADOFFSET)
-+ return -FDT_ERR_BADSTRUCTURE;
-+ }
-+
-+ return offset; /* error from fdt_next_node() */
-+}
-+
-+int fdt_node_depth(const void *fdt, int nodeoffset)
-+{
-+ int nodedepth;
-+ int err;
-+
-+ err = fdt_supernode_atdepth_offset(fdt, nodeoffset, 0, &nodedepth);
-+ if (err)
-+ return (can_assume(LIBFDT_FLAWLESS) || err < 0) ? err :
-+ -FDT_ERR_INTERNAL;
-+ return nodedepth;
-+}
-+
-+int fdt_parent_offset(const void *fdt, int nodeoffset)
-+{
-+ int nodedepth = fdt_node_depth(fdt, nodeoffset);
-+
-+ if (nodedepth < 0)
-+ return nodedepth;
-+ return fdt_supernode_atdepth_offset(fdt, nodeoffset,
-+ nodedepth - 1, NULL);
-+}
-+
-+int fdt_node_offset_by_prop_value(const void *fdt, int startoffset,
-+ const char *propname,
-+ const void *propval, int proplen)
-+{
-+ int offset;
-+ const void *val;
-+ int len;
-+
-+ FDT_RO_PROBE(fdt);
-+
-+ /* FIXME: The algorithm here is pretty horrible: we scan each
-+ * property of a node in fdt_getprop(), then if that didn't
-+ * find what we want, we scan over them again making our way
-+ * to the next node. Still it's the easiest to implement
-+ * approach; performance can come later. */
-+ for (offset = fdt_next_node(fdt, startoffset, NULL);
-+ offset >= 0;
-+ offset = fdt_next_node(fdt, offset, NULL)) {
-+ val = fdt_getprop(fdt, offset, propname, &len);
-+ if (val && (len == proplen)
-+ && (memcmp(val, propval, len) == 0))
-+ return offset;
-+ }
-+
-+ return offset; /* error from fdt_next_node() */
-+}
-+
-+int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle)
-+{
-+ int offset;
-+
-+ if ((phandle == 0) || (phandle == ~0U))
-+ return -FDT_ERR_BADPHANDLE;
-+
-+ FDT_RO_PROBE(fdt);
-+
-+ /* FIXME: The algorithm here is pretty horrible: we
-+ * potentially scan each property of a node in
-+ * fdt_get_phandle(), then if that didn't find what
-+ * we want, we scan over them again making our way to the next
-+ * node. Still it's the easiest to implement approach;
-+ * performance can come later. */
-+ for (offset = fdt_next_node(fdt, -1, NULL);
-+ offset >= 0;
-+ offset = fdt_next_node(fdt, offset, NULL)) {
-+ if (fdt_get_phandle(fdt, offset) == phandle)
-+ return offset;
-+ }
-+
-+ return offset; /* error from fdt_next_node() */
-+}
-+
-+int fdt_stringlist_contains(const char *strlist, int listlen, const char *str)
-+{
-+ int len = strlen(str);
-+ const char *p;
-+
-+ while (listlen >= len) {
-+ if (memcmp(str, strlist, len+1) == 0)
-+ return 1;
-+ p = memchr(strlist, '\0', listlen);
-+ if (!p)
-+ return 0; /* malformed strlist.. */
-+ listlen -= (p-strlist) + 1;
-+ strlist = p + 1;
-+ }
-+ return 0;
-+}
-+
-+int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property)
-+{
-+ const char *list, *end;
-+ int length, count = 0;
-+
-+ list = fdt_getprop(fdt, nodeoffset, property, &length);
-+ if (!list)
-+ return length;
-+
-+ end = list + length;
-+
-+ while (list < end) {
-+ length = strnlen(list, end - list) + 1;
-+
-+ /* Abort if the last string isn't properly NUL-terminated. */
-+ if (list + length > end)
-+ return -FDT_ERR_BADVALUE;
-+
-+ list += length;
-+ count++;
-+ }
-+
-+ return count;
-+}
-+
-+int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
-+ const char *string)
-+{
-+ int length, len, idx = 0;
-+ const char *list, *end;
-+
-+ list = fdt_getprop(fdt, nodeoffset, property, &length);
-+ if (!list)
-+ return length;
-+
-+ len = strlen(string) + 1;
-+ end = list + length;
-+
-+ while (list < end) {
-+ length = strnlen(list, end - list) + 1;
-+
-+ /* Abort if the last string isn't properly NUL-terminated. */
-+ if (list + length > end)
-+ return -FDT_ERR_BADVALUE;
-+
-+ if (length == len && memcmp(list, string, length) == 0)
-+ return idx;
-+
-+ list += length;
-+ idx++;
-+ }
-+
-+ return -FDT_ERR_NOTFOUND;
-+}
-+
-+const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
-+ const char *property, int idx,
-+ int *lenp)
-+{
-+ const char *list, *end;
-+ int length;
-+
-+ list = fdt_getprop(fdt, nodeoffset, property, &length);
-+ if (!list) {
-+ if (lenp)
-+ *lenp = length;
-+
-+ return NULL;
-+ }
-+
-+ end = list + length;
-+
-+ while (list < end) {
-+ length = strnlen(list, end - list) + 1;
-+
-+ /* Abort if the last string isn't properly NUL-terminated. */
-+ if (list + length > end) {
-+ if (lenp)
-+ *lenp = -FDT_ERR_BADVALUE;
-+
-+ return NULL;
-+ }
-+
-+ if (idx == 0) {
-+ if (lenp)
-+ *lenp = length - 1;
-+
-+ return list;
-+ }
-+
-+ list += length;
-+ idx--;
-+ }
-+
-+ if (lenp)
-+ *lenp = -FDT_ERR_NOTFOUND;
-+
-+ return NULL;
-+}
-+
-+int fdt_node_check_compatible(const void *fdt, int nodeoffset,
-+ const char *compatible)
-+{
-+ const void *prop;
-+ int len;
-+
-+ prop = fdt_getprop(fdt, nodeoffset, "compatible", &len);
-+ if (!prop)
-+ return len;
-+
-+ return !fdt_stringlist_contains(prop, len, compatible);
-+}
-+
-+int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
-+ const char *compatible)
-+{
-+ int offset, err;
-+
-+ FDT_RO_PROBE(fdt);
-+
-+ /* FIXME: The algorithm here is pretty horrible: we scan each
-+ * property of a node in fdt_node_check_compatible(), then if
-+ * that didn't find what we want, we scan over them again
-+ * making our way to the next node. Still it's the easiest to
-+ * implement approach; performance can come later. */
-+ for (offset = fdt_next_node(fdt, startoffset, NULL);
-+ offset >= 0;
-+ offset = fdt_next_node(fdt, offset, NULL)) {
-+ err = fdt_node_check_compatible(fdt, offset, compatible);
-+ if ((err < 0) && (err != -FDT_ERR_NOTFOUND))
-+ return err;
-+ else if (err == 0)
-+ return offset;
-+ }
-+
-+ return offset; /* error from fdt_next_node() */
-+}
-diff --git a/common/libfdt/fdt_rw.c b/common/libfdt/fdt_rw.c
-new file mode 100644
-index 0000000..3621d36
---- /dev/null
-+++ b/common/libfdt/fdt_rw.c
-@@ -0,0 +1,500 @@
-+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
-+/*
-+ * libfdt - Flat Device Tree manipulation
-+ * Copyright (C) 2006 David Gibson, IBM Corporation.
-+ */
-+#include "libfdt_env.h"
-+
-+#include <fdt.h>
-+#include <libfdt.h>
-+
-+#include "libfdt_internal.h"
-+
-+static int fdt_blocks_misordered_(const void *fdt,
-+ int mem_rsv_size, int struct_size)
-+{
-+ return (fdt_off_mem_rsvmap(fdt) < FDT_ALIGN(sizeof(struct fdt_header), 8))
-+ || (fdt_off_dt_struct(fdt) <
-+ (fdt_off_mem_rsvmap(fdt) + mem_rsv_size))
-+ || (fdt_off_dt_strings(fdt) <
-+ (fdt_off_dt_struct(fdt) + struct_size))
-+ || (fdt_totalsize(fdt) <
-+ (fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt)));
-+}
-+
-+static int fdt_rw_probe_(void *fdt)
-+{
-+ if (can_assume(VALID_DTB))
-+ return 0;
-+ FDT_RO_PROBE(fdt);
-+
-+ if (!can_assume(LATEST) && fdt_version(fdt) < 17)
-+ return -FDT_ERR_BADVERSION;
-+ if (fdt_blocks_misordered_(fdt, sizeof(struct fdt_reserve_entry),
-+ fdt_size_dt_struct(fdt)))
-+ return -FDT_ERR_BADLAYOUT;
-+ if (!can_assume(LATEST) && fdt_version(fdt) > 17)
-+ fdt_set_version(fdt, 17);
-+
-+ return 0;
-+}
-+
-+#define FDT_RW_PROBE(fdt) \
-+ { \
-+ int err_; \
-+ if ((err_ = fdt_rw_probe_(fdt)) != 0) \
-+ return err_; \
-+ }
-+
-+static inline unsigned int fdt_data_size_(void *fdt)
-+{
-+ return fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
-+}
-+
-+static int fdt_splice_(void *fdt, void *splicepoint, int oldlen, int newlen)
-+{
-+ char *p = splicepoint;
-+ unsigned int dsize = fdt_data_size_(fdt);
-+ size_t soff = p - (char *)fdt;
-+
-+ if ((oldlen < 0) || (soff + oldlen < soff) || (soff + oldlen > dsize))
-+ return -FDT_ERR_BADOFFSET;
-+ if ((p < (char *)fdt) || (dsize + newlen < (unsigned)oldlen))
-+ return -FDT_ERR_BADOFFSET;
-+ if (dsize - oldlen + newlen > fdt_totalsize(fdt))
-+ return -FDT_ERR_NOSPACE;
-+ memmove(p + newlen, p + oldlen, ((char *)fdt + dsize) - (p + oldlen));
-+ return 0;
-+}
-+
-+static int fdt_splice_mem_rsv_(void *fdt, struct fdt_reserve_entry *p,
-+ int oldn, int newn)
-+{
-+ int delta = (newn - oldn) * sizeof(*p);
-+ int err;
-+ err = fdt_splice_(fdt, p, oldn * sizeof(*p), newn * sizeof(*p));
-+ if (err)
-+ return err;
-+ fdt_set_off_dt_struct(fdt, fdt_off_dt_struct(fdt) + delta);
-+ fdt_set_off_dt_strings(fdt, fdt_off_dt_strings(fdt) + delta);
-+ return 0;
-+}
-+
-+static int fdt_splice_struct_(void *fdt, void *p,
-+ int oldlen, int newlen)
-+{
-+ int delta = newlen - oldlen;
-+ int err;
-+
-+ if ((err = fdt_splice_(fdt, p, oldlen, newlen)))
-+ return err;
-+
-+ fdt_set_size_dt_struct(fdt, fdt_size_dt_struct(fdt) + delta);
-+ fdt_set_off_dt_strings(fdt, fdt_off_dt_strings(fdt) + delta);
-+ return 0;
-+}
-+
-+/* Must only be used to roll back in case of error */
-+static void fdt_del_last_string_(void *fdt, const char *s)
-+{
-+ int newlen = strlen(s) + 1;
-+
-+ fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) - newlen);
-+}
-+
-+static int fdt_splice_string_(void *fdt, int newlen)
-+{
-+ void *p = (char *)fdt
-+ + fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt);
-+ int err;
-+
-+ if ((err = fdt_splice_(fdt, p, 0, newlen)))
-+ return err;
-+
-+ fdt_set_size_dt_strings(fdt, fdt_size_dt_strings(fdt) + newlen);
-+ return 0;
-+}
-+
-+/**
-+ * fdt_find_add_string_() - Find or allocate a string
-+ *
-+ * @fdt: pointer to the device tree to check/adjust
-+ * @s: string to find/add
-+ * @allocated: Set to 0 if the string was found, 1 if not found and so
-+ * allocated. Ignored if can_assume(NO_ROLLBACK)
-+ * @return offset of string in the string table (whether found or added)
-+ */
-+static int fdt_find_add_string_(void *fdt, const char *s, int *allocated)
-+{
-+ char *strtab = (char *)fdt + fdt_off_dt_strings(fdt);
-+ const char *p;
-+ char *new;
-+ int len = strlen(s) + 1;
-+ int err;
-+
-+ if (!can_assume(NO_ROLLBACK))
-+ *allocated = 0;
-+
-+ p = fdt_find_string_(strtab, fdt_size_dt_strings(fdt), s);
-+ if (p)
-+ /* found it */
-+ return (p - strtab);
-+
-+ new = strtab + fdt_size_dt_strings(fdt);
-+ err = fdt_splice_string_(fdt, len);
-+ if (err)
-+ return err;
-+
-+ if (!can_assume(NO_ROLLBACK))
-+ *allocated = 1;
-+
-+ memcpy(new, s, len);
-+ return (new - strtab);
-+}
-+
-+int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size)
-+{
-+ struct fdt_reserve_entry *re;
-+ int err;
-+
-+ FDT_RW_PROBE(fdt);
-+
-+ re = fdt_mem_rsv_w_(fdt, fdt_num_mem_rsv(fdt));
-+ err = fdt_splice_mem_rsv_(fdt, re, 0, 1);
-+ if (err)
-+ return err;
-+
-+ re->address = cpu_to_fdt64(address);
-+ re->size = cpu_to_fdt64(size);
-+ return 0;
-+}
-+
-+int fdt_del_mem_rsv(void *fdt, int n)
-+{
-+ struct fdt_reserve_entry *re = fdt_mem_rsv_w_(fdt, n);
-+
-+ FDT_RW_PROBE(fdt);
-+
-+ if (n >= fdt_num_mem_rsv(fdt))
-+ return -FDT_ERR_NOTFOUND;
-+
-+ return fdt_splice_mem_rsv_(fdt, re, 1, 0);
-+}
-+
-+static int fdt_resize_property_(void *fdt, int nodeoffset, const char *name,
-+ int len, struct fdt_property **prop)
-+{
-+ int oldlen;
-+ int err;
-+
-+ *prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
-+ if (!*prop)
-+ return oldlen;
-+
-+ if ((err = fdt_splice_struct_(fdt, (*prop)->data, FDT_TAGALIGN(oldlen),
-+ FDT_TAGALIGN(len))))
-+ return err;
-+
-+ (*prop)->len = cpu_to_fdt32(len);
-+ return 0;
-+}
-+
-+static int fdt_add_property_(void *fdt, int nodeoffset, const char *name,
-+ int len, struct fdt_property **prop)
-+{
-+ int proplen;
-+ int nextoffset;
-+ int namestroff;
-+ int err;
-+ int allocated;
-+
-+ if ((nextoffset = fdt_check_node_offset_(fdt, nodeoffset)) < 0)
-+ return nextoffset;
-+
-+ namestroff = fdt_find_add_string_(fdt, name, &allocated);
-+ if (namestroff < 0)
-+ return namestroff;
-+
-+ *prop = fdt_offset_ptr_w_(fdt, nextoffset);
-+ proplen = sizeof(**prop) + FDT_TAGALIGN(len);
-+
-+ err = fdt_splice_struct_(fdt, *prop, 0, proplen);
-+ if (err) {
-+ /* Delete the string if we failed to add it */
-+ if (!can_assume(NO_ROLLBACK) && allocated)
-+ fdt_del_last_string_(fdt, name);
-+ return err;
-+ }
-+
-+ (*prop)->tag = cpu_to_fdt32(FDT_PROP);
-+ (*prop)->nameoff = cpu_to_fdt32(namestroff);
-+ (*prop)->len = cpu_to_fdt32(len);
-+ return 0;
-+}
-+
-+int fdt_set_name(void *fdt, int nodeoffset, const char *name)
-+{
-+ char *namep;
-+ int oldlen, newlen;
-+ int err;
-+
-+ FDT_RW_PROBE(fdt);
-+
-+ namep = (char *)(uintptr_t)fdt_get_name(fdt, nodeoffset, &oldlen);
-+ if (!namep)
-+ return oldlen;
-+
-+ newlen = strlen(name);
-+
-+ err = fdt_splice_struct_(fdt, namep, FDT_TAGALIGN(oldlen+1),
-+ FDT_TAGALIGN(newlen+1));
-+ if (err)
-+ return err;
-+
-+ memcpy(namep, name, newlen+1);
-+ return 0;
-+}
-+
-+int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
-+ int len, void **prop_data)
-+{
-+ struct fdt_property *prop;
-+ int err;
-+
-+ FDT_RW_PROBE(fdt);
-+
-+ err = fdt_resize_property_(fdt, nodeoffset, name, len, &prop);
-+ if (err == -FDT_ERR_NOTFOUND)
-+ err = fdt_add_property_(fdt, nodeoffset, name, len, &prop);
-+ if (err)
-+ return err;
-+
-+ *prop_data = prop->data;
-+ return 0;
-+}
-+
-+int fdt_setprop(void *fdt, int nodeoffset, const char *name,
-+ const void *val, int len)
-+{
-+ void *prop_data;
-+ int err;
-+
-+ err = fdt_setprop_placeholder(fdt, nodeoffset, name, len, &prop_data);
-+ if (err)
-+ return err;
-+
-+ if (len)
-+ memcpy(prop_data, val, len);
-+ return 0;
-+}
-+
-+int fdt_appendprop(void *fdt, int nodeoffset, const char *name,
-+ const void *val, int len)
-+{
-+ struct fdt_property *prop;
-+ int err, oldlen, newlen;
-+
-+ FDT_RW_PROBE(fdt);
-+
-+ prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen);
-+ if (prop) {
-+ newlen = len + oldlen;
-+ err = fdt_splice_struct_(fdt, prop->data,
-+ FDT_TAGALIGN(oldlen),
-+ FDT_TAGALIGN(newlen));
-+ if (err)
-+ return err;
-+ prop->len = cpu_to_fdt32(newlen);
-+ memcpy(prop->data + oldlen, val, len);
-+ } else {
-+ err = fdt_add_property_(fdt, nodeoffset, name, len, &prop);
-+ if (err)
-+ return err;
-+ memcpy(prop->data, val, len);
-+ }
-+ return 0;
-+}
-+
-+int fdt_delprop(void *fdt, int nodeoffset, const char *name)
-+{
-+ struct fdt_property *prop;
-+ int len, proplen;
-+
-+ FDT_RW_PROBE(fdt);
-+
-+ prop = fdt_get_property_w(fdt, nodeoffset, name, &len);
-+ if (!prop)
-+ return len;
-+
-+ proplen = sizeof(*prop) + FDT_TAGALIGN(len);
-+ return fdt_splice_struct_(fdt, prop, proplen, 0);
-+}
-+
-+int fdt_add_subnode_namelen(void *fdt, int parentoffset,
-+ const char *name, int namelen)
-+{
-+ struct fdt_node_header *nh;
-+ int offset, nextoffset;
-+ int nodelen;
-+ int err;
-+ uint32_t tag;
-+ fdt32_t *endtag;
-+
-+ FDT_RW_PROBE(fdt);
-+
-+ offset = fdt_subnode_offset_namelen(fdt, parentoffset, name, namelen);
-+ if (offset >= 0)
-+ return -FDT_ERR_EXISTS;
-+ else if (offset != -FDT_ERR_NOTFOUND)
-+ return offset;
-+
-+ /* Try to place the new node after the parent's properties */
-+ tag = fdt_next_tag(fdt, parentoffset, &nextoffset);
-+ /* the fdt_subnode_offset_namelen() should ensure this never hits */
-+ if (!can_assume(LIBFDT_FLAWLESS) && (tag != FDT_BEGIN_NODE))
-+ return -FDT_ERR_INTERNAL;
-+ do {
-+ offset = nextoffset;
-+ tag = fdt_next_tag(fdt, offset, &nextoffset);
-+ } while ((tag == FDT_PROP) || (tag == FDT_NOP));
-+
-+ nh = fdt_offset_ptr_w_(fdt, offset);
-+ nodelen = sizeof(*nh) + FDT_TAGALIGN(namelen+1) + FDT_TAGSIZE;
-+
-+ err = fdt_splice_struct_(fdt, nh, 0, nodelen);
-+ if (err)
-+ return err;
-+
-+ nh->tag = cpu_to_fdt32(FDT_BEGIN_NODE);
-+ memset(nh->name, 0, FDT_TAGALIGN(namelen+1));
-+ memcpy(nh->name, name, namelen);
-+ endtag = (fdt32_t *)((char *)nh + nodelen - FDT_TAGSIZE);
-+ *endtag = cpu_to_fdt32(FDT_END_NODE);
-+
-+ return offset;
-+}
-+
-+int fdt_add_subnode(void *fdt, int parentoffset, const char *name)
-+{
-+ return fdt_add_subnode_namelen(fdt, parentoffset, name, strlen(name));
-+}
-+
-+int fdt_del_node(void *fdt, int nodeoffset)
-+{
-+ int endoffset;
-+
-+ FDT_RW_PROBE(fdt);
-+
-+ endoffset = fdt_node_end_offset_(fdt, nodeoffset);
-+ if (endoffset < 0)
-+ return endoffset;
-+
-+ return fdt_splice_struct_(fdt, fdt_offset_ptr_w_(fdt, nodeoffset),
-+ endoffset - nodeoffset, 0);
-+}
-+
-+static void fdt_packblocks_(const char *old, char *new,
-+ int mem_rsv_size,
-+ int struct_size,
-+ int strings_size)
-+{
-+ int mem_rsv_off, struct_off, strings_off;
-+
-+ mem_rsv_off = FDT_ALIGN(sizeof(struct fdt_header), 8);
-+ struct_off = mem_rsv_off + mem_rsv_size;
-+ strings_off = struct_off + struct_size;
-+
-+ memmove(new + mem_rsv_off, old + fdt_off_mem_rsvmap(old), mem_rsv_size);
-+ fdt_set_off_mem_rsvmap(new, mem_rsv_off);
-+
-+ memmove(new + struct_off, old + fdt_off_dt_struct(old), struct_size);
-+ fdt_set_off_dt_struct(new, struct_off);
-+ fdt_set_size_dt_struct(new, struct_size);
-+
-+ memmove(new + strings_off, old + fdt_off_dt_strings(old), strings_size);
-+ fdt_set_off_dt_strings(new, strings_off);
-+ fdt_set_size_dt_strings(new, fdt_size_dt_strings(old));
-+}
-+
-+int fdt_open_into(const void *fdt, void *buf, int bufsize)
-+{
-+ int err;
-+ int mem_rsv_size, struct_size;
-+ int newsize;
-+ const char *fdtstart = fdt;
-+ const char *fdtend = fdtstart + fdt_totalsize(fdt);
-+ char *tmp;
-+
-+ FDT_RO_PROBE(fdt);
-+
-+ mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
-+ * sizeof(struct fdt_reserve_entry);
-+
-+ if (can_assume(LATEST) || fdt_version(fdt) >= 17) {
-+ struct_size = fdt_size_dt_struct(fdt);
-+ } else if (fdt_version(fdt) == 16) {
-+ struct_size = 0;
-+ while (fdt_next_tag(fdt, struct_size, &struct_size) != FDT_END)
-+ ;
-+ if (struct_size < 0)
-+ return struct_size;
-+ } else {
-+ return -FDT_ERR_BADVERSION;
-+ }
-+
-+ if (can_assume(LIBFDT_ORDER) ||
-+ !fdt_blocks_misordered_(fdt, mem_rsv_size, struct_size)) {
-+ /* no further work necessary */
-+ err = fdt_move(fdt, buf, bufsize);
-+ if (err)
-+ return err;
-+ fdt_set_version(buf, 17);
-+ fdt_set_size_dt_struct(buf, struct_size);
-+ fdt_set_totalsize(buf, bufsize);
-+ return 0;
-+ }
-+
-+ /* Need to reorder */
-+ newsize = FDT_ALIGN(sizeof(struct fdt_header), 8) + mem_rsv_size
-+ + struct_size + fdt_size_dt_strings(fdt);
-+
-+ if (bufsize < newsize)
-+ return -FDT_ERR_NOSPACE;
-+
-+ /* First attempt to build converted tree at beginning of buffer */
-+ tmp = buf;
-+ /* But if that overlaps with the old tree... */
-+ if (((tmp + newsize) > fdtstart) && (tmp < fdtend)) {
-+ /* Try right after the old tree instead */
-+ tmp = (char *)(uintptr_t)fdtend;
-+ if ((tmp + newsize) > ((char *)buf + bufsize))
-+ return -FDT_ERR_NOSPACE;
-+ }
-+
-+ fdt_packblocks_(fdt, tmp, mem_rsv_size, struct_size,
-+ fdt_size_dt_strings(fdt));
-+ memmove(buf, tmp, newsize);
-+
-+ fdt_set_magic(buf, FDT_MAGIC);
-+ fdt_set_totalsize(buf, bufsize);
-+ fdt_set_version(buf, 17);
-+ fdt_set_last_comp_version(buf, 16);
-+ fdt_set_boot_cpuid_phys(buf, fdt_boot_cpuid_phys(fdt));
-+
-+ return 0;
-+}
-+
-+int fdt_pack(void *fdt)
-+{
-+ int mem_rsv_size;
-+
-+ FDT_RW_PROBE(fdt);
-+
-+ mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
-+ * sizeof(struct fdt_reserve_entry);
-+ fdt_packblocks_(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt),
-+ fdt_size_dt_strings(fdt));
-+ fdt_set_totalsize(fdt, fdt_data_size_(fdt));
-+
-+ return 0;
-+}
-diff --git a/common/libfdt/fdt_strerror.c b/common/libfdt/fdt_strerror.c
-new file mode 100644
-index 0000000..b435693
---- /dev/null
-+++ b/common/libfdt/fdt_strerror.c
-@@ -0,0 +1,59 @@
-+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
-+/*
-+ * libfdt - Flat Device Tree manipulation
-+ * Copyright (C) 2006 David Gibson, IBM Corporation.
-+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+ */
-+#include "libfdt_env.h"
-+
-+#include <fdt.h>
-+#include <libfdt.h>
-+
-+#include "libfdt_internal.h"
-+
-+struct fdt_errtabent {
-+ const char *str;
-+};
-+
-+#define FDT_ERRTABENT(val) \
-+ [(val)] = { .str = #val, }
-+
-+static struct fdt_errtabent fdt_errtable[] = {
-+ FDT_ERRTABENT(FDT_ERR_NOTFOUND),
-+ FDT_ERRTABENT(FDT_ERR_EXISTS),
-+ FDT_ERRTABENT(FDT_ERR_NOSPACE),
-+
-+ FDT_ERRTABENT(FDT_ERR_BADOFFSET),
-+ FDT_ERRTABENT(FDT_ERR_BADPATH),
-+ FDT_ERRTABENT(FDT_ERR_BADPHANDLE),
-+ FDT_ERRTABENT(FDT_ERR_BADSTATE),
-+
-+ FDT_ERRTABENT(FDT_ERR_TRUNCATED),
-+ FDT_ERRTABENT(FDT_ERR_BADMAGIC),
-+ FDT_ERRTABENT(FDT_ERR_BADVERSION),
-+ FDT_ERRTABENT(FDT_ERR_BADSTRUCTURE),
-+ FDT_ERRTABENT(FDT_ERR_BADLAYOUT),
-+ FDT_ERRTABENT(FDT_ERR_INTERNAL),
-+ FDT_ERRTABENT(FDT_ERR_BADNCELLS),
-+ FDT_ERRTABENT(FDT_ERR_BADVALUE),
-+ FDT_ERRTABENT(FDT_ERR_BADOVERLAY),
-+ FDT_ERRTABENT(FDT_ERR_NOPHANDLES),
-+ FDT_ERRTABENT(FDT_ERR_BADFLAGS),
-+};
-+#define FDT_ERRTABSIZE ((int)(sizeof(fdt_errtable) / sizeof(fdt_errtable[0])))
-+
-+const char *fdt_strerror(int errval)
-+{
-+ if (errval > 0)
-+ return "<valid offset/length>";
-+ else if (errval == 0)
-+ return "<no error>";
-+ else if (-errval < FDT_ERRTABSIZE) {
-+ const char *s = fdt_errtable[-errval].str;
-+
-+ if (s)
-+ return s;
-+ }
-+
-+ return "<unknown error>";
-+}
-diff --git a/common/libfdt/fdt_sw.c b/common/libfdt/fdt_sw.c
-new file mode 100644
-index 0000000..4c569ee
---- /dev/null
-+++ b/common/libfdt/fdt_sw.c
-@@ -0,0 +1,384 @@
-+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
-+/*
-+ * libfdt - Flat Device Tree manipulation
-+ * Copyright (C) 2006 David Gibson, IBM Corporation.
-+ */
-+#include "libfdt_env.h"
-+
-+#include <fdt.h>
-+#include <libfdt.h>
-+
-+#include "libfdt_internal.h"
-+
-+static int fdt_sw_probe_(void *fdt)
-+{
-+ if (!can_assume(VALID_INPUT)) {
-+ if (fdt_magic(fdt) == FDT_MAGIC)
-+ return -FDT_ERR_BADSTATE;
-+ else if (fdt_magic(fdt) != FDT_SW_MAGIC)
-+ return -FDT_ERR_BADMAGIC;
-+ }
-+
-+ return 0;
-+}
-+
-+#define FDT_SW_PROBE(fdt) \
-+ { \
-+ int err; \
-+ if ((err = fdt_sw_probe_(fdt)) != 0) \
-+ return err; \
-+ }
-+
-+/* 'memrsv' state: Initial state after fdt_create()
-+ *
-+ * Allowed functions:
-+ * fdt_add_reservemap_entry()
-+ * fdt_finish_reservemap() [moves to 'struct' state]
-+ */
-+static int fdt_sw_probe_memrsv_(void *fdt)
-+{
-+ int err = fdt_sw_probe_(fdt);
-+ if (err)
-+ return err;
-+
-+ if (!can_assume(VALID_INPUT) && fdt_off_dt_strings(fdt) != 0)
-+ return -FDT_ERR_BADSTATE;
-+ return 0;
-+}
-+
-+#define FDT_SW_PROBE_MEMRSV(fdt) \
-+ { \
-+ int err; \
-+ if ((err = fdt_sw_probe_memrsv_(fdt)) != 0) \
-+ return err; \
-+ }
-+
-+/* 'struct' state: Enter this state after fdt_finish_reservemap()
-+ *
-+ * Allowed functions:
-+ * fdt_begin_node()
-+ * fdt_end_node()
-+ * fdt_property*()
-+ * fdt_finish() [moves to 'complete' state]
-+ */
-+static int fdt_sw_probe_struct_(void *fdt)
-+{
-+ int err = fdt_sw_probe_(fdt);
-+ if (err)
-+ return err;
-+
-+ if (!can_assume(VALID_INPUT) &&
-+ fdt_off_dt_strings(fdt) != fdt_totalsize(fdt))
-+ return -FDT_ERR_BADSTATE;
-+ return 0;
-+}
-+
-+#define FDT_SW_PROBE_STRUCT(fdt) \
-+ { \
-+ int err; \
-+ if ((err = fdt_sw_probe_struct_(fdt)) != 0) \
-+ return err; \
-+ }
-+
-+static inline uint32_t sw_flags(void *fdt)
-+{
-+ /* assert: (fdt_magic(fdt) == FDT_SW_MAGIC) */
-+ return fdt_last_comp_version(fdt);
-+}
-+
-+/* 'complete' state: Enter this state after fdt_finish()
-+ *
-+ * Allowed functions: none
-+ */
-+
-+static void *fdt_grab_space_(void *fdt, size_t len)
-+{
-+ unsigned int offset = fdt_size_dt_struct(fdt);
-+ unsigned int spaceleft;
-+
-+ spaceleft = fdt_totalsize(fdt) - fdt_off_dt_struct(fdt)
-+ - fdt_size_dt_strings(fdt);
-+
-+ if ((offset + len < offset) || (offset + len > spaceleft))
-+ return NULL;
-+
-+ fdt_set_size_dt_struct(fdt, offset + len);
-+ return fdt_offset_ptr_w_(fdt, offset);
-+}
-+
-+int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags)
-+{
-+ const int hdrsize = FDT_ALIGN(sizeof(struct fdt_header),
-+ sizeof(struct fdt_reserve_entry));
-+ void *fdt = buf;
-+
-+ if (bufsize < hdrsize)
-+ return -FDT_ERR_NOSPACE;
-+
-+ if (flags & ~FDT_CREATE_FLAGS_ALL)
-+ return -FDT_ERR_BADFLAGS;
-+
-+ memset(buf, 0, bufsize);
-+
-+ /*
-+ * magic and last_comp_version keep intermediate state during the fdt
-+ * creation process, which is replaced with the proper FDT format by
-+ * fdt_finish().
-+ *
-+ * flags should be accessed with sw_flags().
-+ */
-+ fdt_set_magic(fdt, FDT_SW_MAGIC);
-+ fdt_set_version(fdt, FDT_LAST_SUPPORTED_VERSION);
-+ fdt_set_last_comp_version(fdt, flags);
-+
-+ fdt_set_totalsize(fdt, bufsize);
-+
-+ fdt_set_off_mem_rsvmap(fdt, hdrsize);
-+ fdt_set_off_dt_struct(fdt, fdt_off_mem_rsvmap(fdt));
-+ fdt_set_off_dt_strings(fdt, 0);
-+
-+ return 0;
-+}
-+
-+int fdt_create(void *buf, int bufsize)
-+{
-+ return fdt_create_with_flags(buf, bufsize, 0);
-+}
-+
-+int fdt_resize(void *fdt, void *buf, int bufsize)
-+{
-+ size_t headsize, tailsize;
-+ char *oldtail, *newtail;
-+
-+ FDT_SW_PROBE(fdt);
-+
-+ if (bufsize < 0)
-+ return -FDT_ERR_NOSPACE;
-+
-+ headsize = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
-+ tailsize = fdt_size_dt_strings(fdt);
-+
-+ if (!can_assume(VALID_DTB) &&
-+ headsize + tailsize > fdt_totalsize(fdt))
-+ return -FDT_ERR_INTERNAL;
-+
-+ if ((headsize + tailsize) > (unsigned)bufsize)
-+ return -FDT_ERR_NOSPACE;
-+
-+ oldtail = (char *)fdt + fdt_totalsize(fdt) - tailsize;
-+ newtail = (char *)buf + bufsize - tailsize;
-+
-+ /* Two cases to avoid clobbering data if the old and new
-+ * buffers partially overlap */
-+ if (buf <= fdt) {
-+ memmove(buf, fdt, headsize);
-+ memmove(newtail, oldtail, tailsize);
-+ } else {
-+ memmove(newtail, oldtail, tailsize);
-+ memmove(buf, fdt, headsize);
-+ }
-+
-+ fdt_set_totalsize(buf, bufsize);
-+ if (fdt_off_dt_strings(buf))
-+ fdt_set_off_dt_strings(buf, bufsize);
-+
-+ return 0;
-+}
-+
-+int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size)
-+{
-+ struct fdt_reserve_entry *re;
-+ int offset;
-+
-+ FDT_SW_PROBE_MEMRSV(fdt);
-+
-+ offset = fdt_off_dt_struct(fdt);
-+ if ((offset + sizeof(*re)) > fdt_totalsize(fdt))
-+ return -FDT_ERR_NOSPACE;
-+
-+ re = (struct fdt_reserve_entry *)((char *)fdt + offset);
-+ re->address = cpu_to_fdt64(addr);
-+ re->size = cpu_to_fdt64(size);
-+
-+ fdt_set_off_dt_struct(fdt, offset + sizeof(*re));
-+
-+ return 0;
-+}
-+
-+int fdt_finish_reservemap(void *fdt)
-+{
-+ int err = fdt_add_reservemap_entry(fdt, 0, 0);
-+
-+ if (err)
-+ return err;
-+
-+ fdt_set_off_dt_strings(fdt, fdt_totalsize(fdt));
-+ return 0;
-+}
-+
-+int fdt_begin_node(void *fdt, const char *name)
-+{
-+ struct fdt_node_header *nh;
-+ int namelen;
-+
-+ FDT_SW_PROBE_STRUCT(fdt);
-+
-+ namelen = strlen(name) + 1;
-+ nh = fdt_grab_space_(fdt, sizeof(*nh) + FDT_TAGALIGN(namelen));
-+ if (! nh)
-+ return -FDT_ERR_NOSPACE;
-+
-+ nh->tag = cpu_to_fdt32(FDT_BEGIN_NODE);
-+ memcpy(nh->name, name, namelen);
-+ return 0;
-+}
-+
-+int fdt_end_node(void *fdt)
-+{
-+ fdt32_t *en;
-+
-+ FDT_SW_PROBE_STRUCT(fdt);
-+
-+ en = fdt_grab_space_(fdt, FDT_TAGSIZE);
-+ if (! en)
-+ return -FDT_ERR_NOSPACE;
-+
-+ *en = cpu_to_fdt32(FDT_END_NODE);
-+ return 0;
-+}
-+
-+static int fdt_add_string_(void *fdt, const char *s)
-+{
-+ char *strtab = (char *)fdt + fdt_totalsize(fdt);
-+ unsigned int strtabsize = fdt_size_dt_strings(fdt);
-+ unsigned int len = strlen(s) + 1;
-+ unsigned int struct_top, offset;
-+
-+ offset = strtabsize + len;
-+ struct_top = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
-+ if (fdt_totalsize(fdt) - offset < struct_top)
-+ return 0; /* no more room :( */
-+
-+ memcpy(strtab - offset, s, len);
-+ fdt_set_size_dt_strings(fdt, strtabsize + len);
-+ return -offset;
-+}
-+
-+/* Must only be used to roll back in case of error */
-+static void fdt_del_last_string_(void *fdt, const char *s)
-+{
-+ int strtabsize = fdt_size_dt_strings(fdt);
-+ int len = strlen(s) + 1;
-+
-+ fdt_set_size_dt_strings(fdt, strtabsize - len);
-+}
-+
-+static int fdt_find_add_string_(void *fdt, const char *s, int *allocated)
-+{
-+ char *strtab = (char *)fdt + fdt_totalsize(fdt);
-+ int strtabsize = fdt_size_dt_strings(fdt);
-+ const char *p;
-+
-+ *allocated = 0;
-+
-+ p = fdt_find_string_(strtab - strtabsize, strtabsize, s);
-+ if (p)
-+ return p - strtab;
-+
-+ *allocated = 1;
-+
-+ return fdt_add_string_(fdt, s);
-+}
-+
-+int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp)
-+{
-+ struct fdt_property *prop;
-+ int nameoff;
-+ int allocated;
-+
-+ FDT_SW_PROBE_STRUCT(fdt);
-+
-+ /* String de-duplication can be slow, _NO_NAME_DEDUP skips it */
-+ if (sw_flags(fdt) & FDT_CREATE_FLAG_NO_NAME_DEDUP) {
-+ allocated = 1;
-+ nameoff = fdt_add_string_(fdt, name);
-+ } else {
-+ nameoff = fdt_find_add_string_(fdt, name, &allocated);
-+ }
-+ if (nameoff == 0)
-+ return -FDT_ERR_NOSPACE;
-+
-+ prop = fdt_grab_space_(fdt, sizeof(*prop) + FDT_TAGALIGN(len));
-+ if (! prop) {
-+ if (allocated)
-+ fdt_del_last_string_(fdt, name);
-+ return -FDT_ERR_NOSPACE;
-+ }
-+
-+ prop->tag = cpu_to_fdt32(FDT_PROP);
-+ prop->nameoff = cpu_to_fdt32(nameoff);
-+ prop->len = cpu_to_fdt32(len);
-+ *valp = prop->data;
-+ return 0;
-+}
-+
-+int fdt_property(void *fdt, const char *name, const void *val, int len)
-+{
-+ void *ptr;
-+ int ret;
-+
-+ ret = fdt_property_placeholder(fdt, name, len, &ptr);
-+ if (ret)
-+ return ret;
-+ memcpy(ptr, val, len);
-+ return 0;
-+}
-+
-+int fdt_finish(void *fdt)
-+{
-+ char *p = (char *)fdt;
-+ fdt32_t *end;
-+ int oldstroffset, newstroffset;
-+ uint32_t tag;
-+ int offset, nextoffset;
-+
-+ FDT_SW_PROBE_STRUCT(fdt);
-+
-+ /* Add terminator */
-+ end = fdt_grab_space_(fdt, sizeof(*end));
-+ if (! end)
-+ return -FDT_ERR_NOSPACE;
-+ *end = cpu_to_fdt32(FDT_END);
-+
-+ /* Relocate the string table */
-+ oldstroffset = fdt_totalsize(fdt) - fdt_size_dt_strings(fdt);
-+ newstroffset = fdt_off_dt_struct(fdt) + fdt_size_dt_struct(fdt);
-+ memmove(p + newstroffset, p + oldstroffset, fdt_size_dt_strings(fdt));
-+ fdt_set_off_dt_strings(fdt, newstroffset);
-+
-+ /* Walk the structure, correcting string offsets */
-+ offset = 0;
-+ while ((tag = fdt_next_tag(fdt, offset, &nextoffset)) != FDT_END) {
-+ if (tag == FDT_PROP) {
-+ struct fdt_property *prop =
-+ fdt_offset_ptr_w_(fdt, offset);
-+ int nameoff;
-+
-+ nameoff = fdt32_to_cpu(prop->nameoff);
-+ nameoff += fdt_size_dt_strings(fdt);
-+ prop->nameoff = cpu_to_fdt32(nameoff);
-+ }
-+ offset = nextoffset;
-+ }
-+ if (nextoffset < 0)
-+ return nextoffset;
-+
-+ /* Finally, adjust the header */
-+ fdt_set_totalsize(fdt, newstroffset + fdt_size_dt_strings(fdt));
-+
-+ /* And fix up fields that were keeping intermediate state. */
-+ fdt_set_last_comp_version(fdt, FDT_LAST_COMPATIBLE_VERSION);
-+ fdt_set_magic(fdt, FDT_MAGIC);
-+
-+ return 0;
-+}
-diff --git a/common/libfdt/fdt_wip.c b/common/libfdt/fdt_wip.c
-new file mode 100644
-index 0000000..c2d7566
---- /dev/null
-+++ b/common/libfdt/fdt_wip.c
-@@ -0,0 +1,94 @@
-+// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
-+/*
-+ * libfdt - Flat Device Tree manipulation
-+ * Copyright (C) 2006 David Gibson, IBM Corporation.
-+ */
-+#include "libfdt_env.h"
-+
-+#include <fdt.h>
-+#include <libfdt.h>
-+
-+#include "libfdt_internal.h"
-+
-+int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
-+ const char *name, int namelen,
-+ uint32_t idx, const void *val,
-+ int len)
-+{
-+ void *propval;
-+ int proplen;
-+
-+ propval = fdt_getprop_namelen_w(fdt, nodeoffset, name, namelen,
-+ &proplen);
-+ if (!propval)
-+ return proplen;
-+
-+ if ((unsigned)proplen < (len + idx))
-+ return -FDT_ERR_NOSPACE;
-+
-+ memcpy((char *)propval + idx, val, len);
-+ return 0;
-+}
-+
-+int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
-+ const void *val, int len)
-+{
-+ const void *propval;
-+ int proplen;
-+
-+ propval = fdt_getprop(fdt, nodeoffset, name, &proplen);
-+ if (!propval)
-+ return proplen;
-+
-+ if (proplen != len)
-+ return -FDT_ERR_NOSPACE;
-+
-+ return fdt_setprop_inplace_namelen_partial(fdt, nodeoffset, name,
-+ strlen(name), 0,
-+ val, len);
-+}
-+
-+static void fdt_nop_region_(void *start, int len)
-+{
-+ fdt32_t *p;
-+
-+ for (p = start; (char *)p < ((char *)start + len); p++)
-+ *p = cpu_to_fdt32(FDT_NOP);
-+}
-+
-+int fdt_nop_property(void *fdt, int nodeoffset, const char *name)
-+{
-+ struct fdt_property *prop;
-+ int len;
-+
-+ prop = fdt_get_property_w(fdt, nodeoffset, name, &len);
-+ if (!prop)
-+ return len;
-+
-+ fdt_nop_region_(prop, len + sizeof(*prop));
-+
-+ return 0;
-+}
-+
-+int fdt_node_end_offset_(void *fdt, int offset)
-+{
-+ int depth = 0;
-+
-+ while ((offset >= 0) && (depth >= 0))
-+ offset = fdt_next_node(fdt, offset, &depth);
-+
-+ return offset;
-+}
-+
-+int fdt_nop_node(void *fdt, int nodeoffset)
-+{
-+ int endoffset;
-+
-+ endoffset = fdt_node_end_offset_(fdt, nodeoffset);
-+ if (endoffset < 0)
-+ return endoffset;
-+
-+ fdt_nop_region_(fdt_offset_ptr_w(fdt, nodeoffset, 0),
-+ endoffset - nodeoffset);
-+ return 0;
-+}
-diff --git a/common/libfdt/libfdt_internal.h b/common/libfdt/libfdt_internal.h
-new file mode 100644
-index 0000000..16bda19
---- /dev/null
-+++ b/common/libfdt/libfdt_internal.h
-@@ -0,0 +1,192 @@
-+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
-+#ifndef LIBFDT_INTERNAL_H
-+#define LIBFDT_INTERNAL_H
-+/*
-+ * libfdt - Flat Device Tree manipulation
-+ * Copyright (C) 2006 David Gibson, IBM Corporation.
-+ */
-+#include <fdt.h>
-+
-+#define FDT_ALIGN(x, a) (((x) + (a) - 1) & ~((a) - 1))
-+#define FDT_TAGALIGN(x) (FDT_ALIGN((x), FDT_TAGSIZE))
-+
-+int32_t fdt_ro_probe_(const void *fdt);
-+#define FDT_RO_PROBE(fdt) \
-+ { \
-+ int32_t totalsize_; \
-+ if ((totalsize_ = fdt_ro_probe_(fdt)) < 0) \
-+ return totalsize_; \
-+ }
-+
-+int fdt_check_node_offset_(const void *fdt, int offset);
-+int fdt_check_prop_offset_(const void *fdt, int offset);
-+const char *fdt_find_string_(const char *strtab, int tabsize, const char *s);
-+int fdt_node_end_offset_(void *fdt, int nodeoffset);
-+
-+static inline const void *fdt_offset_ptr_(const void *fdt, int offset)
-+{
-+ return (const char *)fdt + fdt_off_dt_struct(fdt) + offset;
-+}
-+
-+static inline void *fdt_offset_ptr_w_(void *fdt, int offset)
-+{
-+ return (void *)(uintptr_t)fdt_offset_ptr_(fdt, offset);
-+}
-+
-+static inline const struct fdt_reserve_entry *fdt_mem_rsv_(const void *fdt, int n)
-+{
-+ const struct fdt_reserve_entry *rsv_table =
-+ (const struct fdt_reserve_entry *)
-+ ((const char *)fdt + fdt_off_mem_rsvmap(fdt));
-+
-+ return rsv_table + n;
-+}
-+static inline struct fdt_reserve_entry *fdt_mem_rsv_w_(void *fdt, int n)
-+{
-+ return (void *)(uintptr_t)fdt_mem_rsv_(fdt, n);
-+}
-+
-+/*
-+ * Internal helpers to access tructural elements of the device tree
-+ * blob (rather than for exaple reading integers from within property
-+ * values). We assume that we are either given a naturally aligned
-+ * address for the platform or if we are not, we are on a platform
-+ * where unaligned memory reads will be handled in a graceful manner.
-+ * If not the external helpers fdtXX_ld() from libfdt.h can be used
-+ * instead.
-+ */
-+static inline uint32_t fdt32_ld_(const fdt32_t *p)
-+{
-+ return fdt32_to_cpu(*p);
-+}
-+
-+static inline uint64_t fdt64_ld_(const fdt64_t *p)
-+{
-+ return fdt64_to_cpu(*p);
-+}
-+
-+#define FDT_SW_MAGIC (~FDT_MAGIC)
-+
-+/**********************************************************************/
-+/* Checking controls */
-+/**********************************************************************/
-+
-+#ifndef FDT_ASSUME_MASK
-+#define FDT_ASSUME_MASK 0
-+#endif
-+
-+/*
-+ * Defines assumptions which can be enabled. Each of these can be enabled
-+ * individually. For maximum safety, don't enable any assumptions!
-+ *
-+ * For minimal code size and no safety, use ASSUME_PERFECT at your own risk.
-+ * You should have another method of validating the device tree, such as a
-+ * signature or hash check before using libfdt.
-+ *
-+ * For situations where security is not a concern it may be safe to enable
-+ * ASSUME_SANE.
-+ */
-+enum {
-+ /*
-+ * This does essentially no checks. Only the latest device-tree
-+ * version is correctly handled. Inconsistencies or errors in the device
-+ * tree may cause undefined behaviour or crashes. Invalid parameters
-+ * passed to libfdt may do the same.
-+ *
-+ * If an error occurs when modifying the tree it may leave the tree in
-+ * an intermediate (but valid) state. As an example, adding a property
-+ * where there is insufficient space may result in the property name
-+ * being added to the string table even though the property itself is
-+ * not added to the struct section.
-+ *
-+ * Only use this if you have a fully validated device tree with
-+ * the latest supported version and wish to minimise code size.
-+ */
-+ ASSUME_PERFECT = 0xff,
-+
-+ /*
-+ * This assumes that the device tree is sane. i.e. header metadata
-+ * and basic hierarchy are correct.
-+ *
-+ * With this assumption enabled, normal device trees produced by libfdt
-+ * and the compiler should be handled safely. Malicious device trees and
-+ * complete garbage may cause libfdt to behave badly or crash. Truncated
-+ * device trees (e.g. those only partially loaded) can also cause
-+ * problems.
-+ *
-+ * Note: Only checks that relate exclusively to the device tree itself
-+ * (not the parameters passed to libfdt) are disabled by this
-+ * assumption. This includes checking headers, tags and the like.
-+ */
-+ ASSUME_VALID_DTB = 1 << 0,
-+
-+ /*
-+ * This builds on ASSUME_VALID_DTB and further assumes that libfdt
-+ * functions are called with valid parameters, i.e. not trigger
-+ * FDT_ERR_BADOFFSET or offsets that are out of bounds. It disables any
-+ * extensive checking of parameters and the device tree, making various
-+ * assumptions about correctness.
-+ *
-+ * It doesn't make sense to enable this assumption unless
-+ * ASSUME_VALID_DTB is also enabled.
-+ */
-+ ASSUME_VALID_INPUT = 1 << 1,
-+
-+ /*
-+ * This disables checks for device-tree version and removes all code
-+ * which handles older versions.
-+ *
-+ * Only enable this if you know you have a device tree with the latest
-+ * version.
-+ */
-+ ASSUME_LATEST = 1 << 2,
-+
-+ /*
-+ * This assumes that it is OK for a failed addition to the device tree,
-+ * due to lack of space or some other problem, to skip any rollback
-+ * steps (such as dropping the property name from the string table).
-+ * This is safe to enable in most circumstances, even though it may
-+ * leave the tree in a sub-optimal state.
-+ */
-+ ASSUME_NO_ROLLBACK = 1 << 3,
-+
-+ /*
-+ * This assumes that the device tree components appear in a 'convenient'
-+ * order, i.e. the memory reservation block first, then the structure
-+ * block and finally the string block.
-+ *
-+ * This order is not specified by the device-tree specification,
-+ * but is expected by libfdt. The device-tree compiler always created
-+ * device trees with this order.
-+ *
-+ * This assumption disables a check in fdt_open_into() and removes the
-+ * ability to fix the problem there. This is safe if you know that the
-+ * device tree is correctly ordered. See fdt_blocks_misordered_().
-+ */
-+ ASSUME_LIBFDT_ORDER = 1 << 4,
-+
-+ /*
-+ * This assumes that libfdt itself does not have any internal bugs. It
-+ * drops certain checks that should never be needed unless libfdt has an
-+ * undiscovered bug.
-+ *
-+ * This can generally be considered safe to enable.
-+ */
-+ ASSUME_LIBFDT_FLAWLESS = 1 << 5,
-+};
-+
-+/**
-+ * can_assume_() - check if a particular assumption is enabled
-+ *
-+ * @mask: Mask to check (ASSUME_...)
-+ * @return true if that assumption is enabled, else false
-+ */
-+static inline bool can_assume_(int mask)
-+{
-+ return FDT_ASSUME_MASK & mask;
-+}
-+
-+/** helper macros for checking assumptions */
-+#define can_assume(_assume) can_assume_(ASSUME_ ## _assume)
-+
-+#endif /* LIBFDT_INTERNAL_H */
-diff --git a/include/fdt.h b/include/fdt.h
-new file mode 100644
-index 0000000..f2e6880
---- /dev/null
-+++ b/include/fdt.h
-@@ -0,0 +1,66 @@
-+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
-+#ifndef FDT_H
-+#define FDT_H
-+/*
-+ * libfdt - Flat Device Tree manipulation
-+ * Copyright (C) 2006 David Gibson, IBM Corporation.
-+ * Copyright 2012 Kim Phillips, Freescale Semiconductor.
-+ */
-+
-+#ifndef __ASSEMBLY__
-+
-+struct fdt_header {
-+ fdt32_t magic; /* magic word FDT_MAGIC */
-+ fdt32_t totalsize; /* total size of DT block */
-+ fdt32_t off_dt_struct; /* offset to structure */
-+ fdt32_t off_dt_strings; /* offset to strings */
-+ fdt32_t off_mem_rsvmap; /* offset to memory reserve map */
-+ fdt32_t version; /* format version */
-+ fdt32_t last_comp_version; /* last compatible version */
-+
-+ /* version 2 fields below */
-+ fdt32_t boot_cpuid_phys; /* Which physical CPU id we're
-+ booting on */
-+ /* version 3 fields below */
-+ fdt32_t size_dt_strings; /* size of the strings block */
-+
-+ /* version 17 fields below */
-+ fdt32_t size_dt_struct; /* size of the structure block */
-+};
-+
-+struct fdt_reserve_entry {
-+ fdt64_t address;
-+ fdt64_t size;
-+};
-+
-+struct fdt_node_header {
-+ fdt32_t tag;
-+ char name[0];
-+};
-+
-+struct fdt_property {
-+ fdt32_t tag;
-+ fdt32_t len;
-+ fdt32_t nameoff;
-+ char data[0];
-+};
-+
-+#endif /* !__ASSEMBLY */
-+
-+#define FDT_MAGIC 0xd00dfeed /* 4: version, 4: total size */
-+#define FDT_TAGSIZE sizeof(fdt32_t)
-+
-+#define FDT_BEGIN_NODE 0x1 /* Start node: full name */
-+#define FDT_END_NODE 0x2 /* End node */
-+#define FDT_PROP 0x3 /* Property: name off,
-+ size, content */
-+#define FDT_NOP 0x4 /* nop */
-+#define FDT_END 0x9
-+
-+#define FDT_V1_SIZE (7*sizeof(fdt32_t))
-+#define FDT_V2_SIZE (FDT_V1_SIZE + sizeof(fdt32_t))
-+#define FDT_V3_SIZE (FDT_V2_SIZE + sizeof(fdt32_t))
-+#define FDT_V16_SIZE FDT_V3_SIZE
-+#define FDT_V17_SIZE (FDT_V16_SIZE + sizeof(fdt32_t))
-+
-+#endif /* FDT_H */
-diff --git a/include/libfdt.h b/include/libfdt.h
-new file mode 100644
-index 0000000..a7f432c
---- /dev/null
-+++ b/include/libfdt.h
-@@ -0,0 +1,2147 @@
-+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
-+#ifndef LIBFDT_H
-+#define LIBFDT_H
-+/*
-+ * libfdt - Flat Device Tree manipulation
-+ * Copyright (C) 2006 David Gibson, IBM Corporation.
-+ */
-+
-+#include <libfdt_env.h>
-+#include <fdt.h>
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+#define FDT_FIRST_SUPPORTED_VERSION 0x02
-+#define FDT_LAST_COMPATIBLE_VERSION 0x10
-+#define FDT_LAST_SUPPORTED_VERSION 0x11
-+
-+/* Error codes: informative error codes */
-+#define FDT_ERR_NOTFOUND 1
-+ /* FDT_ERR_NOTFOUND: The requested node or property does not exist */
-+#define FDT_ERR_EXISTS 2
-+ /* FDT_ERR_EXISTS: Attempted to create a node or property which
-+ * already exists */
-+#define FDT_ERR_NOSPACE 3
-+ /* FDT_ERR_NOSPACE: Operation needed to expand the device
-+ * tree, but its buffer did not have sufficient space to
-+ * contain the expanded tree. Use fdt_open_into() to move the
-+ * device tree to a buffer with more space. */
-+
-+/* Error codes: codes for bad parameters */
-+#define FDT_ERR_BADOFFSET 4
-+ /* FDT_ERR_BADOFFSET: Function was passed a structure block
-+ * offset which is out-of-bounds, or which points to an
-+ * unsuitable part of the structure for the operation. */
-+#define FDT_ERR_BADPATH 5
-+ /* FDT_ERR_BADPATH: Function was passed a badly formatted path
-+ * (e.g. missing a leading / for a function which requires an
-+ * absolute path) */
-+#define FDT_ERR_BADPHANDLE 6
-+ /* FDT_ERR_BADPHANDLE: Function was passed an invalid phandle.
-+ * This can be caused either by an invalid phandle property
-+ * length, or the phandle value was either 0 or -1, which are
-+ * not permitted. */
-+#define FDT_ERR_BADSTATE 7
-+ /* FDT_ERR_BADSTATE: Function was passed an incomplete device
-+ * tree created by the sequential-write functions, which is
-+ * not sufficiently complete for the requested operation. */
-+
-+/* Error codes: codes for bad device tree blobs */
-+#define FDT_ERR_TRUNCATED 8
-+ /* FDT_ERR_TRUNCATED: FDT or a sub-block is improperly
-+ * terminated (overflows, goes outside allowed bounds, or
-+ * isn't properly terminated). */
-+#define FDT_ERR_BADMAGIC 9
-+ /* FDT_ERR_BADMAGIC: Given "device tree" appears not to be a
-+ * device tree at all - it is missing the flattened device
-+ * tree magic number. */
-+#define FDT_ERR_BADVERSION 10
-+ /* FDT_ERR_BADVERSION: Given device tree has a version which
-+ * can't be handled by the requested operation. For
-+ * read-write functions, this may mean that fdt_open_into() is
-+ * required to convert the tree to the expected version. */
-+#define FDT_ERR_BADSTRUCTURE 11
-+ /* FDT_ERR_BADSTRUCTURE: Given device tree has a corrupt
-+ * structure block or other serious error (e.g. misnested
-+ * nodes, or subnodes preceding properties). */
-+#define FDT_ERR_BADLAYOUT 12
-+ /* FDT_ERR_BADLAYOUT: For read-write functions, the given
-+ * device tree has it's sub-blocks in an order that the
-+ * function can't handle (memory reserve map, then structure,
-+ * then strings). Use fdt_open_into() to reorganize the tree
-+ * into a form suitable for the read-write operations. */
-+
-+/* "Can't happen" error indicating a bug in libfdt */
-+#define FDT_ERR_INTERNAL 13
-+ /* FDT_ERR_INTERNAL: libfdt has failed an internal assertion.
-+ * Should never be returned, if it is, it indicates a bug in
-+ * libfdt itself. */
-+
-+/* Errors in device tree content */
-+#define FDT_ERR_BADNCELLS 14
-+ /* FDT_ERR_BADNCELLS: Device tree has a #address-cells, #size-cells
-+ * or similar property with a bad format or value */
-+
-+#define FDT_ERR_BADVALUE 15
-+ /* FDT_ERR_BADVALUE: Device tree has a property with an unexpected
-+ * value. For example: a property expected to contain a string list
-+ * is not NUL-terminated within the length of its value. */
-+
-+#define FDT_ERR_BADOVERLAY 16
-+ /* FDT_ERR_BADOVERLAY: The device tree overlay, while
-+ * correctly structured, cannot be applied due to some
-+ * unexpected or missing value, property or node. */
-+
-+#define FDT_ERR_NOPHANDLES 17
-+ /* FDT_ERR_NOPHANDLES: The device tree doesn't have any
-+ * phandle available anymore without causing an overflow */
-+
-+#define FDT_ERR_BADFLAGS 18
-+ /* FDT_ERR_BADFLAGS: The function was passed a flags field that
-+ * contains invalid flags or an invalid combination of flags. */
-+
-+#define FDT_ERR_ALIGNMENT 19
-+ /* FDT_ERR_ALIGNMENT: The device tree base address is not 8-byte
-+ * aligned. */
-+
-+#define FDT_ERR_MAX 19
-+
-+/* constants */
-+#define FDT_MAX_PHANDLE 0xfffffffe
-+ /* Valid values for phandles range from 1 to 2^32-2. */
-+
-+/**********************************************************************/
-+/* Low-level functions (you probably don't need these) */
-+/**********************************************************************/
-+
-+#ifndef SWIG /* This function is not useful in Python */
-+const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int checklen);
-+#endif
-+static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)
-+{
-+ return (void *)(uintptr_t)fdt_offset_ptr(fdt, offset, checklen);
-+}
-+
-+uint32_t fdt_next_tag(const void *fdt, int offset, int *nextoffset);
-+
-+/*
-+ * External helpers to access words from a device tree blob. They're built
-+ * to work even with unaligned pointers on platforms (such as ARMv5) that don't
-+ * like unaligned loads and stores.
-+ */
-+static inline uint16_t fdt16_ld(const fdt16_t *p)
-+{
-+ const uint8_t *bp = (const uint8_t *)p;
-+
-+ return ((uint16_t)bp[0] << 8) | bp[1];
-+}
-+
-+static inline uint32_t fdt32_ld(const fdt32_t *p)
-+{
-+ const uint8_t *bp = (const uint8_t *)p;
-+
-+ return ((uint32_t)bp[0] << 24)
-+ | ((uint32_t)bp[1] << 16)
-+ | ((uint32_t)bp[2] << 8)
-+ | bp[3];
-+}
-+
-+static inline void fdt32_st(void *property, uint32_t value)
-+{
-+ uint8_t *bp = (uint8_t *)property;
-+
-+ bp[0] = value >> 24;
-+ bp[1] = (value >> 16) & 0xff;
-+ bp[2] = (value >> 8) & 0xff;
-+ bp[3] = value & 0xff;
-+}
-+
-+static inline uint64_t fdt64_ld(const fdt64_t *p)
-+{
-+ const uint8_t *bp = (const uint8_t *)p;
-+
-+ return ((uint64_t)bp[0] << 56)
-+ | ((uint64_t)bp[1] << 48)
-+ | ((uint64_t)bp[2] << 40)
-+ | ((uint64_t)bp[3] << 32)
-+ | ((uint64_t)bp[4] << 24)
-+ | ((uint64_t)bp[5] << 16)
-+ | ((uint64_t)bp[6] << 8)
-+ | bp[7];
-+}
-+
-+static inline void fdt64_st(void *property, uint64_t value)
-+{
-+ uint8_t *bp = (uint8_t *)property;
-+
-+ bp[0] = value >> 56;
-+ bp[1] = (value >> 48) & 0xff;
-+ bp[2] = (value >> 40) & 0xff;
-+ bp[3] = (value >> 32) & 0xff;
-+ bp[4] = (value >> 24) & 0xff;
-+ bp[5] = (value >> 16) & 0xff;
-+ bp[6] = (value >> 8) & 0xff;
-+ bp[7] = value & 0xff;
-+}
-+
-+/**********************************************************************/
-+/* Traversal functions */
-+/**********************************************************************/
-+
-+int fdt_next_node(const void *fdt, int offset, int *depth);
-+
-+/**
-+ * fdt_first_subnode() - get offset of first direct subnode
-+ * @fdt: FDT blob
-+ * @offset: Offset of node to check
-+ *
-+ * Return: offset of first subnode, or -FDT_ERR_NOTFOUND if there is none
-+ */
-+int fdt_first_subnode(const void *fdt, int offset);
-+
-+/**
-+ * fdt_next_subnode() - get offset of next direct subnode
-+ * @fdt: FDT blob
-+ * @offset: Offset of previous subnode
-+ *
-+ * After first calling fdt_first_subnode(), call this function repeatedly to
-+ * get direct subnodes of a parent node.
-+ *
-+ * Return: offset of next subnode, or -FDT_ERR_NOTFOUND if there are no more
-+ * subnodes
-+ */
-+int fdt_next_subnode(const void *fdt, int offset);
-+
-+/**
-+ * fdt_for_each_subnode - iterate over all subnodes of a parent
-+ *
-+ * @node: child node (int, lvalue)
-+ * @fdt: FDT blob (const void *)
-+ * @parent: parent node (int)
-+ *
-+ * This is actually a wrapper around a for loop and would be used like so:
-+ *
-+ * fdt_for_each_subnode(node, fdt, parent) {
-+ * Use node
-+ * ...
-+ * }
-+ *
-+ * if ((node < 0) && (node != -FDT_ERR_NOTFOUND)) {
-+ * Error handling
-+ * }
-+ *
-+ * Note that this is implemented as a macro and @node is used as
-+ * iterator in the loop. The parent variable be constant or even a
-+ * literal.
-+ */
-+#define fdt_for_each_subnode(node, fdt, parent) \
-+ for (node = fdt_first_subnode(fdt, parent); \
-+ node >= 0; \
-+ node = fdt_next_subnode(fdt, node))
-+
-+/**********************************************************************/
-+/* General functions */
-+/**********************************************************************/
-+#define fdt_get_header(fdt, field) \
-+ (fdt32_ld(&((const struct fdt_header *)(fdt))->field))
-+#define fdt_magic(fdt) (fdt_get_header(fdt, magic))
-+#define fdt_totalsize(fdt) (fdt_get_header(fdt, totalsize))
-+#define fdt_off_dt_struct(fdt) (fdt_get_header(fdt, off_dt_struct))
-+#define fdt_off_dt_strings(fdt) (fdt_get_header(fdt, off_dt_strings))
-+#define fdt_off_mem_rsvmap(fdt) (fdt_get_header(fdt, off_mem_rsvmap))
-+#define fdt_version(fdt) (fdt_get_header(fdt, version))
-+#define fdt_last_comp_version(fdt) (fdt_get_header(fdt, last_comp_version))
-+#define fdt_boot_cpuid_phys(fdt) (fdt_get_header(fdt, boot_cpuid_phys))
-+#define fdt_size_dt_strings(fdt) (fdt_get_header(fdt, size_dt_strings))
-+#define fdt_size_dt_struct(fdt) (fdt_get_header(fdt, size_dt_struct))
-+
-+#define fdt_set_hdr_(name) \
-+ static inline void fdt_set_##name(void *fdt, uint32_t val) \
-+ { \
-+ struct fdt_header *fdth = (struct fdt_header *)fdt; \
-+ fdth->name = cpu_to_fdt32(val); \
-+ }
-+fdt_set_hdr_(magic);
-+fdt_set_hdr_(totalsize);
-+fdt_set_hdr_(off_dt_struct);
-+fdt_set_hdr_(off_dt_strings);
-+fdt_set_hdr_(off_mem_rsvmap);
-+fdt_set_hdr_(version);
-+fdt_set_hdr_(last_comp_version);
-+fdt_set_hdr_(boot_cpuid_phys);
-+fdt_set_hdr_(size_dt_strings);
-+fdt_set_hdr_(size_dt_struct);
-+#undef fdt_set_hdr_
-+
-+/**
-+ * fdt_header_size - return the size of the tree's header
-+ * @fdt: pointer to a flattened device tree
-+ *
-+ * Return: size of DTB header in bytes
-+ */
-+size_t fdt_header_size(const void *fdt);
-+
-+/**
-+ * fdt_header_size_ - internal function to get header size from a version number
-+ * @version: devicetree version number
-+ *
-+ * Return: size of DTB header in bytes
-+ */
-+size_t fdt_header_size_(uint32_t version);
-+
-+/**
-+ * fdt_check_header - sanity check a device tree header
-+ * @fdt: pointer to data which might be a flattened device tree
-+ *
-+ * fdt_check_header() checks that the given buffer contains what
-+ * appears to be a flattened device tree, and that the header contains
-+ * valid information (to the extent that can be determined from the
-+ * header alone).
-+ *
-+ * returns:
-+ * 0, if the buffer appears to contain a valid device tree
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_TRUNCATED, standard meanings, as above
-+ */
-+int fdt_check_header(const void *fdt);
-+
-+/**
-+ * fdt_move - move a device tree around in memory
-+ * @fdt: pointer to the device tree to move
-+ * @buf: pointer to memory where the device is to be moved
-+ * @bufsize: size of the memory space at buf
-+ *
-+ * fdt_move() relocates, if possible, the device tree blob located at
-+ * fdt to the buffer at buf of size bufsize. The buffer may overlap
-+ * with the existing device tree blob at fdt. Therefore,
-+ * fdt_move(fdt, fdt, fdt_totalsize(fdt))
-+ * should always succeed.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, bufsize is insufficient to contain the device tree
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE, standard meanings
-+ */
-+int fdt_move(const void *fdt, void *buf, int bufsize);
-+
-+/**********************************************************************/
-+/* Read-only functions */
-+/**********************************************************************/
-+
-+int fdt_check_full(const void *fdt, size_t bufsize);
-+
-+/**
-+ * fdt_get_string - retrieve a string from the strings block of a device tree
-+ * @fdt: pointer to the device tree blob
-+ * @stroffset: offset of the string within the strings block (native endian)
-+ * @lenp: optional pointer to return the string's length
-+ *
-+ * fdt_get_string() retrieves a pointer to a single string from the
-+ * strings block of the device tree blob at fdt, and optionally also
-+ * returns the string's length in *lenp.
-+ *
-+ * returns:
-+ * a pointer to the string, on success
-+ * NULL, if stroffset is out of bounds, or doesn't point to a valid string
-+ */
-+const char *fdt_get_string(const void *fdt, int stroffset, int *lenp);
-+
-+/**
-+ * fdt_string - retrieve a string from the strings block of a device tree
-+ * @fdt: pointer to the device tree blob
-+ * @stroffset: offset of the string within the strings block (native endian)
-+ *
-+ * fdt_string() retrieves a pointer to a single string from the
-+ * strings block of the device tree blob at fdt.
-+ *
-+ * returns:
-+ * a pointer to the string, on success
-+ * NULL, if stroffset is out of bounds, or doesn't point to a valid string
-+ */
-+const char *fdt_string(const void *fdt, int stroffset);
-+
-+/**
-+ * fdt_find_max_phandle - find and return the highest phandle in a tree
-+ * @fdt: pointer to the device tree blob
-+ * @phandle: return location for the highest phandle value found in the tree
-+ *
-+ * fdt_find_max_phandle() finds the highest phandle value in the given device
-+ * tree. The value returned in @phandle is only valid if the function returns
-+ * success.
-+ *
-+ * returns:
-+ * 0 on success or a negative error code on failure
-+ */
-+int fdt_find_max_phandle(const void *fdt, uint32_t *phandle);
-+
-+/**
-+ * fdt_get_max_phandle - retrieves the highest phandle in a tree
-+ * @fdt: pointer to the device tree blob
-+ *
-+ * fdt_get_max_phandle retrieves the highest phandle in the given
-+ * device tree. This will ignore badly formatted phandles, or phandles
-+ * with a value of 0 or -1.
-+ *
-+ * This function is deprecated in favour of fdt_find_max_phandle().
-+ *
-+ * returns:
-+ * the highest phandle on success
-+ * 0, if no phandle was found in the device tree
-+ * -1, if an error occurred
-+ */
-+static inline uint32_t fdt_get_max_phandle(const void *fdt)
-+{
-+ uint32_t phandle;
-+ int err;
-+
-+ err = fdt_find_max_phandle(fdt, &phandle);
-+ if (err < 0)
-+ return (uint32_t)-1;
-+
-+ return phandle;
-+}
-+
-+/**
-+ * fdt_generate_phandle - return a new, unused phandle for a device tree blob
-+ * @fdt: pointer to the device tree blob
-+ * @phandle: return location for the new phandle
-+ *
-+ * Walks the device tree blob and looks for the highest phandle value. On
-+ * success, the new, unused phandle value (one higher than the previously
-+ * highest phandle value in the device tree blob) will be returned in the
-+ * @phandle parameter.
-+ *
-+ * Return: 0 on success or a negative error-code on failure
-+ */
-+int fdt_generate_phandle(const void *fdt, uint32_t *phandle);
-+
-+/**
-+ * fdt_num_mem_rsv - retrieve the number of memory reserve map entries
-+ * @fdt: pointer to the device tree blob
-+ *
-+ * Returns the number of entries in the device tree blob's memory
-+ * reservation map. This does not include the terminating 0,0 entry
-+ * or any other (0,0) entries reserved for expansion.
-+ *
-+ * returns:
-+ * the number of entries
-+ */
-+int fdt_num_mem_rsv(const void *fdt);
-+
-+/**
-+ * fdt_get_mem_rsv - retrieve one memory reserve map entry
-+ * @fdt: pointer to the device tree blob
-+ * @n: index of reserve map entry
-+ * @address: pointer to 64-bit variable to hold the start address
-+ * @size: pointer to 64-bit variable to hold the size of the entry
-+ *
-+ * On success, @address and @size will contain the address and size of
-+ * the n-th reserve map entry from the device tree blob, in
-+ * native-endian format.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE, standard meanings
-+ */
-+int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t *size);
-+
-+/**
-+ * fdt_subnode_offset_namelen - find a subnode based on substring
-+ * @fdt: pointer to the device tree blob
-+ * @parentoffset: structure block offset of a node
-+ * @name: name of the subnode to locate
-+ * @namelen: number of characters of name to consider
-+ *
-+ * Identical to fdt_subnode_offset(), but only examine the first
-+ * namelen characters of name for matching the subnode name. This is
-+ * useful for finding subnodes based on a portion of a larger string,
-+ * such as a full path.
-+ *
-+ * Return: offset of the subnode or -FDT_ERR_NOTFOUND if name not found.
-+ */
-+#ifndef SWIG /* Not available in Python */
-+int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
-+ const char *name, int namelen);
-+#endif
-+/**
-+ * fdt_subnode_offset - find a subnode of a given node
-+ * @fdt: pointer to the device tree blob
-+ * @parentoffset: structure block offset of a node
-+ * @name: name of the subnode to locate
-+ *
-+ * fdt_subnode_offset() finds a subnode of the node at structure block
-+ * offset parentoffset with the given name. name may include a unit
-+ * address, in which case fdt_subnode_offset() will find the subnode
-+ * with that unit address, or the unit address may be omitted, in
-+ * which case fdt_subnode_offset() will find an arbitrary subnode
-+ * whose name excluding unit address matches the given name.
-+ *
-+ * returns:
-+ * structure block offset of the requested subnode (>=0), on success
-+ * -FDT_ERR_NOTFOUND, if the requested subnode does not exist
-+ * -FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE
-+ * tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_TRUNCATED, standard meanings.
-+ */
-+int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name);
-+
-+/**
-+ * fdt_path_offset_namelen - find a tree node by its full path
-+ * @fdt: pointer to the device tree blob
-+ * @path: full path of the node to locate
-+ * @namelen: number of characters of path to consider
-+ *
-+ * Identical to fdt_path_offset(), but only consider the first namelen
-+ * characters of path as the path name.
-+ *
-+ * Return: offset of the node or negative libfdt error value otherwise
-+ */
-+#ifndef SWIG /* Not available in Python */
-+int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen);
-+#endif
-+
-+/**
-+ * fdt_path_offset - find a tree node by its full path
-+ * @fdt: pointer to the device tree blob
-+ * @path: full path of the node to locate
-+ *
-+ * fdt_path_offset() finds a node of a given path in the device tree.
-+ * Each path component may omit the unit address portion, but the
-+ * results of this are undefined if any such path component is
-+ * ambiguous (that is if there are multiple nodes at the relevant
-+ * level matching the given component, differentiated only by unit
-+ * address).
-+ *
-+ * returns:
-+ * structure block offset of the node with the requested path (>=0), on
-+ * success
-+ * -FDT_ERR_BADPATH, given path does not begin with '/' or is invalid
-+ * -FDT_ERR_NOTFOUND, if the requested node does not exist
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_TRUNCATED, standard meanings.
-+ */
-+int fdt_path_offset(const void *fdt, const char *path);
-+
-+/**
-+ * fdt_get_name - retrieve the name of a given node
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: structure block offset of the starting node
-+ * @lenp: pointer to an integer variable (will be overwritten) or NULL
-+ *
-+ * fdt_get_name() retrieves the name (including unit address) of the
-+ * device tree node at structure block offset nodeoffset. If lenp is
-+ * non-NULL, the length of this name is also returned, in the integer
-+ * pointed to by lenp.
-+ *
-+ * returns:
-+ * pointer to the node's name, on success
-+ * If lenp is non-NULL, *lenp contains the length of that name
-+ * (>=0)
-+ * NULL, on error
-+ * if lenp is non-NULL *lenp contains an error code (<0):
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
-+ * tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE, standard meanings
-+ */
-+const char *fdt_get_name(const void *fdt, int nodeoffset, int *lenp);
-+
-+/**
-+ * fdt_first_property_offset - find the offset of a node's first property
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: structure block offset of a node
-+ *
-+ * fdt_first_property_offset() finds the first property of the node at
-+ * the given structure block offset.
-+ *
-+ * returns:
-+ * structure block offset of the property (>=0), on success
-+ * -FDT_ERR_NOTFOUND, if the requested node has no properties
-+ * -FDT_ERR_BADOFFSET, if nodeoffset did not point to an FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_TRUNCATED, standard meanings.
-+ */
-+int fdt_first_property_offset(const void *fdt, int nodeoffset);
-+
-+/**
-+ * fdt_next_property_offset - step through a node's properties
-+ * @fdt: pointer to the device tree blob
-+ * @offset: structure block offset of a property
-+ *
-+ * fdt_next_property_offset() finds the property immediately after the
-+ * one at the given structure block offset. This will be a property
-+ * of the same node as the given property.
-+ *
-+ * returns:
-+ * structure block offset of the next property (>=0), on success
-+ * -FDT_ERR_NOTFOUND, if the given property is the last in its node
-+ * -FDT_ERR_BADOFFSET, if nodeoffset did not point to an FDT_PROP tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_TRUNCATED, standard meanings.
-+ */
-+int fdt_next_property_offset(const void *fdt, int offset);
-+
-+/**
-+ * fdt_for_each_property_offset - iterate over all properties of a node
-+ *
-+ * @property: property offset (int, lvalue)
-+ * @fdt: FDT blob (const void *)
-+ * @node: node offset (int)
-+ *
-+ * This is actually a wrapper around a for loop and would be used like so:
-+ *
-+ * fdt_for_each_property_offset(property, fdt, node) {
-+ * Use property
-+ * ...
-+ * }
-+ *
-+ * if ((property < 0) && (property != -FDT_ERR_NOTFOUND)) {
-+ * Error handling
-+ * }
-+ *
-+ * Note that this is implemented as a macro and property is used as
-+ * iterator in the loop. The node variable can be constant or even a
-+ * literal.
-+ */
-+#define fdt_for_each_property_offset(property, fdt, node) \
-+ for (property = fdt_first_property_offset(fdt, node); \
-+ property >= 0; \
-+ property = fdt_next_property_offset(fdt, property))
-+
-+/**
-+ * fdt_get_property_by_offset - retrieve the property at a given offset
-+ * @fdt: pointer to the device tree blob
-+ * @offset: offset of the property to retrieve
-+ * @lenp: pointer to an integer variable (will be overwritten) or NULL
-+ *
-+ * fdt_get_property_by_offset() retrieves a pointer to the
-+ * fdt_property structure within the device tree blob at the given
-+ * offset. If lenp is non-NULL, the length of the property value is
-+ * also returned, in the integer pointed to by lenp.
-+ *
-+ * Note that this code only works on device tree versions >= 16. fdt_getprop()
-+ * works on all versions.
-+ *
-+ * returns:
-+ * pointer to the structure representing the property
-+ * if lenp is non-NULL, *lenp contains the length of the property
-+ * value (>=0)
-+ * NULL, on error
-+ * if lenp is non-NULL, *lenp contains an error code (<0):
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_PROP tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+const struct fdt_property *fdt_get_property_by_offset(const void *fdt,
-+ int offset,
-+ int *lenp);
-+
-+/**
-+ * fdt_get_property_namelen - find a property based on substring
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to find
-+ * @name: name of the property to find
-+ * @namelen: number of characters of name to consider
-+ * @lenp: pointer to an integer variable (will be overwritten) or NULL
-+ *
-+ * Identical to fdt_get_property(), but only examine the first namelen
-+ * characters of name for matching the property name.
-+ *
-+ * Return: pointer to the structure representing the property, or NULL
-+ * if not found
-+ */
-+#ifndef SWIG /* Not available in Python */
-+const struct fdt_property *fdt_get_property_namelen(const void *fdt,
-+ int nodeoffset,
-+ const char *name,
-+ int namelen, int *lenp);
-+#endif
-+
-+/**
-+ * fdt_get_property - find a given property in a given node
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to find
-+ * @name: name of the property to find
-+ * @lenp: pointer to an integer variable (will be overwritten) or NULL
-+ *
-+ * fdt_get_property() retrieves a pointer to the fdt_property
-+ * structure within the device tree blob corresponding to the property
-+ * named 'name' of the node at offset nodeoffset. If lenp is
-+ * non-NULL, the length of the property value is also returned, in the
-+ * integer pointed to by lenp.
-+ *
-+ * returns:
-+ * pointer to the structure representing the property
-+ * if lenp is non-NULL, *lenp contains the length of the property
-+ * value (>=0)
-+ * NULL, on error
-+ * if lenp is non-NULL, *lenp contains an error code (<0):
-+ * -FDT_ERR_NOTFOUND, node does not have named property
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
-+ * tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+const struct fdt_property *fdt_get_property(const void *fdt, int nodeoffset,
-+ const char *name, int *lenp);
-+static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,
-+ const char *name,
-+ int *lenp)
-+{
-+ return (struct fdt_property *)(uintptr_t)
-+ fdt_get_property(fdt, nodeoffset, name, lenp);
-+}
-+
-+/**
-+ * fdt_getprop_by_offset - retrieve the value of a property at a given offset
-+ * @fdt: pointer to the device tree blob
-+ * @offset: offset of the property to read
-+ * @namep: pointer to a string variable (will be overwritten) or NULL
-+ * @lenp: pointer to an integer variable (will be overwritten) or NULL
-+ *
-+ * fdt_getprop_by_offset() retrieves a pointer to the value of the
-+ * property at structure block offset 'offset' (this will be a pointer
-+ * to within the device blob itself, not a copy of the value). If
-+ * lenp is non-NULL, the length of the property value is also
-+ * returned, in the integer pointed to by lenp. If namep is non-NULL,
-+ * the property's namne will also be returned in the char * pointed to
-+ * by namep (this will be a pointer to within the device tree's string
-+ * block, not a new copy of the name).
-+ *
-+ * returns:
-+ * pointer to the property's value
-+ * if lenp is non-NULL, *lenp contains the length of the property
-+ * value (>=0)
-+ * if namep is non-NULL *namep contiains a pointer to the property
-+ * name.
-+ * NULL, on error
-+ * if lenp is non-NULL, *lenp contains an error code (<0):
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_PROP tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+#ifndef SWIG /* This function is not useful in Python */
-+const void *fdt_getprop_by_offset(const void *fdt, int offset,
-+ const char **namep, int *lenp);
-+#endif
-+
-+/**
-+ * fdt_getprop_namelen - get property value based on substring
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to find
-+ * @name: name of the property to find
-+ * @namelen: number of characters of name to consider
-+ * @lenp: pointer to an integer variable (will be overwritten) or NULL
-+ *
-+ * Identical to fdt_getprop(), but only examine the first namelen
-+ * characters of name for matching the property name.
-+ *
-+ * Return: pointer to the property's value or NULL on error
-+ */
-+#ifndef SWIG /* Not available in Python */
-+const void *fdt_getprop_namelen(const void *fdt, int nodeoffset,
-+ const char *name, int namelen, int *lenp);
-+static inline void *fdt_getprop_namelen_w(void *fdt, int nodeoffset,
-+ const char *name, int namelen,
-+ int *lenp)
-+{
-+ return (void *)(uintptr_t)fdt_getprop_namelen(fdt, nodeoffset, name,
-+ namelen, lenp);
-+}
-+#endif
-+
-+/**
-+ * fdt_getprop - retrieve the value of a given property
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to find
-+ * @name: name of the property to find
-+ * @lenp: pointer to an integer variable (will be overwritten) or NULL
-+ *
-+ * fdt_getprop() retrieves a pointer to the value of the property
-+ * named @name of the node at offset @nodeoffset (this will be a
-+ * pointer to within the device blob itself, not a copy of the value).
-+ * If @lenp is non-NULL, the length of the property value is also
-+ * returned, in the integer pointed to by @lenp.
-+ *
-+ * returns:
-+ * pointer to the property's value
-+ * if lenp is non-NULL, *lenp contains the length of the property
-+ * value (>=0)
-+ * NULL, on error
-+ * if lenp is non-NULL, *lenp contains an error code (<0):
-+ * -FDT_ERR_NOTFOUND, node does not have named property
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
-+ * tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+const void *fdt_getprop(const void *fdt, int nodeoffset,
-+ const char *name, int *lenp);
-+static inline void *fdt_getprop_w(void *fdt, int nodeoffset,
-+ const char *name, int *lenp)
-+{
-+ return (void *)(uintptr_t)fdt_getprop(fdt, nodeoffset, name, lenp);
-+}
-+
-+/**
-+ * fdt_get_phandle - retrieve the phandle of a given node
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: structure block offset of the node
-+ *
-+ * fdt_get_phandle() retrieves the phandle of the device tree node at
-+ * structure block offset nodeoffset.
-+ *
-+ * returns:
-+ * the phandle of the node at nodeoffset, on success (!= 0, != -1)
-+ * 0, if the node has no phandle, or another error occurs
-+ */
-+uint32_t fdt_get_phandle(const void *fdt, int nodeoffset);
-+
-+/**
-+ * fdt_get_alias_namelen - get alias based on substring
-+ * @fdt: pointer to the device tree blob
-+ * @name: name of the alias th look up
-+ * @namelen: number of characters of name to consider
-+ *
-+ * Identical to fdt_get_alias(), but only examine the first @namelen
-+ * characters of @name for matching the alias name.
-+ *
-+ * Return: a pointer to the expansion of the alias named @name, if it exists,
-+ * NULL otherwise
-+ */
-+#ifndef SWIG /* Not available in Python */
-+const char *fdt_get_alias_namelen(const void *fdt,
-+ const char *name, int namelen);
-+#endif
-+
-+/**
-+ * fdt_get_alias - retrieve the path referenced by a given alias
-+ * @fdt: pointer to the device tree blob
-+ * @name: name of the alias th look up
-+ *
-+ * fdt_get_alias() retrieves the value of a given alias. That is, the
-+ * value of the property named @name in the node /aliases.
-+ *
-+ * returns:
-+ * a pointer to the expansion of the alias named 'name', if it exists
-+ * NULL, if the given alias or the /aliases node does not exist
-+ */
-+const char *fdt_get_alias(const void *fdt, const char *name);
-+
-+/**
-+ * fdt_get_path - determine the full path of a node
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose path to find
-+ * @buf: character buffer to contain the returned path (will be overwritten)
-+ * @buflen: size of the character buffer at buf
-+ *
-+ * fdt_get_path() computes the full path of the node at offset
-+ * nodeoffset, and records that path in the buffer at buf.
-+ *
-+ * NOTE: This function is expensive, as it must scan the device tree
-+ * structure from the start to nodeoffset.
-+ *
-+ * returns:
-+ * 0, on success
-+ * buf contains the absolute path of the node at
-+ * nodeoffset, as a NUL-terminated string.
-+ * -FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
-+ * -FDT_ERR_NOSPACE, the path of the given node is longer than (bufsize-1)
-+ * characters and will not fit in the given buffer.
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE, standard meanings
-+ */
-+int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen);
-+
-+/**
-+ * fdt_supernode_atdepth_offset - find a specific ancestor of a node
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose parent to find
-+ * @supernodedepth: depth of the ancestor to find
-+ * @nodedepth: pointer to an integer variable (will be overwritten) or NULL
-+ *
-+ * fdt_supernode_atdepth_offset() finds an ancestor of the given node
-+ * at a specific depth from the root (where the root itself has depth
-+ * 0, its immediate subnodes depth 1 and so forth). So
-+ * fdt_supernode_atdepth_offset(fdt, nodeoffset, 0, NULL);
-+ * will always return 0, the offset of the root node. If the node at
-+ * nodeoffset has depth D, then:
-+ * fdt_supernode_atdepth_offset(fdt, nodeoffset, D, NULL);
-+ * will return nodeoffset itself.
-+ *
-+ * NOTE: This function is expensive, as it must scan the device tree
-+ * structure from the start to nodeoffset.
-+ *
-+ * returns:
-+ * structure block offset of the node at node offset's ancestor
-+ * of depth supernodedepth (>=0), on success
-+ * -FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
-+ * -FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of
-+ * nodeoffset
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE, standard meanings
-+ */
-+int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,
-+ int supernodedepth, int *nodedepth);
-+
-+/**
-+ * fdt_node_depth - find the depth of a given node
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose parent to find
-+ *
-+ * fdt_node_depth() finds the depth of a given node. The root node
-+ * has depth 0, its immediate subnodes depth 1 and so forth.
-+ *
-+ * NOTE: This function is expensive, as it must scan the device tree
-+ * structure from the start to nodeoffset.
-+ *
-+ * returns:
-+ * depth of the node at nodeoffset (>=0), on success
-+ * -FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE, standard meanings
-+ */
-+int fdt_node_depth(const void *fdt, int nodeoffset);
-+
-+/**
-+ * fdt_parent_offset - find the parent of a given node
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose parent to find
-+ *
-+ * fdt_parent_offset() locates the parent node of a given node (that
-+ * is, it finds the offset of the node which contains the node at
-+ * nodeoffset as a subnode).
-+ *
-+ * NOTE: This function is expensive, as it must scan the device tree
-+ * structure from the start to nodeoffset, *twice*.
-+ *
-+ * returns:
-+ * structure block offset of the parent of the node at nodeoffset
-+ * (>=0), on success
-+ * -FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE, standard meanings
-+ */
-+int fdt_parent_offset(const void *fdt, int nodeoffset);
-+
-+/**
-+ * fdt_node_offset_by_prop_value - find nodes with a given property value
-+ * @fdt: pointer to the device tree blob
-+ * @startoffset: only find nodes after this offset
-+ * @propname: property name to check
-+ * @propval: property value to search for
-+ * @proplen: length of the value in propval
-+ *
-+ * fdt_node_offset_by_prop_value() returns the offset of the first
-+ * node after startoffset, which has a property named propname whose
-+ * value is of length proplen and has value equal to propval; or if
-+ * startoffset is -1, the very first such node in the tree.
-+ *
-+ * To iterate through all nodes matching the criterion, the following
-+ * idiom can be used:
-+ * offset = fdt_node_offset_by_prop_value(fdt, -1, propname,
-+ * propval, proplen);
-+ * while (offset != -FDT_ERR_NOTFOUND) {
-+ * // other code here
-+ * offset = fdt_node_offset_by_prop_value(fdt, offset, propname,
-+ * propval, proplen);
-+ * }
-+ *
-+ * Note the -1 in the first call to the function, if 0 is used here
-+ * instead, the function will never locate the root node, even if it
-+ * matches the criterion.
-+ *
-+ * returns:
-+ * structure block offset of the located node (>= 0, >startoffset),
-+ * on success
-+ * -FDT_ERR_NOTFOUND, no node matching the criterion exists in the
-+ * tree after startoffset
-+ * -FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE, standard meanings
-+ */
-+int fdt_node_offset_by_prop_value(const void *fdt, int startoffset,
-+ const char *propname,
-+ const void *propval, int proplen);
-+
-+/**
-+ * fdt_node_offset_by_phandle - find the node with a given phandle
-+ * @fdt: pointer to the device tree blob
-+ * @phandle: phandle value
-+ *
-+ * fdt_node_offset_by_phandle() returns the offset of the node
-+ * which has the given phandle value. If there is more than one node
-+ * in the tree with the given phandle (an invalid tree), results are
-+ * undefined.
-+ *
-+ * returns:
-+ * structure block offset of the located node (>= 0), on success
-+ * -FDT_ERR_NOTFOUND, no node with that phandle exists
-+ * -FDT_ERR_BADPHANDLE, given phandle value was invalid (0 or -1)
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE, standard meanings
-+ */
-+int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle);
-+
-+/**
-+ * fdt_node_check_compatible - check a node's compatible property
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of a tree node
-+ * @compatible: string to match against
-+ *
-+ * fdt_node_check_compatible() returns 0 if the given node contains a
-+ * @compatible property with the given string as one of its elements,
-+ * it returns non-zero otherwise, or on error.
-+ *
-+ * returns:
-+ * 0, if the node has a 'compatible' property listing the given string
-+ * 1, if the node has a 'compatible' property, but it does not list
-+ * the given string
-+ * -FDT_ERR_NOTFOUND, if the given node has no 'compatible' property
-+ * -FDT_ERR_BADOFFSET, if nodeoffset does not refer to a BEGIN_NODE tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE, standard meanings
-+ */
-+int fdt_node_check_compatible(const void *fdt, int nodeoffset,
-+ const char *compatible);
-+
-+/**
-+ * fdt_node_offset_by_compatible - find nodes with a given 'compatible' value
-+ * @fdt: pointer to the device tree blob
-+ * @startoffset: only find nodes after this offset
-+ * @compatible: 'compatible' string to match against
-+ *
-+ * fdt_node_offset_by_compatible() returns the offset of the first
-+ * node after startoffset, which has a 'compatible' property which
-+ * lists the given compatible string; or if startoffset is -1, the
-+ * very first such node in the tree.
-+ *
-+ * To iterate through all nodes matching the criterion, the following
-+ * idiom can be used:
-+ * offset = fdt_node_offset_by_compatible(fdt, -1, compatible);
-+ * while (offset != -FDT_ERR_NOTFOUND) {
-+ * // other code here
-+ * offset = fdt_node_offset_by_compatible(fdt, offset, compatible);
-+ * }
-+ *
-+ * Note the -1 in the first call to the function, if 0 is used here
-+ * instead, the function will never locate the root node, even if it
-+ * matches the criterion.
-+ *
-+ * returns:
-+ * structure block offset of the located node (>= 0, >startoffset),
-+ * on success
-+ * -FDT_ERR_NOTFOUND, no node matching the criterion exists in the
-+ * tree after startoffset
-+ * -FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE, standard meanings
-+ */
-+int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
-+ const char *compatible);
-+
-+/**
-+ * fdt_stringlist_contains - check a string list property for a string
-+ * @strlist: Property containing a list of strings to check
-+ * @listlen: Length of property
-+ * @str: String to search for
-+ *
-+ * This is a utility function provided for convenience. The list contains
-+ * one or more strings, each terminated by \0, as is found in a device tree
-+ * "compatible" property.
-+ *
-+ * Return: 1 if the string is found in the list, 0 not found, or invalid list
-+ */
-+int fdt_stringlist_contains(const char *strlist, int listlen, const char *str);
-+
-+/**
-+ * fdt_stringlist_count - count the number of strings in a string list
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of a tree node
-+ * @property: name of the property containing the string list
-+ *
-+ * Return:
-+ * the number of strings in the given property
-+ * -FDT_ERR_BADVALUE if the property value is not NUL-terminated
-+ * -FDT_ERR_NOTFOUND if the property does not exist
-+ */
-+int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property);
-+
-+/**
-+ * fdt_stringlist_search - find a string in a string list and return its index
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of a tree node
-+ * @property: name of the property containing the string list
-+ * @string: string to look up in the string list
-+ *
-+ * Note that it is possible for this function to succeed on property values
-+ * that are not NUL-terminated. That's because the function will stop after
-+ * finding the first occurrence of @string. This can for example happen with
-+ * small-valued cell properties, such as #address-cells, when searching for
-+ * the empty string.
-+ *
-+ * return:
-+ * the index of the string in the list of strings
-+ * -FDT_ERR_BADVALUE if the property value is not NUL-terminated
-+ * -FDT_ERR_NOTFOUND if the property does not exist or does not contain
-+ * the given string
-+ */
-+int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property,
-+ const char *string);
-+
-+/**
-+ * fdt_stringlist_get() - obtain the string at a given index in a string list
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of a tree node
-+ * @property: name of the property containing the string list
-+ * @index: index of the string to return
-+ * @lenp: return location for the string length or an error code on failure
-+ *
-+ * Note that this will successfully extract strings from properties with
-+ * non-NUL-terminated values. For example on small-valued cell properties
-+ * this function will return the empty string.
-+ *
-+ * If non-NULL, the length of the string (on success) or a negative error-code
-+ * (on failure) will be stored in the integer pointer to by lenp.
-+ *
-+ * Return:
-+ * A pointer to the string at the given index in the string list or NULL on
-+ * failure. On success the length of the string will be stored in the memory
-+ * location pointed to by the lenp parameter, if non-NULL. On failure one of
-+ * the following negative error codes will be returned in the lenp parameter
-+ * (if non-NULL):
-+ * -FDT_ERR_BADVALUE if the property value is not NUL-terminated
-+ * -FDT_ERR_NOTFOUND if the property does not exist
-+ */
-+const char *fdt_stringlist_get(const void *fdt, int nodeoffset,
-+ const char *property, int index,
-+ int *lenp);
-+
-+/**********************************************************************/
-+/* Read-only functions (addressing related) */
-+/**********************************************************************/
-+
-+/**
-+ * FDT_MAX_NCELLS - maximum value for #address-cells and #size-cells
-+ *
-+ * This is the maximum value for #address-cells, #size-cells and
-+ * similar properties that will be processed by libfdt. IEE1275
-+ * requires that OF implementations handle values up to 4.
-+ * Implementations may support larger values, but in practice higher
-+ * values aren't used.
-+ */
-+#define FDT_MAX_NCELLS 4
-+
-+/**
-+ * fdt_address_cells - retrieve address size for a bus represented in the tree
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node to find the address size for
-+ *
-+ * When the node has a valid #address-cells property, returns its value.
-+ *
-+ * returns:
-+ * 0 <= n < FDT_MAX_NCELLS, on success
-+ * 2, if the node has no #address-cells property
-+ * -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
-+ * #address-cells property
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+int fdt_address_cells(const void *fdt, int nodeoffset);
-+
-+/**
-+ * fdt_size_cells - retrieve address range size for a bus represented in the
-+ * tree
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node to find the address range size for
-+ *
-+ * When the node has a valid #size-cells property, returns its value.
-+ *
-+ * returns:
-+ * 0 <= n < FDT_MAX_NCELLS, on success
-+ * 1, if the node has no #size-cells property
-+ * -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
-+ * #size-cells property
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+int fdt_size_cells(const void *fdt, int nodeoffset);
-+
-+
-+/**********************************************************************/
-+/* Write-in-place functions */
-+/**********************************************************************/
-+
-+/**
-+ * fdt_setprop_inplace_namelen_partial - change a property's value,
-+ * but not its size
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to change
-+ * @name: name of the property to change
-+ * @namelen: number of characters of name to consider
-+ * @idx: index of the property to change in the array
-+ * @val: pointer to data to replace the property value with
-+ * @len: length of the property value
-+ *
-+ * Identical to fdt_setprop_inplace(), but modifies the given property
-+ * starting from the given index, and using only the first characters
-+ * of the name. It is useful when you want to manipulate only one value of
-+ * an array and you have a string that doesn't end with \0.
-+ *
-+ * Return: 0 on success, negative libfdt error value otherwise
-+ */
-+#ifndef SWIG /* Not available in Python */
-+int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,
-+ const char *name, int namelen,
-+ uint32_t idx, const void *val,
-+ int len);
-+#endif
-+
-+/**
-+ * fdt_setprop_inplace - change a property's value, but not its size
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to change
-+ * @name: name of the property to change
-+ * @val: pointer to data to replace the property value with
-+ * @len: length of the property value
-+ *
-+ * fdt_setprop_inplace() replaces the value of a given property with
-+ * the data in val, of length len. This function cannot change the
-+ * size of a property, and so will only work if len is equal to the
-+ * current length of the property.
-+ *
-+ * This function will alter only the bytes in the blob which contain
-+ * the given property value, and will not alter or move any other part
-+ * of the tree.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, if len is not equal to the property's current length
-+ * -FDT_ERR_NOTFOUND, node does not have the named property
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+#ifndef SWIG /* Not available in Python */
-+int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,
-+ const void *val, int len);
-+#endif
-+
-+/**
-+ * fdt_setprop_inplace_u32 - change the value of a 32-bit integer property
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to change
-+ * @name: name of the property to change
-+ * @val: 32-bit integer value to replace the property with
-+ *
-+ * fdt_setprop_inplace_u32() replaces the value of a given property
-+ * with the 32-bit integer value in val, converting val to big-endian
-+ * if necessary. This function cannot change the size of a property,
-+ * and so will only work if the property already exists and has length
-+ * 4.
-+ *
-+ * This function will alter only the bytes in the blob which contain
-+ * the given property value, and will not alter or move any other part
-+ * of the tree.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, if the property's length is not equal to 4
-+ * -FDT_ERR_NOTFOUND, node does not have the named property
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+static inline int fdt_setprop_inplace_u32(void *fdt, int nodeoffset,
-+ const char *name, uint32_t val)
-+{
-+ fdt32_t tmp = cpu_to_fdt32(val);
-+ return fdt_setprop_inplace(fdt, nodeoffset, name, &tmp, sizeof(tmp));
-+}
-+
-+/**
-+ * fdt_setprop_inplace_u64 - change the value of a 64-bit integer property
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to change
-+ * @name: name of the property to change
-+ * @val: 64-bit integer value to replace the property with
-+ *
-+ * fdt_setprop_inplace_u64() replaces the value of a given property
-+ * with the 64-bit integer value in val, converting val to big-endian
-+ * if necessary. This function cannot change the size of a property,
-+ * and so will only work if the property already exists and has length
-+ * 8.
-+ *
-+ * This function will alter only the bytes in the blob which contain
-+ * the given property value, and will not alter or move any other part
-+ * of the tree.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, if the property's length is not equal to 8
-+ * -FDT_ERR_NOTFOUND, node does not have the named property
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+static inline int fdt_setprop_inplace_u64(void *fdt, int nodeoffset,
-+ const char *name, uint64_t val)
-+{
-+ fdt64_t tmp = cpu_to_fdt64(val);
-+ return fdt_setprop_inplace(fdt, nodeoffset, name, &tmp, sizeof(tmp));
-+}
-+
-+/**
-+ * fdt_setprop_inplace_cell - change the value of a single-cell property
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node containing the property
-+ * @name: name of the property to change the value of
-+ * @val: new value of the 32-bit cell
-+ *
-+ * This is an alternative name for fdt_setprop_inplace_u32()
-+ * Return: 0 on success, negative libfdt error number otherwise.
-+ */
-+static inline int fdt_setprop_inplace_cell(void *fdt, int nodeoffset,
-+ const char *name, uint32_t val)
-+{
-+ return fdt_setprop_inplace_u32(fdt, nodeoffset, name, val);
-+}
-+
-+/**
-+ * fdt_nop_property - replace a property with nop tags
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to nop
-+ * @name: name of the property to nop
-+ *
-+ * fdt_nop_property() will replace a given property's representation
-+ * in the blob with FDT_NOP tags, effectively removing it from the
-+ * tree.
-+ *
-+ * This function will alter only the bytes in the blob which contain
-+ * the property, and will not alter or move any other part of the
-+ * tree.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOTFOUND, node does not have the named property
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+int fdt_nop_property(void *fdt, int nodeoffset, const char *name);
-+
-+/**
-+ * fdt_nop_node - replace a node (subtree) with nop tags
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node to nop
-+ *
-+ * fdt_nop_node() will replace a given node's representation in the
-+ * blob, including all its subnodes, if any, with FDT_NOP tags,
-+ * effectively removing it from the tree.
-+ *
-+ * This function will alter only the bytes in the blob which contain
-+ * the node and its properties and subnodes, and will not alter or
-+ * move any other part of the tree.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+int fdt_nop_node(void *fdt, int nodeoffset);
-+
-+/**********************************************************************/
-+/* Sequential write functions */
-+/**********************************************************************/
-+
-+/* fdt_create_with_flags flags */
-+#define FDT_CREATE_FLAG_NO_NAME_DEDUP 0x1
-+ /* FDT_CREATE_FLAG_NO_NAME_DEDUP: Do not try to de-duplicate property
-+ * names in the fdt. This can result in faster creation times, but
-+ * a larger fdt. */
-+
-+#define FDT_CREATE_FLAGS_ALL (FDT_CREATE_FLAG_NO_NAME_DEDUP)
-+
-+/**
-+ * fdt_create_with_flags - begin creation of a new fdt
-+ * @buf: pointer to memory allocated where fdt will be created
-+ * @bufsize: size of the memory space at fdt
-+ * @flags: a valid combination of FDT_CREATE_FLAG_ flags, or 0.
-+ *
-+ * fdt_create_with_flags() begins the process of creating a new fdt with
-+ * the sequential write interface.
-+ *
-+ * fdt creation process must end with fdt_finished() to produce a valid fdt.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
-+ * -FDT_ERR_BADFLAGS, flags is not valid
-+ */
-+int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags);
-+
-+/**
-+ * fdt_create - begin creation of a new fdt
-+ * @buf: pointer to memory allocated where fdt will be created
-+ * @bufsize: size of the memory space at fdt
-+ *
-+ * fdt_create() is equivalent to fdt_create_with_flags() with flags=0.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, bufsize is insufficient for a minimal fdt
-+ */
-+int fdt_create(void *buf, int bufsize);
-+
-+int fdt_resize(void *fdt, void *buf, int bufsize);
-+int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size);
-+int fdt_finish_reservemap(void *fdt);
-+int fdt_begin_node(void *fdt, const char *name);
-+int fdt_property(void *fdt, const char *name, const void *val, int len);
-+static inline int fdt_property_u32(void *fdt, const char *name, uint32_t val)
-+{
-+ fdt32_t tmp = cpu_to_fdt32(val);
-+ return fdt_property(fdt, name, &tmp, sizeof(tmp));
-+}
-+static inline int fdt_property_u64(void *fdt, const char *name, uint64_t val)
-+{
-+ fdt64_t tmp = cpu_to_fdt64(val);
-+ return fdt_property(fdt, name, &tmp, sizeof(tmp));
-+}
-+
-+#ifndef SWIG /* Not available in Python */
-+static inline int fdt_property_cell(void *fdt, const char *name, uint32_t val)
-+{
-+ return fdt_property_u32(fdt, name, val);
-+}
-+#endif
-+
-+/**
-+ * fdt_property_placeholder - add a new property and return a ptr to its value
-+ *
-+ * @fdt: pointer to the device tree blob
-+ * @name: name of property to add
-+ * @len: length of property value in bytes
-+ * @valp: returns a pointer to where where the value should be placed
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_NOSPACE, standard meanings
-+ */
-+int fdt_property_placeholder(void *fdt, const char *name, int len, void **valp);
-+
-+#define fdt_property_string(fdt, name, str) \
-+ fdt_property(fdt, name, str, strlen(str)+1)
-+int fdt_end_node(void *fdt);
-+int fdt_finish(void *fdt);
-+
-+/**********************************************************************/
-+/* Read-write functions */
-+/**********************************************************************/
-+
-+int fdt_create_empty_tree(void *buf, int bufsize);
-+int fdt_open_into(const void *fdt, void *buf, int bufsize);
-+int fdt_pack(void *fdt);
-+
-+/**
-+ * fdt_add_mem_rsv - add one memory reserve map entry
-+ * @fdt: pointer to the device tree blob
-+ * @address: 64-bit start address of the reserve map entry
-+ * @size: 64-bit size of the reserved region
-+ *
-+ * Adds a reserve map entry to the given blob reserving a region at
-+ * address address of length size.
-+ *
-+ * This function will insert data into the reserve map and will
-+ * therefore change the indexes of some entries in the table.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, there is insufficient free space in the blob to
-+ * contain the new reservation entry
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size);
-+
-+/**
-+ * fdt_del_mem_rsv - remove a memory reserve map entry
-+ * @fdt: pointer to the device tree blob
-+ * @n: entry to remove
-+ *
-+ * fdt_del_mem_rsv() removes the n-th memory reserve map entry from
-+ * the blob.
-+ *
-+ * This function will delete data from the reservation table and will
-+ * therefore change the indexes of some entries in the table.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOTFOUND, there is no entry of the given index (i.e. there
-+ * are less than n+1 reserve map entries)
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+int fdt_del_mem_rsv(void *fdt, int n);
-+
-+/**
-+ * fdt_set_name - change the name of a given node
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: structure block offset of a node
-+ * @name: name to give the node
-+ *
-+ * fdt_set_name() replaces the name (including unit address, if any)
-+ * of the given node with the given string. NOTE: this function can't
-+ * efficiently check if the new name is unique amongst the given
-+ * node's siblings; results are undefined if this function is invoked
-+ * with a name equal to one of the given node's siblings.
-+ *
-+ * This function may insert or delete data from the blob, and will
-+ * therefore change the offsets of some existing nodes.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, there is insufficient free space in the blob
-+ * to contain the new name
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE, standard meanings
-+ */
-+int fdt_set_name(void *fdt, int nodeoffset, const char *name);
-+
-+/**
-+ * fdt_setprop - create or change a property
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to change
-+ * @name: name of the property to change
-+ * @val: pointer to data to set the property value to
-+ * @len: length of the property value
-+ *
-+ * fdt_setprop() sets the value of the named property in the given
-+ * node to the given value and length, creating the property if it
-+ * does not already exist.
-+ *
-+ * This function may insert or delete data from the blob, and will
-+ * therefore change the offsets of some existing nodes.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, there is insufficient free space in the blob to
-+ * contain the new property value
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+int fdt_setprop(void *fdt, int nodeoffset, const char *name,
-+ const void *val, int len);
-+
-+/**
-+ * fdt_setprop_placeholder - allocate space for a property
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to change
-+ * @name: name of the property to change
-+ * @len: length of the property value
-+ * @prop_data: return pointer to property data
-+ *
-+ * fdt_setprop_placeholer() allocates the named property in the given node.
-+ * If the property exists it is resized. In either case a pointer to the
-+ * property data is returned.
-+ *
-+ * This function may insert or delete data from the blob, and will
-+ * therefore change the offsets of some existing nodes.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, there is insufficient free space in the blob to
-+ * contain the new property value
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char *name,
-+ int len, void **prop_data);
-+
-+/**
-+ * fdt_setprop_u32 - set a property to a 32-bit integer
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to change
-+ * @name: name of the property to change
-+ * @val: 32-bit integer value for the property (native endian)
-+ *
-+ * fdt_setprop_u32() sets the value of the named property in the given
-+ * node to the given 32-bit integer value (converting to big-endian if
-+ * necessary), or creates a new property with that value if it does
-+ * not already exist.
-+ *
-+ * This function may insert or delete data from the blob, and will
-+ * therefore change the offsets of some existing nodes.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, there is insufficient free space in the blob to
-+ * contain the new property value
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+static inline int fdt_setprop_u32(void *fdt, int nodeoffset, const char *name,
-+ uint32_t val)
-+{
-+ fdt32_t tmp = cpu_to_fdt32(val);
-+ return fdt_setprop(fdt, nodeoffset, name, &tmp, sizeof(tmp));
-+}
-+
-+/**
-+ * fdt_setprop_u64 - set a property to a 64-bit integer
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to change
-+ * @name: name of the property to change
-+ * @val: 64-bit integer value for the property (native endian)
-+ *
-+ * fdt_setprop_u64() sets the value of the named property in the given
-+ * node to the given 64-bit integer value (converting to big-endian if
-+ * necessary), or creates a new property with that value if it does
-+ * not already exist.
-+ *
-+ * This function may insert or delete data from the blob, and will
-+ * therefore change the offsets of some existing nodes.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, there is insufficient free space in the blob to
-+ * contain the new property value
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+static inline int fdt_setprop_u64(void *fdt, int nodeoffset, const char *name,
-+ uint64_t val)
-+{
-+ fdt64_t tmp = cpu_to_fdt64(val);
-+ return fdt_setprop(fdt, nodeoffset, name, &tmp, sizeof(tmp));
-+}
-+
-+/**
-+ * fdt_setprop_cell - set a property to a single cell value
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to change
-+ * @name: name of the property to change
-+ * @val: 32-bit integer value for the property (native endian)
-+ *
-+ * This is an alternative name for fdt_setprop_u32()
-+ *
-+ * Return: 0 on success, negative libfdt error value otherwise.
-+ */
-+static inline int fdt_setprop_cell(void *fdt, int nodeoffset, const char *name,
-+ uint32_t val)
-+{
-+ return fdt_setprop_u32(fdt, nodeoffset, name, val);
-+}
-+
-+/**
-+ * fdt_setprop_string - set a property to a string value
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to change
-+ * @name: name of the property to change
-+ * @str: string value for the property
-+ *
-+ * fdt_setprop_string() sets the value of the named property in the
-+ * given node to the given string value (using the length of the
-+ * string to determine the new length of the property), or creates a
-+ * new property with that value if it does not already exist.
-+ *
-+ * This function may insert or delete data from the blob, and will
-+ * therefore change the offsets of some existing nodes.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, there is insufficient free space in the blob to
-+ * contain the new property value
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+#define fdt_setprop_string(fdt, nodeoffset, name, str) \
-+ fdt_setprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
-+
-+
-+/**
-+ * fdt_setprop_empty - set a property to an empty value
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to change
-+ * @name: name of the property to change
-+ *
-+ * fdt_setprop_empty() sets the value of the named property in the
-+ * given node to an empty (zero length) value, or creates a new empty
-+ * property if it does not already exist.
-+ *
-+ * This function may insert or delete data from the blob, and will
-+ * therefore change the offsets of some existing nodes.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, there is insufficient free space in the blob to
-+ * contain the new property value
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+#define fdt_setprop_empty(fdt, nodeoffset, name) \
-+ fdt_setprop((fdt), (nodeoffset), (name), NULL, 0)
-+
-+/**
-+ * fdt_appendprop - append to or create a property
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to change
-+ * @name: name of the property to append to
-+ * @val: pointer to data to append to the property value
-+ * @len: length of the data to append to the property value
-+ *
-+ * fdt_appendprop() appends the value to the named property in the
-+ * given node, creating the property if it does not already exist.
-+ *
-+ * This function may insert data into the blob, and will therefore
-+ * change the offsets of some existing nodes.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, there is insufficient free space in the blob to
-+ * contain the new property value
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+int fdt_appendprop(void *fdt, int nodeoffset, const char *name,
-+ const void *val, int len);
-+
-+/**
-+ * fdt_appendprop_u32 - append a 32-bit integer value to a property
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to change
-+ * @name: name of the property to change
-+ * @val: 32-bit integer value to append to the property (native endian)
-+ *
-+ * fdt_appendprop_u32() appends the given 32-bit integer value
-+ * (converting to big-endian if necessary) to the value of the named
-+ * property in the given node, or creates a new property with that
-+ * value if it does not already exist.
-+ *
-+ * This function may insert data into the blob, and will therefore
-+ * change the offsets of some existing nodes.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, there is insufficient free space in the blob to
-+ * contain the new property value
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+static inline int fdt_appendprop_u32(void *fdt, int nodeoffset,
-+ const char *name, uint32_t val)
-+{
-+ fdt32_t tmp = cpu_to_fdt32(val);
-+ return fdt_appendprop(fdt, nodeoffset, name, &tmp, sizeof(tmp));
-+}
-+
-+/**
-+ * fdt_appendprop_u64 - append a 64-bit integer value to a property
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to change
-+ * @name: name of the property to change
-+ * @val: 64-bit integer value to append to the property (native endian)
-+ *
-+ * fdt_appendprop_u64() appends the given 64-bit integer value
-+ * (converting to big-endian if necessary) to the value of the named
-+ * property in the given node, or creates a new property with that
-+ * value if it does not already exist.
-+ *
-+ * This function may insert data into the blob, and will therefore
-+ * change the offsets of some existing nodes.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, there is insufficient free space in the blob to
-+ * contain the new property value
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+static inline int fdt_appendprop_u64(void *fdt, int nodeoffset,
-+ const char *name, uint64_t val)
-+{
-+ fdt64_t tmp = cpu_to_fdt64(val);
-+ return fdt_appendprop(fdt, nodeoffset, name, &tmp, sizeof(tmp));
-+}
-+
-+/**
-+ * fdt_appendprop_cell - append a single cell value to a property
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to change
-+ * @name: name of the property to change
-+ * @val: 32-bit integer value to append to the property (native endian)
-+ *
-+ * This is an alternative name for fdt_appendprop_u32()
-+ *
-+ * Return: 0 on success, negative libfdt error value otherwise.
-+ */
-+static inline int fdt_appendprop_cell(void *fdt, int nodeoffset,
-+ const char *name, uint32_t val)
-+{
-+ return fdt_appendprop_u32(fdt, nodeoffset, name, val);
-+}
-+
-+/**
-+ * fdt_appendprop_string - append a string to a property
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to change
-+ * @name: name of the property to change
-+ * @str: string value to append to the property
-+ *
-+ * fdt_appendprop_string() appends the given string to the value of
-+ * the named property in the given node, or creates a new property
-+ * with that value if it does not already exist.
-+ *
-+ * This function may insert data into the blob, and will therefore
-+ * change the offsets of some existing nodes.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, there is insufficient free space in the blob to
-+ * contain the new property value
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+#define fdt_appendprop_string(fdt, nodeoffset, name, str) \
-+ fdt_appendprop((fdt), (nodeoffset), (name), (str), strlen(str)+1)
-+
-+/**
-+ * fdt_appendprop_addrrange - append a address range property
-+ * @fdt: pointer to the device tree blob
-+ * @parent: offset of the parent node
-+ * @nodeoffset: offset of the node to add a property at
-+ * @name: name of property
-+ * @addr: start address of a given range
-+ * @size: size of a given range
-+ *
-+ * fdt_appendprop_addrrange() appends an address range value (start
-+ * address and size) to the value of the named property in the given
-+ * node, or creates a new property with that value if it does not
-+ * already exist.
-+ * If "name" is not specified, a default "reg" is used.
-+ * Cell sizes are determined by parent's #address-cells and #size-cells.
-+ *
-+ * This function may insert data into the blob, and will therefore
-+ * change the offsets of some existing nodes.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADNCELLS, if the node has a badly formatted or invalid
-+ * #address-cells property
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADVALUE, addr or size doesn't fit to respective cells size
-+ * -FDT_ERR_NOSPACE, there is insufficient free space in the blob to
-+ * contain a new property
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,
-+ const char *name, uint64_t addr, uint64_t size);
-+
-+/**
-+ * fdt_delprop - delete a property
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node whose property to nop
-+ * @name: name of the property to nop
-+ *
-+ * fdt_del_property() will delete the given property.
-+ *
-+ * This function will delete data from the blob, and will therefore
-+ * change the offsets of some existing nodes.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOTFOUND, node does not have the named property
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+int fdt_delprop(void *fdt, int nodeoffset, const char *name);
-+
-+/**
-+ * fdt_add_subnode_namelen - creates a new node based on substring
-+ * @fdt: pointer to the device tree blob
-+ * @parentoffset: structure block offset of a node
-+ * @name: name of the subnode to create
-+ * @namelen: number of characters of name to consider
-+ *
-+ * Identical to fdt_add_subnode(), but use only the first @namelen
-+ * characters of @name as the name of the new node. This is useful for
-+ * creating subnodes based on a portion of a larger string, such as a
-+ * full path.
-+ *
-+ * Return: structure block offset of the created subnode (>=0),
-+ * negative libfdt error value otherwise
-+ */
-+#ifndef SWIG /* Not available in Python */
-+int fdt_add_subnode_namelen(void *fdt, int parentoffset,
-+ const char *name, int namelen);
-+#endif
-+
-+/**
-+ * fdt_add_subnode - creates a new node
-+ * @fdt: pointer to the device tree blob
-+ * @parentoffset: structure block offset of a node
-+ * @name: name of the subnode to locate
-+ *
-+ * fdt_add_subnode() creates a new node as a subnode of the node at
-+ * structure block offset parentoffset, with the given name (which
-+ * should include the unit address, if any).
-+ *
-+ * This function will insert data into the blob, and will therefore
-+ * change the offsets of some existing nodes.
-+ *
-+ * returns:
-+ * structure block offset of the created nodeequested subnode (>=0), on
-+ * success
-+ * -FDT_ERR_NOTFOUND, if the requested subnode does not exist
-+ * -FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE
-+ * tag
-+ * -FDT_ERR_EXISTS, if the node at parentoffset already has a subnode of
-+ * the given name
-+ * -FDT_ERR_NOSPACE, if there is insufficient free space in the
-+ * blob to contain the new node
-+ * -FDT_ERR_NOSPACE
-+ * -FDT_ERR_BADLAYOUT
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_TRUNCATED, standard meanings.
-+ */
-+int fdt_add_subnode(void *fdt, int parentoffset, const char *name);
-+
-+/**
-+ * fdt_del_node - delete a node (subtree)
-+ * @fdt: pointer to the device tree blob
-+ * @nodeoffset: offset of the node to nop
-+ *
-+ * fdt_del_node() will remove the given node, including all its
-+ * subnodes if any, from the blob.
-+ *
-+ * This function will delete data from the blob, and will therefore
-+ * change the offsets of some existing nodes.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+int fdt_del_node(void *fdt, int nodeoffset);
-+
-+/**
-+ * fdt_overlay_apply - Applies a DT overlay on a base DT
-+ * @fdt: pointer to the base device tree blob
-+ * @fdto: pointer to the device tree overlay blob
-+ *
-+ * fdt_overlay_apply() will apply the given device tree overlay on the
-+ * given base device tree.
-+ *
-+ * Expect the base device tree to be modified, even if the function
-+ * returns an error.
-+ *
-+ * returns:
-+ * 0, on success
-+ * -FDT_ERR_NOSPACE, there's not enough space in the base device tree
-+ * -FDT_ERR_NOTFOUND, the overlay points to some inexistant nodes or
-+ * properties in the base DT
-+ * -FDT_ERR_BADPHANDLE,
-+ * -FDT_ERR_BADOVERLAY,
-+ * -FDT_ERR_NOPHANDLES,
-+ * -FDT_ERR_INTERNAL,
-+ * -FDT_ERR_BADLAYOUT,
-+ * -FDT_ERR_BADMAGIC,
-+ * -FDT_ERR_BADOFFSET,
-+ * -FDT_ERR_BADPATH,
-+ * -FDT_ERR_BADVERSION,
-+ * -FDT_ERR_BADSTRUCTURE,
-+ * -FDT_ERR_BADSTATE,
-+ * -FDT_ERR_TRUNCATED, standard meanings
-+ */
-+int fdt_overlay_apply(void *fdt, void *fdto);
-+
-+/**
-+ * fdt_overlay_target_offset - retrieves the offset of a fragment's target
-+ * @fdt: Base device tree blob
-+ * @fdto: Device tree overlay blob
-+ * @fragment_offset: node offset of the fragment in the overlay
-+ * @pathp: pointer which receives the path of the target (or NULL)
-+ *
-+ * fdt_overlay_target_offset() retrieves the target offset in the base
-+ * device tree of a fragment, no matter how the actual targeting is
-+ * done (through a phandle or a path)
-+ *
-+ * returns:
-+ * the targeted node offset in the base device tree
-+ * Negative error code on error
-+ */
-+int fdt_overlay_target_offset(const void *fdt, const void *fdto,
-+ int fragment_offset, char const **pathp);
-+
-+/**********************************************************************/
-+/* Debugging / informational functions */
-+/**********************************************************************/
-+
-+const char *fdt_strerror(int errval);
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif /* LIBFDT_H */
-diff --git a/include/libfdt_env.h b/include/libfdt_env.h
-new file mode 100644
-index 0000000..51b31d1
---- /dev/null
-+++ b/include/libfdt_env.h
-@@ -0,0 +1,95 @@
-+/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
-+#ifndef LIBFDT_ENV_H
-+#define LIBFDT_ENV_H
-+/*
-+ * libfdt - Flat Device Tree manipulation
-+ * Copyright (C) 2006 David Gibson, IBM Corporation.
-+ * Copyright 2012 Kim Phillips, Freescale Semiconductor.
-+ */
-+
-+#include <stdbool.h>
-+#include <stddef.h>
-+#include <stdint.h>
-+#include <limits.h>
-+#include <string.h>
-+
-+#ifdef __CHECKER__
-+#define FDT_FORCE __attribute__((force))
-+#define FDT_BITWISE __attribute__((bitwise))
-+#else
-+#define FDT_FORCE
-+#define FDT_BITWISE
-+#endif
-+
-+typedef uint16_t FDT_BITWISE fdt16_t;
-+typedef uint32_t FDT_BITWISE fdt32_t;
-+typedef uint64_t FDT_BITWISE fdt64_t;
-+
-+#define EXTRACT_BYTE(x, n) ((unsigned long long)((uint8_t *)&x)[n])
-+#define CPU_TO_FDT16(x) ((EXTRACT_BYTE(x, 0) << 8) | EXTRACT_BYTE(x, 1))
-+#define CPU_TO_FDT32(x) ((EXTRACT_BYTE(x, 0) << 24) | (EXTRACT_BYTE(x, 1) << 16) | \
-+ (EXTRACT_BYTE(x, 2) << 8) | EXTRACT_BYTE(x, 3))
-+#define CPU_TO_FDT64(x) ((EXTRACT_BYTE(x, 0) << 56) | (EXTRACT_BYTE(x, 1) << 48) | \
-+ (EXTRACT_BYTE(x, 2) << 40) | (EXTRACT_BYTE(x, 3) << 32) | \
-+ (EXTRACT_BYTE(x, 4) << 24) | (EXTRACT_BYTE(x, 5) << 16) | \
-+ (EXTRACT_BYTE(x, 6) << 8) | EXTRACT_BYTE(x, 7))
-+
-+static inline uint16_t fdt16_to_cpu(fdt16_t x)
-+{
-+ return (FDT_FORCE uint16_t)CPU_TO_FDT16(x);
-+}
-+static inline fdt16_t cpu_to_fdt16(uint16_t x)
-+{
-+ return (FDT_FORCE fdt16_t)CPU_TO_FDT16(x);
-+}
-+
-+static inline uint32_t fdt32_to_cpu(fdt32_t x)
-+{
-+ return (FDT_FORCE uint32_t)CPU_TO_FDT32(x);
-+}
-+static inline fdt32_t cpu_to_fdt32(uint32_t x)
-+{
-+ return (FDT_FORCE fdt32_t)CPU_TO_FDT32(x);
-+}
-+
-+static inline uint64_t fdt64_to_cpu(fdt64_t x)
-+{
-+ return (FDT_FORCE uint64_t)CPU_TO_FDT64(x);
-+}
-+static inline fdt64_t cpu_to_fdt64(uint64_t x)
-+{
-+ return (FDT_FORCE fdt64_t)CPU_TO_FDT64(x);
-+}
-+#undef CPU_TO_FDT64
-+#undef CPU_TO_FDT32
-+#undef CPU_TO_FDT16
-+#undef EXTRACT_BYTE
-+
-+#ifdef __APPLE__
-+#include <AvailabilityMacros.h>
-+
-+/* strnlen() is not available on Mac OS < 10.7 */
-+# if !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOWED < \
-+ MAC_OS_X_VERSION_10_7)
-+
-+#define strnlen fdt_strnlen
-+
-+/*
-+ * fdt_strnlen: returns the length of a string or max_count - which ever is
-+ * smallest.
-+ * Input 1 string: the string whose size is to be determined
-+ * Input 2 max_count: the maximum value returned by this function
-+ * Output: length of the string or max_count (the smallest of the two)
-+ */
-+static inline size_t fdt_strnlen(const char *string, size_t max_count)
-+{
-+ const char *p = memchr(string, 0, max_count);
-+ return p ? p - string : max_count;
-+}
-+
-+#endif /* !defined(MAC_OS_X_VERSION_10_7) || (MAC_OS_X_VERSION_MAX_ALLOWED <
-+ MAC_OS_X_VERSION_10_7) */
-+
-+#endif /* __APPLE__ */
-+
-+#endif /* LIBFDT_ENV_H */
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0011-common-Add-essential-libc-functions.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0011-common-Add-essential-libc-functions.patch
deleted file mode 100644
index b7726f5175..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0011-common-Add-essential-libc-functions.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From e2eff4f80e65cb3fcbe6345b5376a6bf7de7e2cc Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Tue, 28 Dec 2021 17:28:25 +0800
-Subject: [PATCH] common: Add essential libc functions
-
-The libfdt uses some of the libc functions, e.g. memcmp, memmove,
-strlen .etc. Add them in lib.c.
-
-The code is copied from TF-A (v2.5) [1] project, which is under the
-terms of BSD license. It is the same with boot-wrapper.
-
-[1]: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
-
-Issue-Id: SCM-3814
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
-Change-Id: If3b55b00afa8694c7522df989a41e0b38eda1d38
----
- common/lib.c | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 70 insertions(+), 1 deletion(-)
-
-diff --git a/common/lib.c b/common/lib.c
-index fcf5f69..0be1c4a 100644
---- a/common/lib.c
-+++ b/common/lib.c
-@@ -32,4 +32,73 @@ void *memset(void *s, int c, size_t n)
- return s;
- }
-
--/* TODO: memmove and memcmp could also be called */
-+int memcmp(const void *s1, const void *s2, size_t len)
-+{
-+ const unsigned char *s = s1;
-+ const unsigned char *d = s2;
-+ unsigned char sc;
-+ unsigned char dc;
-+
-+ while (len--) {
-+ sc = *s++;
-+ dc = *d++;
-+ if (sc - dc)
-+ return (sc - dc);
-+ }
-+
-+ return 0;
-+}
-+
-+void *memmove(void *dst, const void *src, size_t len)
-+{
-+ if ((size_t)dst - (size_t)src >= len) {
-+ /* destination not in source data, so can safely use memcpy */
-+ return memcpy(dst, src, len);
-+ } else {
-+ /* copy backwards... */
-+ const char *end = dst;
-+ const char *s = (const char *)src + len;
-+ char *d = (char *)dst + len;
-+ while (d != end)
-+ *--d = *--s;
-+ }
-+ return dst;
-+}
-+
-+void *memchr(const void *src, int c, size_t len)
-+{
-+ const unsigned char *s = src;
-+
-+ while (len--) {
-+ if (*s == (unsigned char)c)
-+ return (void *) s;
-+ s++;
-+ }
-+
-+ return NULL;
-+}
-+
-+char *strrchr(const char *p, int ch)
-+{
-+ char *save;
-+ char c;
-+
-+ c = ch;
-+ for (save = NULL;; ++p) {
-+ if (*p == c)
-+ save = (char *)p;
-+ if (*p == '\0')
-+ return (save);
-+ }
-+ /* NOTREACHED */
-+}
-+
-+size_t strlen(const char *s)
-+{
-+ const char *cursor = s;
-+
-+ while (*cursor)
-+ cursor++;
-+
-+ return cursor - s;
-+}
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0012-Makefile-Add-the-libfdt-to-the-Makefile-system.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0012-Makefile-Add-the-libfdt-to-the-Makefile-system.patch
deleted file mode 100644
index b77ab3e27b..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0012-Makefile-Add-the-libfdt-to-the-Makefile-system.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From f4d5cf4c3424598a2b3bb391717313b70c79ea28 Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Tue, 28 Dec 2021 17:42:48 +0800
-Subject: [PATCH] Makefile: Add the libfdt to the Makefile system
-
-Add the libfdt into Makefile system. The libfdt uses const value and
-thus gcc will enable the stack guard. The stack guard will fail the
-compile. Add -fno-stack-protector to fix it.
-
-Issue-Id: SCM-3814
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
-Change-Id: I472bc28cdc5cde3b22461a4b7d7a3752ae382b4b
----
- Makefile.am | 11 +++++++++--
- 1 file changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index fc66662..ab2c3a9 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -36,6 +36,9 @@ PSCI_CPU_OFF := 0x84000002
- COMMON_SRC := common/
- COMMON_OBJ := boot.o bakery_lock.o platform.o lib.o
-
-+LIBFDT_SRC := common/libfdt/
-+LIBFDT_OBJS := fdt.o fdt_ro.o fdt_rw.o
-+
- ARCH_OBJ := boot.o stack.o utils.o
-
- if BOOTWRAPPER_32
-@@ -127,11 +130,12 @@ CFLAGS += -I$(top_srcdir)/include/ -I$(top_srcdir)/$(ARCH_SRC)/include/
- CFLAGS += -Wall -fomit-frame-pointer
- CFLAGS += -ffreestanding -nostdlib
- CFLAGS += -fno-stack-protector
-+CFLAGS += -fno-stack-protector
- CFLAGS += -ffunction-sections -fdata-sections
- CFLAGS += -fno-pic -fno-pie
- LDFLAGS += --gc-sections
-
--OBJ := $(addprefix $(ARCH_SRC),$(ARCH_OBJ)) $(addprefix $(COMMON_SRC),$(COMMON_OBJ))
-+OBJ := $(addprefix $(ARCH_SRC),$(ARCH_OBJ)) $(addprefix $(COMMON_SRC),$(COMMON_OBJ)) $(addprefix $(LIBFDT_SRC),$(LIBFDT_OBJS))
-
- # Don't lookup all prerequisites in $(top_srcdir), only the source files. When
- # building outside the source tree $(ARCH_SRC) needs to be created.
-@@ -152,10 +156,13 @@ $(ARCH_SRC):
- $(COMMON_SRC):
- $(MKDIR_P) $@
-
-+$(LIBFDT_SRC):
-+ $(MKDIR_P) $@
-+
- %.o: %.S Makefile | $(ARCH_SRC)
- $(CC) $(CPPFLAGS) -D__ASSEMBLY__ $(CFLAGS) $(DEFINES) -c -o $@ $<
-
--%.o: %.c Makefile | $(COMMON_SRC)
-+%.o: %.c Makefile | $(COMMON_SRC) $(LIBFDT_SRC)
- $(CC) $(CPPFLAGS) $(CFLAGS) $(DEFINES) -c -o $@ $<
-
- model.lds: $(LD_SCRIPT) Makefile
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0013-platform-Add-print_hex-func.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0013-platform-Add-print_hex-func.patch
deleted file mode 100644
index 2346109c02..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0013-platform-Add-print_hex-func.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From f0ece5e8cac761a76a86df7204bae7c6ef09215f Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Wed, 29 Dec 2021 10:50:21 +0800
-Subject: [PATCH] platform: Add print_hex func
-
-Refine the print functions, and add a new print_hex func to print hex
-numbers.
-
-Issue-Id: SCM-3814
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
-Change-Id: Ic960345d9ef0b41d81d30c4a4dbd9c31139907c4
----
- common/platform.c | 33 +++++++++++++++++++++++++--------
- 1 file changed, 25 insertions(+), 8 deletions(-)
-
-diff --git a/common/platform.c b/common/platform.c
-index d11f568..8269392 100644
---- a/common/platform.c
-+++ b/common/platform.c
-@@ -30,20 +30,37 @@
- #define V2M_SYS(reg) ((void *)SYSREGS_BASE + V2M_SYS_##reg)
- #endif
-
--static void print_string(const char *str)
-+static void print_char(const char c)
- {
- uint32_t flags;
-+ do {
-+ flags = raw_readl(PL011(UARTFR));
-+ } while (flags & PL011_UARTFR_FIFO_FULL);
-
-+ raw_writel(c, PL011(UARTDR));
-+
-+ do {
-+ flags = raw_readl(PL011(UARTFR));
-+ } while (flags & PL011_UARTFR_BUSY);
-+}
-+
-+void print_string(const char *str)
-+{
- while (*str) {
-- do
-- flags = raw_readl(PL011(UARTFR));
-- while (flags & PL011_UARTFR_FIFO_FULL);
-+ print_char(*str++);
-+ }
-+}
-
-- raw_writel(*str++, PL011(UARTDR));
-+#define HEX_CHARS_PER_INT (2 * sizeof(int))
-+
-+void print_hex(unsigned int val)
-+{
-
-- do
-- flags = raw_readl(PL011(UARTFR));
-- while (flags & PL011_UARTFR_BUSY);
-+ const char hex_chars[16] = "0123456789abcdef";
-+ int i;
-+ for (i = HEX_CHARS_PER_INT - 1; i >= 0; i--) {
-+ int v = (val >> (4 * i)) & 0xf;
-+ print_char(hex_chars[v]);
- }
- }
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0014-common-Add-mem-usage-to-memreserve.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0014-common-Add-mem-usage-to-memreserve.patch
deleted file mode 100644
index f4ea89c609..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0014-common-Add-mem-usage-to-memreserve.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From f4704146e1af9f6e0a2220db6b39a328c813fac1 Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Wed, 19 Jan 2022 16:19:02 +0800
-Subject: [PATCH] common: Add mem usage to /memreserve/
-
-Set /memreserve/ to prevent next boot stages from overrding PSCI
-services with libfdt.
-
-Issue-Id: SCM-3815
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
-Change-Id: I2ea80cdf736a910fa2c3deb622e21d50f04be960
----
- Makefile.am | 2 +-
- common/boot.c | 1 +
- common/device_tree.c | 34 ++++++++++++++++++++++++++++++++++
- include/boot.h | 1 +
- 4 files changed, 37 insertions(+), 1 deletion(-)
- create mode 100644 common/device_tree.c
-
-diff --git a/Makefile.am b/Makefile.am
-index ab2c3a9..e905602 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -34,7 +34,7 @@ endif
- PSCI_CPU_OFF := 0x84000002
-
- COMMON_SRC := common/
--COMMON_OBJ := boot.o bakery_lock.o platform.o lib.o
-+COMMON_OBJ := boot.o bakery_lock.o platform.o lib.o device_tree.o
-
- LIBFDT_SRC := common/libfdt/
- LIBFDT_OBJS := fdt.o fdt_ro.o fdt_rw.o
-diff --git a/common/boot.c b/common/boot.c
-index c74d34c..ee2bea0 100644
---- a/common/boot.c
-+++ b/common/boot.c
-@@ -63,6 +63,7 @@ void __noreturn first_spin(unsigned int cpu, unsigned long *mbox,
- {
- if (cpu == 0) {
- init_platform();
-+ dt_add_memreserve();
-
- *mbox = (unsigned long)&entrypoint;
- sevl();
-diff --git a/common/device_tree.c b/common/device_tree.c
-new file mode 100644
-index 0000000..4d0876c
---- /dev/null
-+++ b/common/device_tree.c
-@@ -0,0 +1,34 @@
-+/*
-+ * device_tree.c - Basic device tree node handler
-+ *
-+ * Copyright (C) 2021 ARM Limited. All rights reserved.
-+ *
-+ * Use of this source code is governed by a BSD-style license that can be
-+ * found in the LICENSE.txt file.
-+ */
-+#include <libfdt.h>
-+
-+extern unsigned long dtb;
-+extern char firmware_start[], firmware_end[];
-+
-+extern void print_string(const char *str);
-+
-+static void *blob;
-+
-+
-+void dt_add_memreserve(void)
-+{
-+ int ret;
-+
-+ blob = (void*)&dtb;
-+ print_string("Add /memreserve/\n\r");
-+
-+ fdt_open_into(blob, blob, fdt_totalsize(blob) +
-+ sizeof(struct fdt_reserve_entry));
-+ ret = fdt_add_mem_rsv(blob, (uint64_t)firmware_start,
-+ (uint64_t)(firmware_end - firmware_start));
-+
-+ if(ret < 0) {
-+ print_string("reserve mem add err\n\r");
-+ }
-+}
-diff --git a/include/boot.h b/include/boot.h
-index d75e013..c3e2ec1 100644
---- a/include/boot.h
-+++ b/include/boot.h
-@@ -16,4 +16,5 @@ void __noreturn spin(unsigned long *mbox, unsigned long invalid, int is_entry);
- void __noreturn first_spin(unsigned int cpu, unsigned long *mbox,
- unsigned long invalid_addr);
-
-+void dt_add_memreserve(void);
- #endif
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0015-boot-Add-the-enable-keep-el-compile-option.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0015-boot-Add-the-enable-keep-el-compile-option.patch
deleted file mode 100644
index 7d59e5fc3b..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0015-boot-Add-the-enable-keep-el-compile-option.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From 5995f83592aea874f5b423538e36675e2204582b Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Tue, 4 Jan 2022 17:01:55 +0800
-Subject: [PATCH] boot: Add the --enable-keep-el compile option
-
-Add --enable-keep-el compile option to enable boot-wrapper booting next
-stage at EL2.
-The Armv8R AArch64 boots at EL2. If the next stage requires EL2 booting,
-the boot-wrapper should not drop to EL1.
-Currently, this option only works for Armv8R AArch64. Also, to work with
-Linux PSCI, this option will cause secondary cores booting at EL1.
-
-Issue-Id: SCM-3813
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
-Change-Id: I3ba9c87cf0b59d163ca433f74c9e3a46e5ca2c63
----
- Makefile.am | 4 ++++
- arch/aarch64/boot.S | 6 +++++-
- common/psci.c | 6 ++++++
- configure.ac | 5 +++++
- 4 files changed, 20 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index e905602..6604baa 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -33,6 +33,10 @@ PSCI_CPU_ON := 0xc4000003
- endif
- PSCI_CPU_OFF := 0x84000002
-
-+if KEEP_EL
-+DEFINES += -DKEEP_EL
-+endif
-+
- COMMON_SRC := common/
- COMMON_OBJ := boot.o bakery_lock.o platform.o lib.o device_tree.o
-
-diff --git a/arch/aarch64/boot.S b/arch/aarch64/boot.S
-index 27b1139..c079d22 100644
---- a/arch/aarch64/boot.S
-+++ b/arch/aarch64/boot.S
-@@ -254,7 +254,11 @@ el2_init:
- msr cnthctl_el2, x0
- isb
-
-+#ifdef KEEP_EL
-+ mov w0, #SPSR_KERNEL
-+#else
- mov w0, #SPSR_KERNEL_EL1
-+#endif
- ldr x1, =spsr_to_elx
- str w0, [x1]
- // fall through
-@@ -334,5 +338,5 @@ ASM_FUNC(jump_kernel)
- .align 3
- flag_keep_el:
- .long 0
--spsr_to_elx:
-+ASM_DATA(spsr_to_elx)
- .long 0
-diff --git a/common/psci.c b/common/psci.c
-index a0e8700..945780b 100644
---- a/common/psci.c
-+++ b/common/psci.c
-@@ -18,6 +18,8 @@
- #error "No MPIDRs provided"
- #endif
-
-+extern unsigned int spsr_to_elx;
-+
- static unsigned long branch_table[NR_CPUS];
-
- bakery_ticket_t branch_table_lock[NR_CPUS];
-@@ -44,6 +46,10 @@ static int psci_cpu_on(unsigned long target_mpidr, unsigned long address)
- ret = psci_store_address(cpu, address);
- bakery_unlock(branch_table_lock, this_cpu);
-
-+#ifdef KEEP_EL
-+ spsr_to_elx = SPSR_KERNEL_EL1;
-+#endif
-+
- return ret;
- }
-
-diff --git a/configure.ac b/configure.ac
-index 53e51be..0e07db3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -25,6 +25,11 @@ AS_IF([test "x$BOOTWRAPPER_ES" = x32 -a "x$KERNEL_ES" != x32],
- [AC_MSG_ERROR([a 32-bit boot-wrapper cannot launch a 64-bit kernel])]
- )
-
-+AC_ARG_ENABLE([keep-el],
-+ AC_HELP_STRING([--enable-keep-el], [keep exception level when start kernel]),
-+ [KEEP_EL=yes], [KEEP_EL=no])
-+AM_CONDITIONAL([KEEP_EL], [test "x$KEEP_EL" = xyes])
-+
- # Allow a user to pass --with-kernel-dir
- AC_ARG_WITH([kernel-dir],
- AS_HELP_STRING([--with-kernel-dir], [specify the root Linux kernel build directory (required)]),
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0016-Makefile-Change-COUNTER_FREQ-to-100-MHz.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0016-Makefile-Change-COUNTER_FREQ-to-100-MHz.patch
deleted file mode 100644
index e93a300fb7..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0016-Makefile-Change-COUNTER_FREQ-to-100-MHz.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 0c0695cd3160ccdb95bae29b7668918015c0b6aa Mon Sep 17 00:00:00 2001
-From: Peter Hoyes <Peter.Hoyes@arm.com>
-Date: Tue, 1 Feb 2022 11:28:46 +0000
-Subject: [PATCH] Makefile: Change COUNTER_FREQ to 100 MHz
-
-Older Arm Fast Models (AEM < RevC) had a base frequency of 24 MHz. but
-the RevC base models use 100 MHz. There is not a robust method of
-determining the configured base frequency at runtime, so update
-COUNTER_FREQ to be 100 MHz.
-
-Issue-Id: SCM-3871
-Upstream-Status: Pending
-Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
-Change-Id: Ia9ad0f8ee488d1a887791f1fa1d8f3bf9c5887fd
----
- Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 6604baa..cc6504e 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -13,7 +13,7 @@ SCRIPT_DIR := $(top_srcdir)/scripts
- PHYS_OFFSET := $(shell perl -I $(SCRIPT_DIR) $(SCRIPT_DIR)/findmem.pl $(KERNEL_DTB))
- UART_BASE := $(shell perl -I $(SCRIPT_DIR) $(SCRIPT_DIR)/findbase.pl $(KERNEL_DTB) 0 'arm,pl011')
- SYSREGS_BASE := $(shell perl -I $(SCRIPT_DIR) $(SCRIPT_DIR)/findbase.pl $(KERNEL_DTB) 0 'arm,vexpress-sysreg' 2> /dev/null)
--COUNTER_FREQ := 24000000
-+COUNTER_FREQ := 100000000
-
- CPU_IDS := $(shell perl -I $(SCRIPT_DIR) $(SCRIPT_DIR)/findcpuids.pl $(KERNEL_DTB))
- NR_CPUS := $(shell echo $(CPU_IDS) | tr ',' ' ' | wc -w)
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0017-PSCI-Apply-flush-cache-after-setting-branch_data.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0017-PSCI-Apply-flush-cache-after-setting-branch_data.patch
deleted file mode 100644
index b63d8d1d3f..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0017-PSCI-Apply-flush-cache-after-setting-branch_data.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From fa73d885be85eee4369b292ec601e7b024a68807 Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Tue, 2 Nov 2021 10:48:39 +0800
-Subject: [PATCH] PSCI: Apply flush cache after setting branch_data
-
-For v8-R64, Hypervisor calls boot-wrapper's PSCI service using simple
-function call (instead of hvc).
-
-In this case, hypervisor's main core has enabled MPU and cache, but
-the secondary cores which are spinning have not enabled cache.
-That means if the main core set the branch_data to 1 to boot other
-cores, the secondary cores cannot see the change of branch_data and
-also cannot break the spin.
-
-Thus, the PSCI service in boot-wrapper needs a cache flush after
-setting branch_data in order to let other cores see the change.
-
-Issue-ID: SCM-3816
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
-Change-Id: Ifc282091c54d8fb2ffdb8cfa7fd3ffc1f4be717e
----
- common/psci.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/common/psci.c b/common/psci.c
-index 945780b..6efc695 100644
---- a/common/psci.c
-+++ b/common/psci.c
-@@ -24,12 +24,18 @@ static unsigned long branch_table[NR_CPUS];
-
- bakery_ticket_t branch_table_lock[NR_CPUS];
-
-+static inline void flush_per_cpu_data(void *data)
-+{
-+ asm volatile ("dc cvac, %0" : : "r" (data));
-+}
-+
- static int psci_store_address(unsigned int cpu, unsigned long address)
- {
- if (branch_table[cpu] != PSCI_ADDR_INVALID)
- return PSCI_RET_ALREADY_ON;
-
- branch_table[cpu] = address;
-+ flush_per_cpu_data((void*)&(branch_table[cpu]));
- return PSCI_RET_SUCCESS;
- }
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0018-PSCI-Add-function-call-entry-point.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0018-PSCI-Add-function-call-entry-point.patch
deleted file mode 100644
index dd2b96537f..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0018-PSCI-Add-function-call-entry-point.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 9da48e3433b919868650cd60e28827273a42c63b Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Tue, 25 Jan 2022 14:56:36 +0800
-Subject: [PATCH] PSCI: Add function call entry point
-
-The max exception level of Armv8R AArch64 is EL2, which means it has no
-exclusive EL for firmware. That is, firmware and hypervisors have to share
-the EL2. Also, hypervisors cannot call firmware services via a 'smc'
-instruction. Thus, boot-wrapper has to provide a function entry point
-for Armv8R AArch64.
-
-Issue-Id: SCM-3816
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
-Change-Id: I06ec8e50298603155c6d8ae2330e71db2f111182
----
- common/psci.c | 24 ++++++++++++++++++++----
- 1 file changed, 20 insertions(+), 4 deletions(-)
-
-diff --git a/common/psci.c b/common/psci.c
-index 6efc695..8fdefb5 100644
---- a/common/psci.c
-+++ b/common/psci.c
-@@ -20,6 +20,8 @@
-
- extern unsigned int spsr_to_elx;
-
-+unsigned long flag_from_smc_fn[NR_CPUS];
-+
- static unsigned long branch_table[NR_CPUS];
-
- bakery_ticket_t branch_table_lock[NR_CPUS];
-@@ -49,12 +51,14 @@ static int psci_cpu_on(unsigned long target_mpidr, unsigned long address)
- return PSCI_RET_INVALID_PARAMETERS;
-
- bakery_lock(branch_table_lock, this_cpu);
-- ret = psci_store_address(cpu, address);
-- bakery_unlock(branch_table_lock, this_cpu);
--
- #ifdef KEEP_EL
-- spsr_to_elx = SPSR_KERNEL_EL1;
-+ if (!flag_from_smc_fn[this_cpu]) {
-+ spsr_to_elx = SPSR_KERNEL_EL1;
-+ flush_per_cpu_data((void*)&(spsr_to_elx));
-+ }
- #endif
-+ ret = psci_store_address(cpu, address);
-+ bakery_unlock(branch_table_lock, this_cpu);
-
- return ret;
- }
-@@ -90,6 +94,18 @@ long psci_call(unsigned long fid, unsigned long arg1, unsigned long arg2)
- }
- }
-
-+long smc_fn_entry(unsigned long fid, unsigned long arg1, unsigned long arg2)
-+{
-+ long ret;
-+ unsigned int this_cpu = this_cpu_logical_id();
-+
-+ flag_from_smc_fn[this_cpu] = 1;
-+ ret = psci_call(fid, arg1, arg2);
-+ flag_from_smc_fn[this_cpu] = 0;
-+
-+ return ret;
-+}
-+
- void __noreturn psci_first_spin(unsigned int cpu)
- {
- if (cpu == MPIDR_INVALID)
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0019-lds-Rearrange-and-mark-the-sections.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0019-lds-Rearrange-and-mark-the-sections.patch
deleted file mode 100644
index c0d1fcbbb8..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0019-lds-Rearrange-and-mark-the-sections.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 7c5e40d9f8699a55ac2187c035429c643e6d0ef0 Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Tue, 2 Nov 2021 15:10:28 +0800
-Subject: [PATCH] lds: Rearrange and mark the sections
-
-To make it possible for the next stage to protect sections with MPU,
-boot-wrapper needs to provide the text and data section information.
-By rearranging the .data .rodata and .vector sections, all sections
-can be split into 2 big sections:
- - RO and Executable
- - RW and Non-Executable
-Add firmware_data to mark the boundry, thus:
-firmware_start to firmware_data - 1 indicates RO and Executable section,
-firmware_data to firmware_end - 1 indicates RW and Non-Executable
-section.
-
-Also, the firmware_data and firmware_end should align with 64 bytes,
-since Armv8R AArch64 MPU requires it.
-
-Issue-ID: SCM-3816
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
-Change-Id: I55342aa7492f2c7b5c16ab9a6472c8cb45cff8fd
----
- model.lds.S | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/model.lds.S b/model.lds.S
-index ab98ddf..85451f9 100644
---- a/model.lds.S
-+++ b/model.lds.S
-@@ -63,12 +63,16 @@ SECTIONS
- }
- #endif
-
-+#define FIRMWARE_ALIGN . = ALIGN(1 << 6)
- .boot PHYS_OFFSET: {
- PROVIDE(firmware_start = .);
- *(.init)
- *(.text*)
-- *(.data* .rodata* .bss* COMMON)
- *(.vectors)
-+ *(.rodata*)
-+ FIRMWARE_ALIGN;
-+ PROVIDE(firmware_data = .);
-+ *(.data* .bss* COMMON)
- *(.stack)
- PROVIDE(etext = .);
- }
-@@ -77,6 +81,7 @@ SECTIONS
- mbox = .;
- QUAD(0x0)
- }
-+ FIRMWARE_ALIGN;
- PROVIDE(firmware_end = .);
-
- ASSERT(etext <= (PHYS_OFFSET + TEXT_LIMIT), ".text overflow!")
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0020-common-Provide-firmware-info-using-libfdt.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0020-common-Provide-firmware-info-using-libfdt.patch
deleted file mode 100644
index 1573be05c4..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0020-common-Provide-firmware-info-using-libfdt.patch
+++ /dev/null
@@ -1,342 +0,0 @@
-From 3c1140c29c39561848056fb4b9a03042b00279f3 Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Wed, 29 Dec 2021 15:17:38 +0800
-Subject: [PATCH] common: Provide firmware info using libfdt
-
-Boot-wrapper uses libfdt to provide more info in device tree.
-We add a new node to include those new firmware relevant infomation.
-The new node defined as follows:
- fw-shared-info {
- compatible = "firmware,shared_info";
-
- #address-cells = <0x02>;
- #size-cells = <0x02>;
-
- version = "1.0";
- regions = <START_ADDR_HIGH START_ADDR_LOW SIZE_HIGH SIZE_LOW
- 0x0 0x80000000 0x0 0x400000
- 0x0 0x90000000 0x0 0x400000
- 0x0 0xA0000000 0x0 0x400000>;
- regions-permission = "RX", "R", "RWX", "RW";
- regions-cache = "Cache", "NCache", "Cache", "Device"
-
- function_entry = <ENTRY_ADDR_HIGH ENRTY_ADDR_LOW>;
- };
-The node path is /fw-shared-info.
-For boot-wrapper, in real case, it will be:
- fw-shared-info {
- compatible = "firmware,shared_info";
-
- #address-cells = <0x02>;
- #size-cells = <0x02>;
-
- version = "1.0";
- regions = <0x0 firmware_start 0x0 firmware_code_size
- 0x0 firmware_data 0x0 firmware_data_size>;
- regions-permission = "RX", "RW";
- regions-cache = "Cache", "Cache";
-
- function_entry = <0x0 smc_fn_entry>;
- };
-
-Issue-Id: SCM-3816
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
-Change-Id: I6ebc59ce2bd3939b0fe066720d57821eaa1bed27
----
- common/device_tree.c | 271 ++++++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 270 insertions(+), 1 deletion(-)
-
-diff --git a/common/device_tree.c b/common/device_tree.c
-index 4d0876c..7f7befc 100644
---- a/common/device_tree.c
-+++ b/common/device_tree.c
-@@ -8,13 +8,225 @@
- */
- #include <libfdt.h>
-
-+#define DEVICE_TREE_DEBUG 1
-+
-+#define FW_NODE_NAME "/fw-shared-info"
-+#define FW_COMPAT "firmware,shared_info"
-+#define FW_INFO_VER "1.0"
-+
-+#ifdef BOOTWRAPPER_32
-+#define CELL_NUM 1
-+#define VAL_TYPE uint32_t
-+#else
-+#define CELL_NUM 2
-+#define VAL_TYPE uint64_t
-+#endif
-+
-+#define ALIGN(x) (((x) + (FDT_TAGSIZE) - 1) & ~((FDT_TAGSIZE) - 1))
-+
- extern unsigned long dtb;
--extern char firmware_start[], firmware_end[];
-+extern char firmware_start[], firmware_data[], firmware_end[];
-+
-+extern long smc_fn_entry(unsigned long, unsigned long, unsigned long);
-
- extern void print_string(const char *str);
-+extern void print_hex(unsigned int val);
-
- static void *blob;
-
-+static char *realloc_node(char *fdt, const char *name)
-+{
-+ int delta;
-+ int new_sz;
-+ /* FDT_BEGIN_NODE, node name in off_struct and FDT_END_NODE */
-+ delta = sizeof(struct fdt_node_header) + ALIGN(strlen(name) + 1)
-+ + FDT_TAGSIZE;
-+ new_sz = fdt_totalsize(fdt) + delta;
-+ fdt_open_into(fdt, fdt, new_sz);
-+ return fdt;
-+}
-+
-+static int create_node(const char *node_name)
-+{
-+ int node = 0;
-+ char *p;
-+
-+ p = strrchr(node_name, '/');
-+ if (!p) {
-+ print_string("node name without '/'\r\n");
-+ return -1;
-+ }
-+ *p = '\0';
-+
-+ blob = realloc_node(blob, p + 1);
-+
-+ if (p > node_name) {
-+ node = fdt_path_offset(blob, node_name);
-+ if (node < 0) {
-+ print_string("no node name\r\n");
-+ return -1;
-+ }
-+ }
-+
-+ node = fdt_add_subnode(blob, node, p + 1);
-+ if (node < 0) {
-+ print_string("add subnode err\r\n");
-+ return -1;
-+ }
-+
-+ return node;
-+}
-+
-+static int dt_create_fw_node(void) {
-+ int fw_node;
-+
-+ fw_node = fdt_path_offset(blob, FW_NODE_NAME);
-+
-+ if(fw_node < 0) {
-+ fw_node = create_node(FW_NODE_NAME);
-+ }
-+
-+ return fw_node;
-+}
-+
-+static char *realloc_property(char *fdt, int nodeoffset, const char *name,
-+ int newlen)
-+{
-+ int delta = 0;
-+ int oldlen = 0;
-+ int new_sz;
-+
-+ if (!fdt_get_property(fdt, nodeoffset, name, &oldlen))
-+ delta = sizeof(struct fdt_property) + strlen(name) + 1;
-+
-+ if (newlen > oldlen)
-+ delta += ALIGN(newlen) - ALIGN(oldlen);
-+
-+ new_sz = fdt_totalsize(fdt) + delta;
-+ fdt_open_into(fdt, fdt, new_sz);
-+ return fdt;
-+}
-+
-+static void dt_set_prop(int node, char *property, void *buf, int len)
-+{
-+ int err;
-+
-+ err = fdt_setprop(blob, node, property, buf, len);
-+ if (err == -FDT_ERR_NOSPACE) {
-+ blob = realloc_property(blob, node, property, len);
-+ err = fdt_setprop(blob, node, property, buf, len);
-+ }
-+ if (err) {
-+ print_string("fdt error\n\r");
-+ }
-+}
-+
-+static void dt_set_prop_u32(int node, char *property, uint32_t val)
-+{
-+ fdt32_t fdt_val = cpu_to_fdt32(val);
-+ int len = sizeof(fdt32_t);
-+
-+ dt_set_prop(node, property, (void*)&fdt_val, len);
-+}
-+
-+static void dt_set_prop_u64(int node, char *property, uint64_t val)
-+{
-+ fdt64_t fdt_val = cpu_to_fdt64(val);
-+ int len = sizeof(fdt64_t);
-+
-+ dt_set_prop(node, property, (void*)&fdt_val, len);
-+}
-+
-+/* This dt_set_prop_u32_array maybe unused according to the BOOTWRAPPER_32 */
-+__attribute__((unused))
-+static void dt_set_prop_u32_array(int node, char *property, uint32_t *vals,
-+ int size)
-+{
-+ fdt32_t *fdt_vals = (fdt32_t*)vals;
-+ int len = sizeof(fdt32_t) * size;
-+
-+ for (int i = 0; i < size; i++) {
-+ fdt_vals[i] = cpu_to_fdt32(vals[i]);
-+ }
-+
-+ dt_set_prop(node, property, (void*)fdt_vals, len);
-+}
-+
-+static void dt_set_prop_u64_array(int node, char *property, uint64_t *vals,
-+ int size)
-+{
-+ fdt64_t *fdt_vals = (fdt64_t*)vals;
-+ int len = sizeof(fdt64_t) * size;
-+
-+ for (int i = 0; i < size; i++) {
-+ fdt_vals[i] = cpu_to_fdt64(vals[i]);
-+ }
-+
-+ dt_set_prop(node, property, (void*)fdt_vals, len);
-+}
-+
-+#if DEVICE_TREE_DEBUG
-+static void dt_dump_string(const void *s, int len)
-+{
-+ char *sub = (char*)s;
-+ int sublen;
-+ while(*sub && ((uint64_t)sub - (uint64_t)s) < len) {
-+ sublen = strlen(sub) + 1;
-+ print_string(sub);
-+ print_string(" ");
-+ sub += sublen;
-+ }
-+ print_string("\n\r");
-+}
-+
-+static void dt_dump_fdt32_array(const void *vals, int len)
-+{
-+ fdt32_t *fdt_vals = (fdt32_t*)vals;
-+ len = len / sizeof(fdt32_t);
-+ for (int i = 0; i < len; i++) {
-+ print_hex(fdt32_to_cpu(fdt_vals[i]));
-+ print_string(" ");
-+ }
-+ print_string("\n\r");
-+}
-+
-+static void dt_dump(int node, char *property, char type)
-+{
-+ const void *val;
-+ int len;
-+
-+ val = fdt_getprop(blob, node, property, &len);
-+ print_string(property);
-+ print_string(": ");
-+
-+ if (type == 's') {
-+ /* string type */
-+ dt_dump_string(val, len);
-+ return;
-+ }
-+
-+ /* uint type */
-+ dt_dump_fdt32_array(val, len);
-+}
-+
-+void dt_dump_all(int node)
-+{
-+ if (node >= 0) {
-+ print_string(FW_NODE_NAME" info:\r\n");
-+ dt_dump(node, "compatible", 's');
-+ dt_dump(node, "version", 's');
-+ dt_dump(node, "function_entry", 'i');
-+ dt_dump(node, "address-cells", 'i');
-+ dt_dump(node, "size-cells", 'i');
-+ dt_dump(node, "regions", 'i');
-+ dt_dump(node, "regions-permission", 's');
-+ dt_dump(node, "regions-cache", 's');
-+ print_string("\r\n");
-+ }
-+}
-+#else
-+void dt_dump_all(int node) { (void*)node; return; }
-+#endif
-
- void dt_add_memreserve(void)
- {
-@@ -32,3 +244,60 @@ void dt_add_memreserve(void)
- print_string("reserve mem add err\n\r");
- }
- }
-+
-+void dt_fw_node_init(int enable)
-+{
-+ int fw_node;
-+
-+ VAL_TYPE regions[] = {
-+ /* code region: start, end, ro, x, cachable */
-+ (VAL_TYPE)firmware_start,
-+ (VAL_TYPE)(firmware_data - firmware_start),
-+ /* data region: start, end, rw, xn, cachable */
-+ (VAL_TYPE)firmware_data,
-+ (VAL_TYPE)(firmware_end - firmware_data),
-+ };
-+ int regions_num = sizeof(regions) / sizeof(VAL_TYPE);
-+ char regions_permission[] = "RX\0RW";
-+ char regions_cache[] = "Cache\0Cache";
-+
-+ if (!enable)
-+ return;
-+
-+ print_string("Prepare "FW_NODE_NAME" node\n\r");
-+
-+ blob = (void*)&dtb;
-+
-+ if(fdt_path_offset(blob, "/psci") < 0) {
-+ print_string("/psci node not found\n\r");
-+ return;
-+ }
-+
-+ fw_node = dt_create_fw_node();
-+
-+ if(fw_node < 0) {
-+ print_string(FW_NODE_NAME" node create err\n\r");
-+ }
-+
-+ dt_set_prop(fw_node, "compatible", FW_COMPAT, sizeof(FW_COMPAT));
-+ dt_set_prop(fw_node, "version", FW_INFO_VER, sizeof(FW_INFO_VER));
-+
-+ dt_set_prop_u32(fw_node, "address-cells", CELL_NUM);
-+ dt_set_prop_u32(fw_node, "size-cells", CELL_NUM);
-+ dt_set_prop(fw_node, "regions-permission", regions_permission,
-+ sizeof(regions_permission));
-+ dt_set_prop(fw_node, "regions-cache", regions_cache,
-+ sizeof(regions_cache));
-+
-+#ifdef BOOTWRAPPER_32
-+ dt_set_prop_u32_array(fw_node, "regions", regions, regions_num);
-+ dt_set_prop_u32(fw_node, "function_entry", (VAL_TYPE)smc_fn_entry);
-+#else
-+ dt_set_prop_u64_array(fw_node, "regions", regions, regions_num);
-+ dt_set_prop_u64(fw_node, "function_entry", (VAL_TYPE)smc_fn_entry);
-+#endif
-+
-+ fdt_pack(blob);
-+
-+ dt_dump_all(fw_node);
-+}
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0021-boot-Enable-firmware-node-initialization.patch b/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0021-boot-Enable-firmware-node-initialization.patch
deleted file mode 100644
index 9b367a7bfb..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/boot-wrapper-aarch64/files/fvp-baser-aemv8r64/0021-boot-Enable-firmware-node-initialization.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From b1105e862e8f770fc195bc20e9c64d231dd32f66 Mon Sep 17 00:00:00 2001
-From: Jaxson Han <jaxson.han@arm.com>
-Date: Wed, 29 Dec 2021 15:33:17 +0800
-Subject: [PATCH] boot: Enable firmware node initialization
-
-Enable the firmware node initialization, so that the next stage
-(hypervisor) could share the EL2 with firmware (boot-wrapper). The next
-stage (hypervisor) get the smccc entry point, code/data sections, the
-sections attrs and firmware node version and so on.
-It is worth noting that this EL2 sharing mechanism is only for Armv8R
-AArch64, thus add flag_v8r to record if the arch is Armv8R AArch64.
-Enable the firmware node initialization only if it is Armv8R AArch64.
-Also, we increase the stack size to 1024 to fix the stack overflow issue
-when using the libfdt.
-
-Add -fno-builtin options to CFLAGS to avoid the issue that the 'memset'
-in common/lib.c conflicts with builtin 'memset' function. GCC version
->= 10 will have an incorrect compilation without -fno-builtin;
-
-Issue-Id: SCM-3816
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Jaxson Han <jaxson.han@arm.com>
-Change-Id: Ib274485a34d26215595fd0cd737be86610289817
----
- Makefile.am | 4 ++--
- arch/aarch64/boot.S | 6 ++++++
- common/boot.c | 4 ++++
- 3 files changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index cc6504e..fbe6b81 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -23,7 +23,7 @@ DEFINES += -DCPU_IDS=$(CPU_IDS)
- DEFINES += -DNR_CPUS=$(NR_CPUS)
- DEFINES += $(if $(SYSREGS_BASE), -DSYSREGS_BASE=$(SYSREGS_BASE), )
- DEFINES += -DUART_BASE=$(UART_BASE)
--DEFINES += -DSTACK_SIZE=256
-+DEFINES += -DSTACK_SIZE=1024
-
- if KERNEL_32
- DEFINES += -DKERNEL_32
-@@ -134,7 +134,7 @@ CFLAGS += -I$(top_srcdir)/include/ -I$(top_srcdir)/$(ARCH_SRC)/include/
- CFLAGS += -Wall -fomit-frame-pointer
- CFLAGS += -ffreestanding -nostdlib
- CFLAGS += -fno-stack-protector
--CFLAGS += -fno-stack-protector
-+CFLAGS += -fno-stack-protector -fno-builtin
- CFLAGS += -ffunction-sections -fdata-sections
- CFLAGS += -fno-pic -fno-pie
- LDFLAGS += --gc-sections
-diff --git a/arch/aarch64/boot.S b/arch/aarch64/boot.S
-index c079d22..daaa674 100644
---- a/arch/aarch64/boot.S
-+++ b/arch/aarch64/boot.S
-@@ -261,6 +261,10 @@ el2_init:
- #endif
- ldr x1, =spsr_to_elx
- str w0, [x1]
-+
-+ mov w0, #1
-+ ldr x1, =flag_v8r
-+ str w0, [x1]
- // fall through
-
- el_max_init:
-@@ -340,3 +344,5 @@ flag_keep_el:
- .long 0
- ASM_DATA(spsr_to_elx)
- .long 0
-+ASM_DATA(flag_v8r)
-+ .long 0
-diff --git a/common/boot.c b/common/boot.c
-index ee2bea0..38b2dca 100644
---- a/common/boot.c
-+++ b/common/boot.c
-@@ -11,6 +11,9 @@
-
- extern unsigned long entrypoint;
- extern unsigned long dtb;
-+extern unsigned int flag_v8r;
-+
-+extern void dt_fw_node_init(int enable);
-
- void init_platform(void);
-
-@@ -64,6 +67,7 @@ void __noreturn first_spin(unsigned int cpu, unsigned long *mbox,
- if (cpu == 0) {
- init_platform();
- dt_add_memreserve();
-+ dt_fw_node_init(flag_v8r == 1);
-
- *mbox = (unsigned long)&entrypoint;
- sevl();
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-corstone1000.inc b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-corstone1000.inc
index 3f66bed55a..ee0713718f 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-corstone1000.inc
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-corstone1000.inc
@@ -38,7 +38,8 @@ EXTRA_OEMAKE:append = " \
NR_OF_IMAGES_IN_FW_BANK=4 \
COT=tbbr \
ARM_ROTPK_LOCATION=devel_rsa \
+ ERRATA_A35_855472=1 \
ROT_KEY=plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem \
- BL32=${RECIPE_SYSROOT}/lib/firmware/tee-pager_v2.bin \
+ BL32=${RECIPE_SYSROOT}/${nonarch_base_libdir}/firmware/tee-pager_v2.bin \
LOG_LEVEL=50 \
"
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc
index c2fa223cf5..900decc2b9 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc
@@ -36,6 +36,6 @@ EXTRA_OEMAKE:append = "\
CREATE_KEYS=1 \
ARM_ROTPK_LOCATION="devel_rsa" \
ROT_KEY="${TFA_ROT_KEY}" \
- BL32=${RECIPE_SYSROOT}/lib/firmware/tee-pager_v2.bin \
+ BL32=${RECIPE_SYSROOT}/${nonarch_base_libdir}/firmware/tee-pager_v2.bin \
BL33=${RECIPE_SYSROOT}/firmware/uefi.bin \
"
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-tc.inc b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-tc.inc
index e17a8f5996..c14629fd19 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-tc.inc
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-tc.inc
@@ -27,7 +27,7 @@ EXTRA_OEMAKE += "TARGET_PLATFORM=${TFA_TARGET_PLATFORM}"
# Set optee as SP. Set spmc manifest and sp layout file to optee
DEPENDS += "optee-os"
-TFA_SP_LAYOUT_FILE = "${RECIPE_SYSROOT}/lib/firmware/sp_layout.json"
+TFA_SP_LAYOUT_FILE = "${RECIPE_SYSROOT}/${nonarch_base_libdir}/firmware/sp_layout.json"
TFA_ARM_SPMC_MANIFEST_DTS = "plat/arm/board/tc/fdts/tc_spmc_optee_sp_manifest.dts"
EXTRA_OEMAKE += "SCP_BL2=${RECIPE_SYSROOT}/firmware/scp_ramfw.bin"
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0006-Platform-Corstone1000-Enable-Signed-Capsule.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0006-Platform-Corstone1000-Enable-Signed-Capsule.patch
new file mode 100644
index 0000000000..49c336de64
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0006-Platform-Corstone1000-Enable-Signed-Capsule.patch
@@ -0,0 +1,102 @@
+From fa0988fd876400dc1bb451fffc4b167265b40d25 Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <emekcan.aras@arm.com>
+Date: Thu, 14 Sep 2023 12:14:28 +0100
+Subject: [PATCH] Platform: Corstone1000: Enable Signed Capsule
+
+Enables signed capsule update and adjusts the necessary structs (fmp_payload_header
+, image_auth, etc.) to comply with the new capsule generation tool (mkeficapsule).
+
+Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
+Upstream-Status: Pending [Not submitted to upstream yet]
+---
+ .../fw_update_agent/uefi_capsule_parser.c | 25 +++++++++++--------
+ .../fw_update_agent/uefi_capsule_parser.h | 2 ++
+ 2 files changed, 17 insertions(+), 10 deletions(-)
+
+diff --git a/platform/ext/target/arm/corstone1000/fw_update_agent/uefi_capsule_parser.c b/platform/ext/target/arm/corstone1000/fw_update_agent/uefi_capsule_parser.c
+index b72ff1eb91..c706c040ac 100644
+--- a/platform/ext/target/arm/corstone1000/fw_update_agent/uefi_capsule_parser.c
++++ b/platform/ext/target/arm/corstone1000/fw_update_agent/uefi_capsule_parser.c
+@@ -102,11 +102,9 @@ enum uefi_capsule_error_t uefi_capsule_retrieve_images(void* capsule_ptr,
+ }
+
+ capsule_header = (efi_capsule_header_t*)ptr;
+- ptr += sizeof(efi_capsule_header_t) + sizeof(uint32_t);
++ ptr += sizeof(efi_capsule_header_t);
+ fmp_capsule_header = (efi_firmware_management_capsule_header_t*)ptr;
+
+- fmp_payload_header = fmp_capsule_header + sizeof(*fmp_capsule_header);
+-
+ total_size = capsule_header->capsule_image_size;
+ image_count = fmp_capsule_header->payload_item_count;
+ images_info->nr_image = image_count;
+@@ -119,22 +117,20 @@ enum uefi_capsule_error_t uefi_capsule_retrieve_images(void* capsule_ptr,
+ }
+
+ for (int i = 0; i < image_count; i++) {
+-
+ image_header = (efi_firmware_management_capsule_image_header_t*)(ptr +
+ fmp_capsule_header->item_offset_list[i]);
+
+ images_info->size[i] = image_header->update_image_size;
+- images_info->version[i] = fmp_payload_header->fw_version;
+- FWU_LOG_MSG("%s: image %i version = %u\n\r", __func__, i,
+- images_info->version[i]);
++
+ #ifdef AUTHENTICATED_CAPSULE
+ image_auth = (efi_firmware_image_authentication_t*)(
+ (char*)image_header +
+ sizeof (efi_firmware_management_capsule_image_header_t)
+ );
+ auth_size = sizeof(uint64_t) /* monotonic_count */ +
+- image_auth->auth_info.hdr.dwLength /* WIN_CERTIFICATE + cert_data */ +
+- sizeof(struct efi_guid) /* cert_type */;
++ image_auth->auth_info.hdr.dwLength/* WIN_CERTIFICATE + cert_data + cert_type */;
++
++ fmp_payload_header = (fmp_payload_header_t*)((char*)image_auth + auth_size);
+
+ FWU_LOG_MSG("%s: auth size = %u\n\r", __func__, auth_size);
+
+@@ -143,16 +139,25 @@ enum uefi_capsule_error_t uefi_capsule_retrieve_images(void* capsule_ptr,
+ images_info->image[i] = (
+ (char*)image_header +
+ sizeof(efi_firmware_management_capsule_image_header_t) +
+- auth_size);
++ auth_size +
++ sizeof(*fmp_payload_header));
+ #else
+ images_info->image[i] = (
+ (char*)image_header +
+ sizeof(efi_firmware_management_capsule_image_header_t) +
+ sizeof(*fmp_payload_header));
++
++ fmp_payload_header = (fmp_payload_header_t*)((char*)image_header +
++ sizeof(efi_firmware_management_capsule_image_header_t));
++
+ #endif
+ memcpy(&images_info->guid[i], &(image_header->update_image_type_id),
+ sizeof(struct efi_guid));
+
++ images_info->version[i] = fmp_payload_header->fw_version;
++ FWU_LOG_MSG("%s: image %i version = %d\n\r", __func__, i,
++ images_info->version[i]);
++
+ FWU_LOG_MSG("%s: image %d at %p, size=%u\n\r", __func__, i,
+ images_info->image[i], images_info->size[i]);
+
+diff --git a/platform/ext/target/arm/corstone1000/fw_update_agent/uefi_capsule_parser.h b/platform/ext/target/arm/corstone1000/fw_update_agent/uefi_capsule_parser.h
+index a890a709e9..a31cd8a3a0 100644
+--- a/platform/ext/target/arm/corstone1000/fw_update_agent/uefi_capsule_parser.h
++++ b/platform/ext/target/arm/corstone1000/fw_update_agent/uefi_capsule_parser.h
+@@ -12,6 +12,8 @@
+ #include "fip_parser/external/uuid.h"
+ #include "flash_layout.h"
+
++#define AUTHENTICATED_CAPSULE 1
++
+ enum uefi_capsule_error_t {
+ UEFI_CAPSULE_PARSER_SUCCESS = 0,
+ UEFI_CAPSULE_PARSER_ERROR = (-1)
+--
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m-corstone1000.inc b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m-corstone1000.inc
index a259390a52..601d165236 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m-corstone1000.inc
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m-corstone1000.inc
@@ -33,6 +33,7 @@ SRC_URI:append:corstone1000 = " \
file://0003-Platform-Corstone1000-Calculate-the-new-CRC32-value-.patch \
file://0004-arm-trusted-firmware-m-disable-fatal-warnings.patch \
file://0005-Platform-corstone1000-add-unique-firmware-GUID.patch \
+ file://0006-Platform-Corstone1000-Enable-Signed-Capsule.patch \
"
# TF-M ships patches for external dependencies that needs to be applied
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0035-dt-Provide-a-way-to-remove-non-compliant-nodes-and-p.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0035-dt-Provide-a-way-to-remove-non-compliant-nodes-and-p.patch
new file mode 100644
index 0000000000..25a7aa3069
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0035-dt-Provide-a-way-to-remove-non-compliant-nodes-and-p.patch
@@ -0,0 +1,137 @@
+From a37ab0c2578a4627111022d2d1f27f9efa1c2b76 Mon Sep 17 00:00:00 2001
+From: Sughosh Ganu <sughosh.ganu@linaro.org>
+Date: Thu, 21 Sep 2023 14:13:42 +0100
+Subject: [PATCH 35/37] dt: Provide a way to remove non-compliant nodes and
+ properties
+
+Add a function which is registered to spy for a EVT_FT_FIXUP event,
+and removes the non upstreamed nodes and properties from the
+devicetree before it gets passed to the OS.
+
+This allows removing entire nodes, or specific properties under nodes
+from the devicetree. The required nodes and properties can be
+registered for removal through the DT_NON_COMPLIANT_PURGE and
+DT_NON_COMPLIANT_PURGE_LIST macros.
+
+Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
+Upstream-Status: Submitted [RFC: https://lore.kernel.org/u-boot/aca7e6fa-2dec-a7c5-e47e-84c5ffa6f9b7@gmx.de/T/#m16d14ee960427cc88066bdcdd76f0a26738bb66d]
+---
+ include/dt-structs.h | 11 +++++++
+ lib/Makefile | 1 +
+ lib/dt_purge.c | 73 ++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 85 insertions(+)
+ create mode 100644 lib/dt_purge.c
+
+diff --git a/include/dt-structs.h b/include/dt-structs.h
+index fa1622cb1d..f535c60471 100644
+--- a/include/dt-structs.h
++++ b/include/dt-structs.h
+@@ -57,3 +57,14 @@ struct phandle_2_arg {
+ #endif
+
+ #endif
++
++struct dt_non_compliant_purge {
++ const char *node_path;
++ const char *prop;
++};
++
++#define DT_NON_COMPLIANT_PURGE(__name) \
++ ll_entry_declare(struct dt_non_compliant_purge, __name, dt_purge)
++
++#define DT_NON_COMPLIANT_PURGE_LIST(__name) \
++ ll_entry_declare_list(struct dt_non_compliant_purge, __name, dt_purge)
+diff --git a/lib/Makefile b/lib/Makefile
+index 8d8ccc8bbc..82a906daa0 100644
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -37,6 +37,7 @@ endif
+ obj-y += crc8.o
+ obj-y += crc16.o
+ obj-y += crc16-ccitt.o
++obj-y += dt_purge.o
+ obj-$(CONFIG_ERRNO_STR) += errno_str.o
+ obj-$(CONFIG_FIT) += fdtdec_common.o
+ obj-$(CONFIG_TEST_FDTDEC) += fdtdec_test.o
+diff --git a/lib/dt_purge.c b/lib/dt_purge.c
+new file mode 100644
+index 0000000000..f893ba9796
+--- /dev/null
++++ b/lib/dt_purge.c
+@@ -0,0 +1,73 @@
++// SPDX-License-Identifier: GPL-2.0-or-later
++/*
++ * Copyright (c) 2023, Linaro Limited
++ */
++
++#include <dt-structs.h>
++#include <event.h>
++#include <linker_lists.h>
++
++#include <linux/libfdt.h>
++
++/**
++ * dt_non_compliant_purge() - Remove non-upstreamed nodes and properties
++ * from the DT
++ * @ctx: Context for event
++ * @event: Event to process
++ *
++ * Iterate through an array of DT nodes and properties, and remove them
++ * from the device-tree before the DT gets handed over to the kernel.
++ * These are nodes and properties which do not have upstream bindings
++ * and need to be purged before being handed over to the kernel.
++ *
++ * If both the node and property are specified, delete the property. If
++ * only the node is specified, delete the entire node, including it's
++ * subnodes, if any.
++ *
++ * Return: 0 if OK, -ve on error
++ */
++static int dt_non_compliant_purge(void *ctx, struct event *event)
++{
++ int nodeoff = 0;
++ int err = 0;
++ void *fdt;
++ const struct event_ft_fixup *fixup = &event->data.ft_fixup;
++ struct dt_non_compliant_purge *purge_entry;
++ struct dt_non_compliant_purge *purge_start =
++ ll_entry_start(struct dt_non_compliant_purge, dt_purge);
++ int nentries = ll_entry_count(struct dt_non_compliant_purge, dt_purge);
++
++ if (fixup->images)
++ return 0;
++
++ fdt = fixup->tree.fdt;
++ for (purge_entry = purge_start; purge_entry != purge_start + nentries;
++ purge_entry++) {
++ nodeoff = fdt_path_offset(fdt, purge_entry->node_path);
++ if (nodeoff < 0) {
++ log_debug("Error (%d) getting node offset for %s\n",
++ nodeoff, purge_entry->node_path);
++ continue;
++ }
++
++ if (purge_entry->prop) {
++ err = fdt_delprop(fdt, nodeoff, purge_entry->prop);
++ if (err < 0 && err != -FDT_ERR_NOTFOUND) {
++ log_debug("Error (%d) deleting %s\n",
++ err, purge_entry->prop);
++ goto out;
++ }
++ } else {
++ err = fdt_del_node(fdt, nodeoff);
++ if (err) {
++ log_debug("Error (%d) trying to delete node %s\n",
++ err, purge_entry->node_path);
++ goto out;
++ }
++ }
++ }
++
++out:
++ return err;
++}
++EVENT_SPY(EVT_FT_FIXUP, dt_non_compliant_purge);
+--
+2.25.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0036-bootefi-Call-the-EVT_FT_FIXUP-event-handler.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0036-bootefi-Call-the-EVT_FT_FIXUP-event-handler.patch
new file mode 100644
index 0000000000..2eb273afc6
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0036-bootefi-Call-the-EVT_FT_FIXUP-event-handler.patch
@@ -0,0 +1,56 @@
+From 729c0163ae6aed76b3267b95d2989e70ded66716 Mon Sep 17 00:00:00 2001
+From: Sughosh Ganu <sughosh.ganu@linaro.org>
+Date: Thu, 21 Sep 2023 14:15:13 +0100
+Subject: [PATCH 36/37] bootefi: Call the EVT_FT_FIXUP event handler
+
+The bootefi command passes the devicetree to the kernel through the
+EFI config table. Call the event handlers for fixing the devicetree
+before jumping into the kernel. This removes any devicetree nodes
+and/or properties that are specific only to U-Boot, and are not to be
+passed to the OS.
+
+Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
+Upstream-Status: Submitted [RFC: https://lore.kernel.org/u-boot/aca7e6fa-2dec-a7c5-e47e-84c5ffa6f9b7@gmx.de/T/#m16d14ee960427cc88066bdcdd76f0a26738bb66d]
+---
+ cmd/bootefi.c | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+diff --git a/cmd/bootefi.c b/cmd/bootefi.c
+index 5c0afec154..f9588b66c7 100644
+--- a/cmd/bootefi.c
++++ b/cmd/bootefi.c
+@@ -237,6 +237,23 @@ static void *get_config_table(const efi_guid_t *guid)
+ return NULL;
+ }
+
++/**
++ * event_notify_dt_fixup() - call ft_fixup event
++ *
++ * @fdt: address of the device tree to be passed to the kernel
++ * through the configuration table
++ * Return: None
++ */
++static void event_notify_dt_fixup(void *fdt)
++{
++ int ret;
++ struct event_ft_fixup fixup = {0};
++
++ fixup.tree.fdt = fdt;
++ ret = event_notify(EVT_FT_FIXUP, &fixup, sizeof(fixup));
++ if (ret)
++ printf("Error: %d: FDT Fixup event failed\n", ret);
++}
+ #endif /* !CONFIG_IS_ENABLED(GENERATE_ACPI_TABLE) */
+
+ /**
+@@ -318,6 +335,7 @@ efi_status_t efi_install_fdt(void *fdt)
+ efi_carve_out_dt_rsv(fdt);
+
+ efi_try_purge_kaslr_seed(fdt);
++ event_notify_dt_fixup(fdt);
+
+ if (CONFIG_IS_ENABLED(EFI_TCG2_PROTOCOL_MEASURE_DTB)) {
+ ret = efi_tcg2_measure_dtb(fdt);
+--
+2.25.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0037-corstone1000-purge-U-Boot-specific-DT-nodes.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0037-corstone1000-purge-U-Boot-specific-DT-nodes.patch
new file mode 100644
index 0000000000..2aafadd21f
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0037-corstone1000-purge-U-Boot-specific-DT-nodes.patch
@@ -0,0 +1,51 @@
+From 1527eef4dd54a425a5a178f09fa9d3d65aa3e30a Mon Sep 17 00:00:00 2001
+From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Date: Thu, 21 Sep 2023 15:24:34 +0100
+Subject: [PATCH 37/37] corstone1000: purge U-Boot specific DT nodes
+
+Remove U-Boot specific DT nodes before passing the DT to Linux
+
+This is needed to pass SystemReady IR 2.0 dt-schema tests
+
+Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Upstream-Status: Pending [RFC: https://lore.kernel.org/u-boot/aca7e6fa-2dec-a7c5-e47e-84c5ffa6f9b7@gmx.de/T/#m16d14ee960427cc88066bdcdd76f0a26738bb66d]
+---
+ board/armltd/corstone1000/corstone1000.c | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+diff --git a/board/armltd/corstone1000/corstone1000.c b/board/armltd/corstone1000/corstone1000.c
+index 53c65506d5..e3c0e5bf50 100644
+--- a/board/armltd/corstone1000/corstone1000.c
++++ b/board/armltd/corstone1000/corstone1000.c
+@@ -9,6 +9,7 @@
+ #include <common.h>
+ #include <cpu_func.h>
+ #include <dm.h>
++#include <dt-structs.h>
+ #include <env.h>
+ #include <fwu.h>
+ #include <netdev.h>
+@@ -18,6 +19,20 @@
+ #include <asm/armv8/mmu.h>
+ #include <asm/global_data.h>
+
++/* remove the DT nodes not needed in Linux */
++DT_NON_COMPLIANT_PURGE_LIST(foo) = {
++ { .node_path = "/fwu-mdata" },
++ { .node_path = "/nvmxip-qspi@08000000" },
++ { .node_path = "/soc/mailbox@1b820000" },
++ { .node_path = "/soc/mailbox@1b830000" },
++ { .node_path = "/soc/mhu@1b000000" },
++ { .node_path = "/soc/mhu@1b010000" },
++ { .node_path = "/soc/mhu@1b020000" },
++ { .node_path = "/soc/mhu@1b030000" },
++ { .node_path = "/soc/client" },
++ { .node_path = "/soc/extsys@1A010310" },
++};
++
+ #define CORSTONE1000_KERNEL_PARTS 2
+ #define CORSTONE1000_KERNEL_PRIMARY "kernel_primary"
+ #define CORSTONE1000_KERNEL_SECONDARY "kernel_secondary"
+--
+2.25.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0038-corstone1000-add-signature-device-tree-overlay.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0038-corstone1000-add-signature-device-tree-overlay.patch
new file mode 100644
index 0000000000..9d8c6a9e5c
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0038-corstone1000-add-signature-device-tree-overlay.patch
@@ -0,0 +1,31 @@
+From 88cb6f5a91178903d4e306d8653b941f9727987b Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <emekcan.aras@arm.com>
+Date: Wed, 13 Sep 2023 13:20:15 +0100
+Subject: [PATCH] corstone1000: add signature device tree overlay
+
+Adds signature device tree overlay.
+
+Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
+Upstream-Status: Pending [Not submitted to upstream yet]
+---
+ arch/arm/dts/corstone1000.dtsi | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/arch/arm/dts/corstone1000.dtsi b/arch/arm/dts/corstone1000.dtsi
+index 25a032b6b3..1c3ab2c315 100644
+--- a/arch/arm/dts/corstone1000.dtsi
++++ b/arch/arm/dts/corstone1000.dtsi
+@@ -111,6 +111,10 @@
+ fwu-mdata-store = <&nvmxip>;
+ };
+
++ signature {
++ capsule-key = /incbin/("../../../CRT.esl");
++ };
++
+ soc {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+--
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0039-corstone1000-enable-authenticated-capsule-config.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0039-corstone1000-enable-authenticated-capsule-config.patch
new file mode 100644
index 0000000000..761234e6d5
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0039-corstone1000-enable-authenticated-capsule-config.patch
@@ -0,0 +1,28 @@
+From 9b884d4f483474b99fcb4850197a1c8dde34147d Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <emekcan.aras@arm.com>
+Date: Wed, 13 Sep 2023 13:52:02 +0100
+Subject: [PATCH] corstone1000: enable authenticated capsule config
+
+Enables authenticated capsule update config for corstone1000.
+
+Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
+Upstream-Status: Pending [Not submitted to upstream yet]
+---
+ configs/corstone1000_defconfig | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
+index 5b0b2ac3bf..2de3f5d7b3 100644
+--- a/configs/corstone1000_defconfig
++++ b/configs/corstone1000_defconfig
+@@ -70,6 +70,7 @@ CONFIG_FWU_MDATA=y
+ CONFIG_FWU_MDATA_GPT_BLK=y
+ CONFIG_SYSRESET=y
+ CONFIG_EFI_CAPSULE_ON_DISK=y
++CONFIG_EFI_CAPSULE_AUTHENTICATE=y
+ CONFIG_EFI_IGNORE_OSINDICATIONS=y
+ CONFIG_FWU_MULTI_BANK_UPDATE=y
+ # CONFIG_TOOLS_MKEFICAPSULE is not set
+--
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0040-corstone1000-introduce-EFI-authenticated-capsule-upd.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0040-corstone1000-introduce-EFI-authenticated-capsule-upd.patch
new file mode 100644
index 0000000000..f47dd8c196
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0040-corstone1000-introduce-EFI-authenticated-capsule-upd.patch
@@ -0,0 +1,76 @@
+From b99a39c662b9be5f940b895efa8016f5567e1c1f Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <emekcan.aras@arm.com>
+Date: Wed, 13 Sep 2023 13:55:08 +0100
+Subject: [PATCH] corstone1000: introduce EFI authenticated capsule update
+
+Introduces EFI authenticated capsule update for corstone1000. Corstone1000
+implements platform-specific capsule update mechanism in u-bootdue to the SoC
+design. This patch add authenticated capsule update mechanism to the
+platform-specific firmware-update routine.
+
+Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
+Upstream-Status: Inappropriate [Redesign of Capsule update interface is required]
+---
+ lib/efi_loader/efi_capsule.c | 39 ++++++++++++++++++++++++++++++++++++
+ 1 file changed, 39 insertions(+)
+
+diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c
+index 6a06605ad9..30fb7d1dd5 100644
+--- a/lib/efi_loader/efi_capsule.c
++++ b/lib/efi_loader/efi_capsule.c
+@@ -820,6 +820,12 @@ efi_status_t __efi_runtime EFIAPI efi_update_capsule(
+ u64 scatter_gather_list)
+ {
+ struct efi_capsule_header *capsule;
++ struct efi_firmware_management_capsule_header *capsule_header;
++ struct efi_firmware_management_capsule_image_header *image;
++ size_t image_binary_size;
++ size_t tmp_capsule_payload_size=0;
++ void *tmp_capsule_payload=NULL;
++ void *image_binary;
+ unsigned int i;
+ efi_status_t ret;
+
+@@ -859,6 +865,39 @@ efi_status_t __efi_runtime EFIAPI efi_update_capsule(
+ goto out;
+ }
+
++ capsule_header = (void *)capsule + capsule->header_size;
++ image = (void *)capsule_header + capsule_header->item_offset_list[0];
++ if (IS_ENABLED(CONFIG_EFI_CAPSULE_AUTHENTICATE) &&
++ !(image->image_capsule_support &
++ CAPSULE_SUPPORT_AUTHENTICATION)) {
++ /* no signature */
++ log_err("Corstone1000: Capsule authentication flag check failed. Aborting update\n");
++ ret = EFI_SECURITY_VIOLATION;
++ goto out;
++ }
++
++ image_binary = (void *)image + sizeof(*image);
++ image_binary_size = image->update_image_size;
++ if (IS_ENABLED(CONFIG_EFI_CAPSULE_AUTHENTICATE) &&
++ (image->image_capsule_support &
++ CAPSULE_SUPPORT_AUTHENTICATION)){
++ ret = efi_capsule_authenticate(image_binary, image_binary_size,
++ &tmp_capsule_payload,
++ &tmp_capsule_payload_size);
++
++ if (ret == EFI_SECURITY_VIOLATION) {
++ log_err("Corstone1000: Capsule authentication check failed. Aborting update\n");
++ goto out;
++ } else if (ret != EFI_SUCCESS) {
++ goto out;
++ }
++
++ log_debug("Corstone1000: Capsule authentication successful\n");
++ } else {
++ log_debug("Corstone1000: Capsule authentication disabled. ");
++ log_debug("Corstone1000: Updating capsule without authenticating.\n");
++ }
++
+ /* copy the data to the contiguous buffer */
+ efi_memcpy_runtime(corstone1000_capsule_buf, capsule, capsule->capsule_image_size);
+
+--
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0001-armv8-Add-ARMv8-MPU-configuration-logic.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0001-armv8-Add-ARMv8-MPU-configuration-logic.patch
deleted file mode 100644
index 45db74e133..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0001-armv8-Add-ARMv8-MPU-configuration-logic.patch
+++ /dev/null
@@ -1,257 +0,0 @@
-From 401a88bf6019941d4095476de76af5893686d6f6 Mon Sep 17 00:00:00 2001
-From: Peter Hoyes <Peter.Hoyes@arm.com>
-Date: Wed, 26 May 2021 17:41:10 +0100
-Subject: [PATCH] armv8: Add ARMv8 MPU configuration logic
-
-Detect whether an MMU is present at the current exception level. If
-not, initialize the MPU instead of the MMU during init, and clear the
-MPU regions before transition to Linux.
-
-The MSA in use at EL1&0 may be configurable but can only by determined
-by inspecting VTCR_EL2 at EL2, so assume that there is an MMU for
-backwards compatibility.
-
-Provide a default (blank) MPU memory map, which can be overridden by
-board configurations.
-
-Issue-Id: SCM-2443
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
-Change-Id: I0ee3879f9d7f03fe940664b3551c68eeaa458d17
-
----
- arch/arm/cpu/armv8/cache_v8.c | 101 ++++++++++++++++++++++++++++++-
- arch/arm/include/asm/armv8/mpu.h | 59 ++++++++++++++++++
- arch/arm/include/asm/system.h | 19 ++++++
- 3 files changed, 176 insertions(+), 3 deletions(-)
- create mode 100644 arch/arm/include/asm/armv8/mpu.h
-
-diff --git a/arch/arm/cpu/armv8/cache_v8.c b/arch/arm/cpu/armv8/cache_v8.c
-index 2a226fd063..8611a35eb3 100644
---- a/arch/arm/cpu/armv8/cache_v8.c
-+++ b/arch/arm/cpu/armv8/cache_v8.c
-@@ -15,6 +15,7 @@
- #include <asm/global_data.h>
- #include <asm/system.h>
- #include <asm/armv8/mmu.h>
-+#include <asm/armv8/mpu.h>
-
- DECLARE_GLOBAL_DATA_PTR;
-
-@@ -385,6 +386,91 @@ __weak u64 get_page_table_size(void)
- return size;
- }
-
-+static void mpu_clear_regions(void)
-+{
-+ int i;
-+
-+ for (i = 0; mpu_mem_map[i].end || mpu_mem_map[i].attrs; i++) {
-+ setup_el2_mpu_region(i, 0, 0);
-+ }
-+}
-+
-+static struct mpu_region default_mpu_mem_map[] = {{0,}};
-+__weak struct mpu_region *mpu_mem_map = default_mpu_mem_map;
-+
-+static void mpu_setup(void)
-+{
-+ int i;
-+
-+ if (current_el() != 2) {
-+ panic("MPU configuration is only supported at EL2");
-+ }
-+
-+ set_sctlr(get_sctlr() & ~(CR_M | CR_WXN));
-+
-+ asm volatile("msr MAIR_EL2, %0" : : "r" MEMORY_ATTRIBUTES);
-+
-+ for (i = 0; mpu_mem_map[i].end || mpu_mem_map[i].attrs; i++) {
-+ setup_el2_mpu_region(i,
-+ PRBAR_ADDRESS(mpu_mem_map[i].start)
-+ | PRBAR_OUTER_SH | PRBAR_AP_RW_ANY,
-+ PRLAR_ADDRESS(mpu_mem_map[i].end)
-+ | mpu_mem_map[i].attrs | PRLAR_EN_BIT
-+ );
-+ }
-+
-+ set_sctlr(get_sctlr() | CR_M);
-+}
-+
-+static bool el_has_mmu(void)
-+{
-+ if (current_el() < 2) {
-+ // We have no way of knowing, so assuming we have an MMU
-+ return true;
-+ }
-+
-+ uint64_t id_aa64mmfr0;
-+ asm volatile("mrs %0, id_aa64mmfr0_el1"
-+ : "=r" (id_aa64mmfr0) : : "cc");
-+ uint64_t msa = id_aa64mmfr0 & ID_AA64MMFR0_EL1_MSA_MASK;
-+ uint64_t msa_frac = id_aa64mmfr0 & ID_AA64MMFR0_EL1_MSA_FRAC_MASK;
-+
-+ switch (msa) {
-+ case ID_AA64MMFR0_EL1_MSA_VMSA:
-+ /*
-+ * VMSA supported in all translation regimes.
-+ * No support for PMSA.
-+ */
-+ return true;
-+ case ID_AA64MMFR0_EL1_MSA_USE_FRAC:
-+ /* See MSA_frac for the supported MSAs. */
-+ switch (msa_frac) {
-+ case ID_AA64MMFR0_EL1_MSA_FRAC_NO_PMSA:
-+ /*
-+ * PMSA not supported in any translation
-+ * regime.
-+ */
-+ return true;
-+ case ID_AA64MMFR0_EL1_MSA_FRAC_VMSA:
-+ /*
-+ * PMSA supported in all translation
-+ * regimes. No support for VMSA.
-+ */
-+ case ID_AA64MMFR0_EL1_MSA_FRAC_PMSA:
-+ /*
-+ * PMSA supported in all translation
-+ * regimes.
-+ */
-+ return false;
-+ default:
-+ panic("Unsupported id_aa64mmfr0_el1 " \
-+ "MSA_frac value");
-+ }
-+ default:
-+ panic("Unsupported id_aa64mmfr0_el1 MSA value");
-+ }
-+}
-+
- void setup_pgtables(void)
- {
- int i;
-@@ -499,8 +585,13 @@ void dcache_enable(void)
- /* The data cache is not active unless the mmu is enabled */
- if (!(get_sctlr() & CR_M)) {
- invalidate_dcache_all();
-- __asm_invalidate_tlb_all();
-- mmu_setup();
-+
-+ if (el_has_mmu()) {
-+ __asm_invalidate_tlb_all();
-+ mmu_setup();
-+ } else {
-+ mpu_setup();
-+ }
- }
-
- /* Set up page tables only once (it is done also by mmu_setup()) */
-@@ -523,7 +614,11 @@ void dcache_disable(void)
- set_sctlr(sctlr & ~(CR_C|CR_M));
-
- flush_dcache_all();
-- __asm_invalidate_tlb_all();
-+
-+ if (el_has_mmu())
-+ __asm_invalidate_tlb_all();
-+ else
-+ mpu_clear_regions();
- }
-
- int dcache_status(void)
-diff --git a/arch/arm/include/asm/armv8/mpu.h b/arch/arm/include/asm/armv8/mpu.h
-new file mode 100644
-index 0000000000..8de627cafd
---- /dev/null
-+++ b/arch/arm/include/asm/armv8/mpu.h
-@@ -0,0 +1,59 @@
-+/*
-+ * SPDX-License-Identifier: GPL-2.0+
-+ *
-+ * (C) Copyright 2021 Arm Limited
-+ */
-+
-+#ifndef _ASM_ARMV8_MPU_H_
-+#define _ASM_ARMV8_MPU_H_
-+
-+#include <asm/armv8/mmu.h>
-+#include <linux/stringify.h>
-+
-+#define PRSELR_EL2 S3_4_c6_c2_1
-+#define PRBAR_EL2 S3_4_c6_c8_0
-+#define PRLAR_EL2 S3_4_c6_c8_1
-+#define MPUIR_EL2 S3_4_c0_c0_4
-+
-+#define PRBAR_ADDRESS(addr) ((addr) & ~(0x3fULL))
-+
-+/* Access permissions */
-+#define PRBAR_AP(val) (((val) & 0x3) << 2)
-+#define PRBAR_AP_RW_HYP PRBAR_AP(0x0)
-+#define PRBAR_AP_RW_ANY PRBAR_AP(0x1)
-+#define PRBAR_AP_RO_HYP PRBAR_AP(0x2)
-+#define PRBAR_AP_RO_ANY PRBAR_AP(0x3)
-+
-+/* Shareability */
-+#define PRBAR_SH(val) (((val) & 0x3) << 4)
-+#define PRBAR_NON_SH PRBAR_SH(0x0)
-+#define PRBAR_OUTER_SH PRBAR_SH(0x2)
-+#define PRBAR_INNER_SH PRBAR_SH(0x3)
-+
-+/* Memory attribute (MAIR idx) */
-+#define PRLAR_ATTRIDX(val) (((val) & 0x7) << 1)
-+#define PRLAR_EN_BIT (0x1)
-+#define PRLAR_ADDRESS(addr) ((addr) & ~(0x3fULL))
-+
-+#ifndef __ASSEMBLY__
-+
-+static inline void setup_el2_mpu_region(uint8_t region, uint64_t base, uint64_t limit)
-+{
-+ asm volatile("msr " __stringify(PRSELR_EL2) ", %0" : : "r" (region));
-+ asm volatile("msr " __stringify(PRBAR_EL2) ", %0" : : "r" (base));
-+ asm volatile("msr " __stringify(PRLAR_EL2) ", %0" : : "r" (limit));
-+
-+ asm volatile("isb");
-+}
-+
-+#endif
-+
-+struct mpu_region {
-+ u64 start;
-+ u64 end;
-+ u64 attrs;
-+};
-+
-+extern struct mpu_region *mpu_mem_map;
-+
-+#endif /* _ASM_ARMV8_MPU_H_ */
-diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h
-index 87d1c77e8b..4510db98a2 100644
---- a/arch/arm/include/asm/system.h
-+++ b/arch/arm/include/asm/system.h
-@@ -95,6 +95,25 @@
- auth algorithm */
- #define ID_AA64ISAR1_EL1_APA (0xF << 4) /* QARMA address auth algorithm */
-
-+/*
-+ * ID_AA64MMFR0_EL1 bits definitions
-+ */
-+#define ID_AA64MMFR0_EL1_MSA_FRAC_MASK (0xFUL << 52) /* Memory system
-+ architecture
-+ frac */
-+#define ID_AA64MMFR0_EL1_MSA_FRAC_VMSA (0x2UL << 52) /* EL1&0 supports
-+ VMSA */
-+#define ID_AA64MMFR0_EL1_MSA_FRAC_PMSA (0x1UL << 52) /* EL1&0 only
-+ supports PMSA*/
-+#define ID_AA64MMFR0_EL1_MSA_FRAC_NO_PMSA (0x0UL << 52) /* No PMSA
-+ support */
-+#define ID_AA64MMFR0_EL1_MSA_MASK (0xFUL << 48) /* Memory system
-+ architecture */
-+#define ID_AA64MMFR0_EL1_MSA_USE_FRAC (0xFUL << 48) /* Use MSA_FRAC */
-+#define ID_AA64MMFR0_EL1_MSA_VMSA (0x0UL << 48) /* Memory system
-+ architecture
-+ is VMSA */
-+
- /*
- * ID_AA64PFR0_EL1 bits definitions
- */
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0002-vexpress64-add-MPU-memory-map-for-the-BASER_FVP.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0002-vexpress64-add-MPU-memory-map-for-the-BASER_FVP.patch
deleted file mode 100644
index 103e48479c..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0002-vexpress64-add-MPU-memory-map-for-the-BASER_FVP.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 5b42322cb57692dbea7d2c39fd8769b6f0f6b7af Mon Sep 17 00:00:00 2001
-From: Qi Feng <qi.feng@arm.com>
-Date: Tue, 26 Jul 2022 18:13:23 +0800
-Subject: [PATCH] vexpress64: add MPU memory map for the BASER_FVP
-
-The previous patch added support for initializing an Armv8 MPU. There is only an
-MPU at S-EL2 on the BASER_FVP, so add a platform-specific MPU memory map.
-
-See https://developer.arm.com/documentation/100964/1117/Base-Platform/Base---memory/BaseR-Platform-memory-map
-
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
-Signed-off-by: Qi Feng <qi.feng@arm.com>
-
----
- board/armltd/vexpress64/vexpress64.c | 22 ++++++++++++++++++++++
- 1 file changed, 22 insertions(+)
-
-diff --git a/board/armltd/vexpress64/vexpress64.c b/board/armltd/vexpress64/vexpress64.c
-index af326dc6f4..2310d18eb7 100644
---- a/board/armltd/vexpress64/vexpress64.c
-+++ b/board/armltd/vexpress64/vexpress64.c
-@@ -19,6 +19,7 @@
- #include <dm/platform_data/serial_pl01x.h>
- #include "pcie.h"
- #include <asm/armv8/mmu.h>
-+#include <asm/armv8/mpu.h>
- #ifdef CONFIG_VIRTIO_NET
- #include <virtio_types.h>
- #include <virtio.h>
-@@ -37,6 +38,27 @@ U_BOOT_DRVINFO(vexpress_serials) = {
- .plat = &serial_plat,
- };
-
-+static struct mpu_region vexpress64_aemv8r_mem_map[] = {
-+ {
-+ .start = 0x0UL,
-+ .end = 0x7fffffffUL,
-+ .attrs = PRLAR_ATTRIDX(MT_NORMAL)
-+ }, {
-+ .start = 0x80000000UL,
-+ .end = 0xffffffffUL,
-+ .attrs = PRLAR_ATTRIDX(MT_DEVICE_NGNRNE)
-+ }, {
-+ .start = 0x100000000UL,
-+ .end = 0xffffffffffUL,
-+ .attrs = PRLAR_ATTRIDX(MT_NORMAL)
-+ }, {
-+ /* List terminator */
-+ 0,
-+ }
-+};
-+
-+struct mpu_region *mpu_mem_map = vexpress64_aemv8r_mem_map;
-+
- static struct mm_region vexpress64_mem_map[] = {
- {
- .virt = V2M_PA_BASE,
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0003-armv8-Allow-disabling-exception-vectors-on-non-SPL-b.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0003-armv8-Allow-disabling-exception-vectors-on-non-SPL-b.patch
deleted file mode 100644
index 5953abc652..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0003-armv8-Allow-disabling-exception-vectors-on-non-SPL-b.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From ffb0f72a67926c3053308cf03420bc0c36675d42 Mon Sep 17 00:00:00 2001
-From: Peter Hoyes <Peter.Hoyes@arm.com>
-Date: Fri, 10 Dec 2021 11:41:19 +0000
-Subject: [PATCH] armv8: Allow disabling exception vectors on non-SPL builds
-
-On the BASER_FVP, U-Boot shares EL2 with another bootloader, so we do
-not wish to overide the exception vector, but we are also not using an
-SPL build.
-
-Therefore, add ARMV8_EXCEPTION_VECTORS, which disables exception vectors
-in a similar way to ARMV8_SPL_EXCEPTION_VECTORS.
-
-Rename ARMV8_SPL_EXCEPTION_VECTORS -> SPL_ARMV8_EXCEPTION_VECTORS so
-that both config flags be be targeted using CONFIG_IS_ENABLED.
-
-Issue-Id: SCM-3728
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
-Change-Id: I0cf0fc6d7ef4d45791411cf1f67c65e198cc8b2b
-
----
- arch/arm/cpu/armv8/Kconfig | 10 ++++++++--
- arch/arm/cpu/armv8/Makefile | 6 ++----
- arch/arm/cpu/armv8/start.S | 4 ++--
- configs/vexpress_aemv8r_defconfig | 1 +
- 4 files changed, 13 insertions(+), 8 deletions(-)
-
-diff --git a/arch/arm/cpu/armv8/Kconfig b/arch/arm/cpu/armv8/Kconfig
-index 1305238c9d..dec4be0e30 100644
---- a/arch/arm/cpu/armv8/Kconfig
-+++ b/arch/arm/cpu/armv8/Kconfig
-@@ -1,8 +1,8 @@
- if ARM64
-
--config ARMV8_SPL_EXCEPTION_VECTORS
-+config ARMV8_EXCEPTION_VECTORS
- bool "Install crash dump exception vectors"
-- depends on SPL
-+ default y
- help
- The default exception vector table is only used for the crash
- dump, but still takes quite a lot of space in the image size.
-@@ -10,6 +10,12 @@ config ARMV8_SPL_EXCEPTION_VECTORS
- Say N here if you are running out of code space in the image
- and want to save some space at the cost of less debugging info.
-
-+config SPL_ARMV8_EXCEPTION_VECTORS
-+ bool "Install crash dump exception vectors in the SPL"
-+ depends on SPL
-+ help
-+ Same as ARMV8_EXCEPTION_VECTORS, but for SPL builds
-+
- config ARMV8_MULTIENTRY
- bool "Enable multiple CPUs to enter into U-Boot"
-
-diff --git a/arch/arm/cpu/armv8/Makefile b/arch/arm/cpu/armv8/Makefile
-index 2e4bf9e038..001a31cae7 100644
---- a/arch/arm/cpu/armv8/Makefile
-+++ b/arch/arm/cpu/armv8/Makefile
-@@ -13,10 +13,8 @@ ifndef CONFIG_$(SPL_)SYS_DCACHE_OFF
- obj-y += cache_v8.o
- obj-y += cache.o
- endif
--ifdef CONFIG_SPL_BUILD
--obj-$(CONFIG_ARMV8_SPL_EXCEPTION_VECTORS) += exceptions.o
--else
--obj-y += exceptions.o
-+obj-$(CONFIG_$(SPL_)ARMV8_EXCEPTION_VECTORS) += exceptions.o
-+ifndef CONFIG_SPL_BUILD
- obj-y += exception_level.o
- endif
- obj-y += tlb.o
-diff --git a/arch/arm/cpu/armv8/start.S b/arch/arm/cpu/armv8/start.S
-index f3ea858577..7fad901336 100644
---- a/arch/arm/cpu/armv8/start.S
-+++ b/arch/arm/cpu/armv8/start.S
-@@ -104,7 +104,7 @@ pie_skip_reloc:
- pie_fixup_done:
- #endif
-
--#if defined(CONFIG_ARMV8_SPL_EXCEPTION_VECTORS) || !defined(CONFIG_SPL_BUILD)
-+#if CONFIG_IS_ENABLED(ARMV8_EXCEPTION_VECTORS)
- .macro set_vbar, regname, reg
- msr \regname, \reg
- .endm
-@@ -354,7 +354,7 @@ ENDPROC(smp_kick_all_cpus)
- /*-----------------------------------------------------------------------*/
-
- ENTRY(c_runtime_cpu_setup)
--#if defined(CONFIG_ARMV8_SPL_EXCEPTION_VECTORS) || !defined(CONFIG_SPL_BUILD)
-+#if CONFIG_IS_ENABLED(ARMV8_EXCEPTION_VECTORS)
- /* Relocate vBAR */
- adr x0, vectors
- switch_el x1, 3f, 2f, 1f
-diff --git a/configs/vexpress_aemv8r_defconfig b/configs/vexpress_aemv8r_defconfig
-index 495eb1dee3..683d983c36 100644
---- a/configs/vexpress_aemv8r_defconfig
-+++ b/configs/vexpress_aemv8r_defconfig
-@@ -16,3 +16,4 @@ CONFIG_SYS_CBSIZE=512
- CONFIG_SYS_PBSIZE=541
- # CONFIG_MMC is not set
- CONFIG_VIRTIO_MMIO=y
-+CONFIG_ARMV8_EXCEPTION_VECTORS=n
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0004-armv8-ARMV8_SWITCH_TO_EL1-improvements.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0004-armv8-ARMV8_SWITCH_TO_EL1-improvements.patch
deleted file mode 100644
index 157a15d7df..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0004-armv8-ARMV8_SWITCH_TO_EL1-improvements.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-From 14e204ffca5870d6bfd238627937a2028c88589d Mon Sep 17 00:00:00 2001
-From: Peter Hoyes <Peter.Hoyes@arm.com>
-Date: Wed, 14 Jul 2021 12:44:27 +0100
-Subject: [PATCH] armv8: ARMV8_SWITCH_TO_EL1 improvements
-
-Convert CONFIG_ARMV8_SWITCH_TO_EL1 to a Kconfig variable.
-
-Add support for switching to EL1 to bootefi.
-
-Add the environment variable armv8_switch_to_el1 to allow configuring
-whether to switch to EL1 at runtime. This overrides the compile-time
-option.
-
-Issue-Id: SCM-3728
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
-Change-Id: If98478148d6d8d1f732acac5439276700614815f
-
----
- arch/arm/cpu/armv8/exception_level.c | 21 ++++++++++++++--
- arch/arm/lib/bootm.c | 36 ++++++++++++++++------------
- configs/vexpress_aemv8r_defconfig | 1 +
- 3 files changed, 41 insertions(+), 17 deletions(-)
-
-diff --git a/arch/arm/cpu/armv8/exception_level.c b/arch/arm/cpu/armv8/exception_level.c
-index b11936548f..4aad1550f4 100644
---- a/arch/arm/cpu/armv8/exception_level.c
-+++ b/arch/arm/cpu/armv8/exception_level.c
-@@ -40,19 +40,36 @@ static void entry_non_secure(struct jmp_buf_data *non_secure_jmp)
- * trusted firmware being one embodiment). The operating system shall be
- * started at exception level EL2. So here we check the exception level
- * and switch it if necessary.
-+ *
-+ * If armv8_switch_to_el1 (config or env var) is enabled, also switch to EL1
-+ * before booting the operating system.
- */
- void switch_to_non_secure_mode(void)
- {
- struct jmp_buf_data non_secure_jmp;
-
- /* On AArch64 we need to make sure we call our payload in < EL3 */
-- if (current_el() == 3) {
-+
-+ int switch_to_el1 = env_get_yesno("armv8_switch_to_el1");
-+#ifdef CONFIG_ARMV8_SWITCH_TO_EL1
-+ if (switch_to_el1 == -1) {
-+ switch_to_el1 = 1;
-+ }
-+#endif
-+
-+ if (current_el() > 2) {
- if (setjmp(&non_secure_jmp))
- return;
- dcache_disable(); /* flush cache before switch to EL2 */
--
- /* Move into EL2 and keep running there */
- armv8_switch_to_el2((uintptr_t)&non_secure_jmp, 0, 0, 0,
- (uintptr_t)entry_non_secure, ES_TO_AARCH64);
-+ } else if (switch_to_el1 == 1 && current_el() > 1) {
-+ if (setjmp(&non_secure_jmp))
-+ return;
-+ dcache_disable(); /* flush cache before switch to EL1 */
-+ /* Move into EL1 and keep running there */
-+ armv8_switch_to_el1((uintptr_t)&non_secure_jmp, 0, 0, 0,
-+ (uintptr_t)entry_non_secure, ES_TO_AARCH64);
- }
- }
-diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
-index e414ef8267..9a86c17d2a 100644
---- a/arch/arm/lib/bootm.c
-+++ b/arch/arm/lib/bootm.c
-@@ -270,7 +270,6 @@ __weak void update_os_arch_secondary_cores(uint8_t os_arch)
- {
- }
-
--#ifdef CONFIG_ARMV8_SWITCH_TO_EL1
- static void switch_to_el1(void)
- {
- if ((IH_ARCH_DEFAULT == IH_ARCH_ARM64) &&
-@@ -285,7 +284,6 @@ static void switch_to_el1(void)
- ES_TO_AARCH64);
- }
- #endif
--#endif
-
- /* Subcommand: GO */
- static void boot_jump_linux(struct bootm_headers *images, int flag)
-@@ -312,21 +310,29 @@ static void boot_jump_linux(struct bootm_headers *images, int flag)
-
- update_os_arch_secondary_cores(images->os.arch);
-
-+ int armv8_switch_to_el1 = env_get_yesno("armv8_switch_to_el1");
- #ifdef CONFIG_ARMV8_SWITCH_TO_EL1
-- armv8_switch_to_el2((u64)images->ft_addr, 0, 0, 0,
-- (u64)switch_to_el1, ES_TO_AARCH64);
--#else
-- if ((IH_ARCH_DEFAULT == IH_ARCH_ARM64) &&
-- (images->os.arch == IH_ARCH_ARM))
-- armv8_switch_to_el2(0, (u64)gd->bd->bi_arch_number,
-- (u64)images->ft_addr, 0,
-- (u64)images->ep,
-- ES_TO_AARCH32);
-- else
-- armv8_switch_to_el2((u64)images->ft_addr, 0, 0, 0,
-- images->ep,
-- ES_TO_AARCH64);
-+ if (armv8_switch_to_el1 == -1) {
-+ armv8_switch_to_el1 = 1;
-+ }
- #endif
-+ if (armv8_switch_to_el1 == 1) {
-+ armv8_switch_to_el2((u64)images->ft_addr, 0, 0, 0,
-+ (u64)switch_to_el1, ES_TO_AARCH64);
-+ } else {
-+ if ((IH_ARCH_DEFAULT == IH_ARCH_ARM64) &&
-+ (images->os.arch == IH_ARCH_ARM))
-+ armv8_switch_to_el2(0,
-+ (u64)gd->bd->bi_arch_number,
-+ (u64)images->ft_addr, 0,
-+ (u64)images->ep,
-+ ES_TO_AARCH32);
-+ else
-+ armv8_switch_to_el2((u64)images->ft_addr,
-+ 0, 0, 0,
-+ images->ep,
-+ ES_TO_AARCH64);
-+ }
- }
- #else
- unsigned long machid = gd->bd->bi_arch_number;
-diff --git a/configs/vexpress_aemv8r_defconfig b/configs/vexpress_aemv8r_defconfig
-index 683d983c36..6044f82b00 100644
---- a/configs/vexpress_aemv8r_defconfig
-+++ b/configs/vexpress_aemv8r_defconfig
-@@ -17,3 +17,4 @@ CONFIG_SYS_PBSIZE=541
- # CONFIG_MMC is not set
- CONFIG_VIRTIO_MMIO=y
- CONFIG_ARMV8_EXCEPTION_VECTORS=n
-+CONFIG_ARMV8_SWITCH_TO_EL1=y
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0005-armv8-Make-disabling-HVC-configurable-when-switching.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0005-armv8-Make-disabling-HVC-configurable-when-switching.patch
deleted file mode 100644
index 82926cc36e..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0005-armv8-Make-disabling-HVC-configurable-when-switching.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From e3d24bc1fd0b09915b5181de1282f7008bbf776f Mon Sep 17 00:00:00 2001
-From: Peter Hoyes <Peter.Hoyes@arm.com>
-Date: Fri, 10 Dec 2021 16:37:26 +0000
-Subject: [PATCH] armv8: Make disabling HVC configurable when switching to EL1
-
-On the BASER_FVP there is no EL3, so HVC is used to provide PSCI
-services. Therefore we cannot disable hypercalls.
-
-Create CONFIG_ARMV8_DISABLE_HVC (dependent on CONFIG_ARMV8_TO_EL1) to
-control whether to disable HVC exceptions in HCR_EL2->HCD
-
-Issue-Id: SCM-3728
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
-Change-Id: I463d82f1db8a3cafcab40a9c0c208753569cc300
-
----
- arch/arm/cpu/armv8/Kconfig | 9 +++++++++
- arch/arm/include/asm/macro.h | 10 ++++++++--
- configs/vexpress_aemv8r_defconfig | 1 +
- 3 files changed, 18 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/cpu/armv8/Kconfig b/arch/arm/cpu/armv8/Kconfig
-index dec4be0e30..95c03487a2 100644
---- a/arch/arm/cpu/armv8/Kconfig
-+++ b/arch/arm/cpu/armv8/Kconfig
-@@ -208,4 +208,13 @@ config ARMV8_CE_SHA256
-
- endif
-
-+config ARMV8_DISABLE_HVC
-+ bool "Disable HVC calls before switching to EL1"
-+ depends on ARMV8_SWITCH_TO_EL1
-+ default y
-+ help
-+ If switching to EL1 before loading the operating system, disable taking
-+ hypercalls back to EL2. May be disabled if, for example, PSCI services are
-+ running at EL2.
-+
- endif
-diff --git a/arch/arm/include/asm/macro.h b/arch/arm/include/asm/macro.h
-index 1a1edc9870..7167739210 100644
---- a/arch/arm/include/asm/macro.h
-+++ b/arch/arm/include/asm/macro.h
-@@ -296,9 +296,12 @@ lr .req x30
- ldr \tmp2, =(ID_AA64ISAR1_EL1_GPI | ID_AA64ISAR1_EL1_GPA | \
- ID_AA64ISAR1_EL1_API | ID_AA64ISAR1_EL1_APA)
- tst \tmp, \tmp2
-- mov \tmp2, #(HCR_EL2_RW_AARCH64 | HCR_EL2_HCD_DIS)
-+ mov \tmp2, #(HCR_EL2_RW_AARCH64)
- orr \tmp, \tmp2, #(HCR_EL2_APK | HCR_EL2_API)
- csel \tmp, \tmp2, \tmp, eq
-+#ifdef CONFIG_ARMV8_DISABLE_HVC
-+ orr \tmp, \tmp, #(HCR_EL2_HCD_DIS)
-+#endif
- msr hcr_el2, \tmp
-
- /* Return to the EL1_SP1 mode from EL2 */
-@@ -311,7 +314,10 @@ lr .req x30
-
- 1:
- /* Initialize HCR_EL2 */
-- ldr \tmp, =(HCR_EL2_RW_AARCH32 | HCR_EL2_HCD_DIS)
-+ ldr \tmp, =(HCR_EL2_RW_AARCH32)
-+#ifdef CONFIG_ARMV8_DISABLE_HVC
-+ orr \tmp, \tmp, #(HCR_EL2_HCD_DIS)
-+#endif
- msr hcr_el2, \tmp
-
- /* Return to AArch32 Supervisor mode from EL2 */
-diff --git a/configs/vexpress_aemv8r_defconfig b/configs/vexpress_aemv8r_defconfig
-index 6044f82b00..6226f6b2c1 100644
---- a/configs/vexpress_aemv8r_defconfig
-+++ b/configs/vexpress_aemv8r_defconfig
-@@ -18,3 +18,4 @@ CONFIG_SYS_PBSIZE=541
- CONFIG_VIRTIO_MMIO=y
- CONFIG_ARMV8_EXCEPTION_VECTORS=n
- CONFIG_ARMV8_SWITCH_TO_EL1=y
-+CONFIG_ARMV8_DISABLE_HVC=n
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0006-vexpress64-Do-not-set-COUNTER_FREQUENCY.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0006-vexpress64-Do-not-set-COUNTER_FREQUENCY.patch
deleted file mode 100644
index eb2273e565..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0006-vexpress64-Do-not-set-COUNTER_FREQUENCY.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 571f44d5292cfead6f68bf4c6c9519872337bfd0 Mon Sep 17 00:00:00 2001
-From: Qi Feng <qi.feng@arm.com>
-Date: Thu, 28 Jul 2022 17:47:18 +0800
-Subject: [PATCH] vexpress64: Do not set COUNTER_FREQUENCY
-
-VExpress boards normally run as a second-stage bootloader so should not
-need to modify CNTFRQ_EL0. On the BASER_FVP, U-Boot can modify it if
-running at EL2, but shouldn't because it might be different from the
-value being used by the first-stage bootloader (which might be
-providing PSCI services).
-
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
-Signed-off-by: Qi Feng <qi.feng@arm.com>
-
----
- configs/vexpress_aemv8r_defconfig | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/configs/vexpress_aemv8r_defconfig b/configs/vexpress_aemv8r_defconfig
-index 6226f6b2c1..b902a6a7d9 100644
---- a/configs/vexpress_aemv8r_defconfig
-+++ b/configs/vexpress_aemv8r_defconfig
-@@ -1,5 +1,4 @@
- CONFIG_ARM=y
--CONFIG_COUNTER_FREQUENCY=24000000
- CONFIG_ARCH_VEXPRESS64=y
- CONFIG_NR_DRAM_BANKS=2
- CONFIG_DEFAULT_DEVICE_TREE="arm_fvp"
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0007-vexpress64-Enable-LIBFDT_OVERLAY-in-the-vexpress_aem.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0007-vexpress64-Enable-LIBFDT_OVERLAY-in-the-vexpress_aem.patch
deleted file mode 100644
index 6f5bfa38c4..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0007-vexpress64-Enable-LIBFDT_OVERLAY-in-the-vexpress_aem.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From df01346bb63c821cf8e73202e2894ceda9cb692b Mon Sep 17 00:00:00 2001
-From: Peter Hoyes <Peter.Hoyes@arm.com>
-Date: Tue, 22 Feb 2022 15:32:51 +0000
-Subject: [PATCH] vexpress64: Enable LIBFDT_OVERLAY in the vexpress_aemv8r
- defconfig
-
-Issue-Id: SCM-3874
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
-Change-Id: Ide0532cf2de89f1bca9c8d4bd2ed0c1a1c57599f
-
----
- configs/vexpress_aemv8r_defconfig | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/configs/vexpress_aemv8r_defconfig b/configs/vexpress_aemv8r_defconfig
-index b902a6a7d9..a58a9db385 100644
---- a/configs/vexpress_aemv8r_defconfig
-+++ b/configs/vexpress_aemv8r_defconfig
-@@ -18,3 +18,4 @@ CONFIG_VIRTIO_MMIO=y
- CONFIG_ARMV8_EXCEPTION_VECTORS=n
- CONFIG_ARMV8_SWITCH_TO_EL1=y
- CONFIG_ARMV8_DISABLE_HVC=n
-+CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0008-armv8-Allow-PRBAR-MPU-attributes-to-be-configured.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0008-armv8-Allow-PRBAR-MPU-attributes-to-be-configured.patch
deleted file mode 100644
index 61bdf928f4..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0008-armv8-Allow-PRBAR-MPU-attributes-to-be-configured.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 665ab8253a0e3e17db54a1682bbee0f5659939a2 Mon Sep 17 00:00:00 2001
-From: Peter Hoyes <Peter.Hoyes@arm.com>
-Date: Wed, 18 May 2022 15:24:19 +0100
-Subject: [PATCH] armv8: Allow PRBAR MPU attributes to be configured
-
-In a previous patch, support was added to initialize an S-EL2 MPU on
-armv8r64 machines. This implementation allowed the PRLAR attribute
-index to be configured, but not the shareability and access permission
-attributes in PRBAR. These attributes were hard-coded as "outer
-shareable" and "read/write at EL1 and EL0".
-
-Add separate prlar_attrs and prbar_attrs to the MPU region struct so
-that these attributes can be configured on a per-region basis.
-
-For the BASER_FVP, ensure the MPU memory attributes match those in the
-existing vexpress64 board MMU configuration ("non shareable" for device
-memory and "inner shareable" for normal memory).
-
-Issue-Id: SCM-4641
-Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Change-Id: I6b72aead91ad12412262aa32c61a53e12eab3984
-
----
- arch/arm/cpu/armv8/cache_v8.c | 12 ++++++++----
- arch/arm/include/asm/armv8/mpu.h | 3 ++-
- board/armltd/vexpress64/vexpress64.c | 9 ++++++---
- 3 files changed, 16 insertions(+), 8 deletions(-)
-
-diff --git a/arch/arm/cpu/armv8/cache_v8.c b/arch/arm/cpu/armv8/cache_v8.c
-index 8611a35eb3..f7de952187 100644
---- a/arch/arm/cpu/armv8/cache_v8.c
-+++ b/arch/arm/cpu/armv8/cache_v8.c
-@@ -390,7 +390,9 @@ static void mpu_clear_regions(void)
- {
- int i;
-
-- for (i = 0; mpu_mem_map[i].end || mpu_mem_map[i].attrs; i++) {
-+ for (i = 0; mpu_mem_map[i].end ||
-+ mpu_mem_map[i].prbar_attrs ||
-+ mpu_mem_map[i].prlar_attrs; i++) {
- setup_el2_mpu_region(i, 0, 0);
- }
- }
-@@ -410,12 +412,14 @@ static void mpu_setup(void)
-
- asm volatile("msr MAIR_EL2, %0" : : "r" MEMORY_ATTRIBUTES);
-
-- for (i = 0; mpu_mem_map[i].end || mpu_mem_map[i].attrs; i++) {
-+ for (i = 0; mpu_mem_map[i].end ||
-+ mpu_mem_map[i].prbar_attrs ||
-+ mpu_mem_map[i].prlar_attrs; i++) {
- setup_el2_mpu_region(i,
- PRBAR_ADDRESS(mpu_mem_map[i].start)
-- | PRBAR_OUTER_SH | PRBAR_AP_RW_ANY,
-+ | mpu_mem_map[i].prbar_attrs,
- PRLAR_ADDRESS(mpu_mem_map[i].end)
-- | mpu_mem_map[i].attrs | PRLAR_EN_BIT
-+ | mpu_mem_map[i].prlar_attrs | PRLAR_EN_BIT
- );
- }
-
-diff --git a/arch/arm/include/asm/armv8/mpu.h b/arch/arm/include/asm/armv8/mpu.h
-index 8de627cafd..dd4c689ea6 100644
---- a/arch/arm/include/asm/armv8/mpu.h
-+++ b/arch/arm/include/asm/armv8/mpu.h
-@@ -51,7 +51,8 @@ static inline void setup_el2_mpu_region(uint8_t region, uint64_t base, uint64_t
- struct mpu_region {
- u64 start;
- u64 end;
-- u64 attrs;
-+ u64 prbar_attrs;
-+ u64 prlar_attrs;
- };
-
- extern struct mpu_region *mpu_mem_map;
-diff --git a/board/armltd/vexpress64/vexpress64.c b/board/armltd/vexpress64/vexpress64.c
-index 2310d18eb7..531fa4d618 100644
---- a/board/armltd/vexpress64/vexpress64.c
-+++ b/board/armltd/vexpress64/vexpress64.c
-@@ -42,15 +42,18 @@ static struct mpu_region vexpress64_aemv8r_mem_map[] = {
- {
- .start = 0x0UL,
- .end = 0x7fffffffUL,
-- .attrs = PRLAR_ATTRIDX(MT_NORMAL)
-+ .prbar_attrs = PRBAR_INNER_SH | PRBAR_AP_RW_ANY,
-+ .prlar_attrs = PRLAR_ATTRIDX(MT_NORMAL)
- }, {
- .start = 0x80000000UL,
- .end = 0xffffffffUL,
-- .attrs = PRLAR_ATTRIDX(MT_DEVICE_NGNRNE)
-+ .prbar_attrs = PRBAR_OUTER_SH | PRBAR_AP_RW_ANY,
-+ .prlar_attrs = PRLAR_ATTRIDX(MT_DEVICE_NGNRNE)
- }, {
- .start = 0x100000000UL,
- .end = 0xffffffffffUL,
-- .attrs = PRLAR_ATTRIDX(MT_NORMAL)
-+ .prbar_attrs = PRBAR_INNER_SH | PRBAR_AP_RW_ANY,
-+ .prlar_attrs = PRLAR_ATTRIDX(MT_NORMAL)
- }, {
- /* List terminator */
- 0,
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0009-armv8-Enable-icache-when-switching-exception-levels-.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0009-armv8-Enable-icache-when-switching-exception-levels-.patch
deleted file mode 100644
index a4bc746e30..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/fvp-baser-aemv8r64/0009-armv8-Enable-icache-when-switching-exception-levels-.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From c7301588a3aec9ebf36749da601d0d6e3d807bfc Mon Sep 17 00:00:00 2001
-From: Peter Hoyes <Peter.Hoyes@arm.com>
-Date: Thu, 19 May 2022 09:02:32 +0100
-Subject: [PATCH] armv8: Enable icache when switching exception levels in
- bootefi
-
-bootefi calls the function switch_to_non_secure_mode before calling the
-UEFI payload to handle the case where U-Boot is running at EL3.
-
-For AArch64, the UEFI specification states that:
- The core will be configured as follows:
- * MMU enabled
- * Instruction and data caches enabled
-
-These requirements should be followed when switching exception levels
-for EFI applications.
-
-This function already disables and re-enables the data cache prior to
-switching exception levels, but omits the instruction cache, meaning
-the function returns with the instruction cache disabled at the new
-exception level. Fix this by calling icache_disable prior to switching
-exception levels and icache_enable afterwards.
-
-Issue-Id: SCM-4641
-Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
-Upstream-Status: Inappropriate [other]
- Implementation pending further discussion
-Change-Id: I678cd5ba39b56e124ab7854608289cd14651ce65
-
----
- arch/arm/cpu/armv8/exception_level.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/arch/arm/cpu/armv8/exception_level.c b/arch/arm/cpu/armv8/exception_level.c
-index 4aad1550f4..0a3e5428e7 100644
---- a/arch/arm/cpu/armv8/exception_level.c
-+++ b/arch/arm/cpu/armv8/exception_level.c
-@@ -27,6 +27,7 @@
- static void entry_non_secure(struct jmp_buf_data *non_secure_jmp)
- {
- dcache_enable();
-+ icache_enable();
- debug("Reached non-secure mode\n");
-
- /* Restore stack and registers saved in switch_to_non_secure_mode() */
-@@ -61,6 +62,7 @@ void switch_to_non_secure_mode(void)
- if (setjmp(&non_secure_jmp))
- return;
- dcache_disable(); /* flush cache before switch to EL2 */
-+ icache_disable();
- /* Move into EL2 and keep running there */
- armv8_switch_to_el2((uintptr_t)&non_secure_jmp, 0, 0, 0,
- (uintptr_t)entry_non_secure, ES_TO_AARCH64);
-@@ -68,6 +70,7 @@ void switch_to_non_secure_mode(void)
- if (setjmp(&non_secure_jmp))
- return;
- dcache_disable(); /* flush cache before switch to EL1 */
-+ icache_disable();
- /* Move into EL1 and keep running there */
- armv8_switch_to_el1((uintptr_t)&non_secure_jmp, 0, 0, 0,
- (uintptr_t)entry_non_secure, ES_TO_AARCH64);
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot_%.bbappend b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot_%.bbappend
index d1dcd74557..c2916a5559 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot_%.bbappend
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot_%.bbappend
@@ -3,7 +3,7 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
#
# Corstone1000 64-bit machines
#
-DEPENDS:append:corstone1000 = " gnutls-native"
+DEPENDS:append:corstone1000 = " gnutls-native openssl-native efitools-native"
CORSTONE1000_DEVICE_TREE:corstone1000-mps3 = "corstone1000-mps3"
CORSTONE1000_DEVICE_TREE:corstone1000-fvp = "corstone1000-fvp"
EXTRA_OEMAKE:append:corstone1000 = ' DEVICE_TREE=${CORSTONE1000_DEVICE_TREE}'
@@ -45,31 +45,30 @@ SRC_URI:append:corstone1000 = " \
file://0032-Enable-EFI-set-get-time-services.patch \
file://0033-corstone1000-detect-inflated-kernel-size.patch \
file://0034-corstone1000-ESRT-add-unique-firmware-GUID.patch \
+ file://0035-dt-Provide-a-way-to-remove-non-compliant-nodes-and-p.patch \
+ file://0036-bootefi-Call-the-EVT_FT_FIXUP-event-handler.patch \
+ file://0037-corstone1000-purge-U-Boot-specific-DT-nodes.patch \
+ file://0038-corstone1000-add-signature-device-tree-overlay.patch \
+ file://0039-corstone1000-enable-authenticated-capsule-config.patch \
+ file://0040-corstone1000-introduce-EFI-authenticated-capsule-upd.patch \
"
+do_configure:append:corstone1000(){
+ openssl req -x509 -sha256 -newkey rsa:2048 -subj /CN=CRT/ -keyout ${B}/CRT.key -out ${B}/CRT.crt -nodes -days 365
+ cert-to-efi-sig-list ${B}/CRT.crt ${B}/corstone1000_defconfig/CRT.esl
+}
+
+do_install:append:corstone1000() {
+ install -D -p -m 0644 ${B}/CRT.crt ${DEPLOY_DIR_IMAGE}/corstone1000_capsule_cert.crt
+ install -D -p -m 0644 ${B}/CRT.key ${DEPLOY_DIR_IMAGE}/corstone1000_capsule_key.key
+}
+
#
# FVP BASE
#
SRC_URI:append:fvp-base = " file://bootargs.cfg \
file://0001-Revert-vexpress64-pick-DRAM-size-from-DT.patch \
"
-
-#
-# FVP BASER
-#
-SRC_URI:append:fvp-baser-aemv8r64 = " \
- file://0001-armv8-Add-ARMv8-MPU-configuration-logic.patch \
- file://0002-vexpress64-add-MPU-memory-map-for-the-BASER_FVP.patch \
- file://0003-armv8-Allow-disabling-exception-vectors-on-non-SPL-b.patch \
- file://0004-armv8-ARMV8_SWITCH_TO_EL1-improvements.patch \
- file://0005-armv8-Make-disabling-HVC-configurable-when-switching.patch \
- file://0006-vexpress64-Do-not-set-COUNTER_FREQUENCY.patch \
- file://0007-vexpress64-Enable-LIBFDT_OVERLAY-in-the-vexpress_aem.patch \
- file://0008-armv8-Allow-PRBAR-MPU-attributes-to-be-configured.patch \
- file://0009-armv8-Enable-icache-when-switching-exception-levels-.patch \
- "
-
-
#
# Juno Machines
#
diff --git a/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_202305.bb b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_202305.bb
index fe153f47ce..23325503a1 100644
--- a/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_202305.bb
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_202305.bb
@@ -4,4 +4,4 @@ SRCREV_edk2-platforms ?= "be2af02a3fb202756ed9855173e0d0ed878ab6be"
# FIXME - clang is having issues with antlr
TOOLCHAIN:aarch64 = "gcc"
-require edk2-firmware.inc
+require recipes-bsp/uefi/edk2-firmware.inc
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/arm-platforms-kmeta/bsp/arm-platforms/fvp-baser-aemv8r64-preempt-rt.scc b/meta-arm/meta-arm-bsp/recipes-kernel/linux/arm-platforms-kmeta/bsp/arm-platforms/fvp-baser-aemv8r64-preempt-rt.scc
deleted file mode 100644
index e8fea0b822..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/arm-platforms-kmeta/bsp/arm-platforms/fvp-baser-aemv8r64-preempt-rt.scc
+++ /dev/null
@@ -1,6 +0,0 @@
-define KMACHINE fvp-baser-aemv8r64
-define KTYPE preempt-rt
-define KARCH arm64
-
-include ktypes/preempt-rt/preempt-rt.scc
-include fvp-baser-aemv8r64.scc
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/arm-platforms-kmeta/bsp/arm-platforms/fvp-baser-aemv8r64-standard.scc b/meta-arm/meta-arm-bsp/recipes-kernel/linux/arm-platforms-kmeta/bsp/arm-platforms/fvp-baser-aemv8r64-standard.scc
deleted file mode 100644
index fd1fb28246..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/arm-platforms-kmeta/bsp/arm-platforms/fvp-baser-aemv8r64-standard.scc
+++ /dev/null
@@ -1,7 +0,0 @@
-define KMACHINE fvp-baser-aemv8r64
-define KTYPE standard
-define KARCH arm64
-
-include ktypes/standard/standard.scc
-
-include fvp-baser-aemv8r64.scc
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/arm-platforms-kmeta/bsp/arm-platforms/fvp-baser-aemv8r64.scc b/meta-arm/meta-arm-bsp/recipes-kernel/linux/arm-platforms-kmeta/bsp/arm-platforms/fvp-baser-aemv8r64.scc
deleted file mode 100644
index a8d796702c..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/arm-platforms-kmeta/bsp/arm-platforms/fvp-baser-aemv8r64.scc
+++ /dev/null
@@ -1,4 +0,0 @@
-kconf hardware arm64.cfg
-kconf hardware fvp-common-peripherals.cfg
-include cfg/virtio.scc
-include virtio-9p.scc
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0002-Add-external-system-driver.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0002-Add-external-system-driver.patch
index 5af041ef5e..d8d9488bcb 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0002-Add-external-system-driver.patch
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0002-Add-external-system-driver.patch
@@ -1,7 +1,7 @@
-From 19eabe2a5fb97530820dd2a22fe6bc143a8d693f Mon Sep 17 00:00:00 2001
+From 9eac502eacd36a4975ec34a3f076594fa4364032 Mon Sep 17 00:00:00 2001
From: Emekcan <emekcan.aras@arm.com>
Date: Fri, 19 Aug 2022 14:51:08 +0100
-Subject: [PATCH 2/6] Add external system driver
+Subject: [PATCH] Add external system driver
Adds external system driver to control it
from user-space. It provides run and reset
@@ -22,24 +22,26 @@ Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
create mode 100644 drivers/misc/arm/extsys_ctrl.c
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
-index 358ad56f6524..fd8654ffdab0 100644
+index 433aa4197785..912986abc46c 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
-@@ -514,4 +514,5 @@ source "drivers/misc/habanalabs/Kconfig"
+@@ -555,4 +555,5 @@ source "drivers/misc/cardreader/Kconfig"
source "drivers/misc/uacce/Kconfig"
source "drivers/misc/pvpanic/Kconfig"
source "drivers/misc/mchp_pci1xxxx/Kconfig"
+source "drivers/misc/arm/Kconfig"
endmenu
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
-index ac9b3e757ba1..f7852e4fd63d 100644
+index 56de43943cd5..22e6561b8192 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
-@@ -62,3 +62,4 @@ obj-$(CONFIG_HI6421V600_IRQ) += hi6421v600-irq.o
+@@ -63,5 +63,6 @@ obj-$(CONFIG_HI6421V600_IRQ) += hi6421v600-irq.o
obj-$(CONFIG_OPEN_DICE) += open-dice.o
obj-$(CONFIG_GP_PCI1XXXX) += mchp_pci1xxxx/
obj-$(CONFIG_VCPU_STALL_DETECTOR) += vcpu_stall_detector.o
+obj-y += arm/
+ obj-$(CONFIG_TMR_MANAGER) += xilinx_tmr_manager.o
+ obj-$(CONFIG_TMR_INJECT) += xilinx_tmr_inject.o
diff --git a/drivers/misc/arm/Kconfig b/drivers/misc/arm/Kconfig
new file mode 100644
index 000000000000..9f1eb284e530
@@ -216,6 +218,3 @@ index 000000000000..7929070ff43d
+MODULE_DESCRIPTION("Arm External System Control Driver");
+MODULE_AUTHOR("Morten Borup Petersen");
+MODULE_AUTHOR("Rui Miguel Silva <rui.silva@arm.com>");
---
-2.39.0
-
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0003-Add-rpmsg-driver-for-corstone1000.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0003-Add-rpmsg-driver-for-corstone1000.patch
index 349042945b..cd9cec2700 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0003-Add-rpmsg-driver-for-corstone1000.patch
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0003-Add-rpmsg-driver-for-corstone1000.patch
@@ -1,7 +1,7 @@
-From 9fb971c23d423f593620ed82fb69a7e2cd35986a Mon Sep 17 00:00:00 2001
+From a834f4e143ff647e7677dc60ab57ee5883f3ac8f Mon Sep 17 00:00:00 2001
From: Emekcan <emekcan.aras@arm.com>
Date: Wed, 17 Aug 2022 14:21:42 +0100
-Subject: [PATCH 3/6] Add rpmsg driver for corstone1000
+Subject: [PATCH] Add rpmsg driver for corstone1000
Adds rpmsg driver to communicate with external
system in corstone1000 platform.
@@ -216,6 +216,3 @@ index 000000000000..4a80102669f6
+MODULE_LICENSE("GPL v2");
+MODULE_DESCRIPTION("ARM RPMSG Driver");
+MODULE_AUTHOR("Tushar Khandelwal <tushar.khandelwal@arm.com>");
---
-2.39.0
-
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0004-rpmsg-arm-fix-return-value.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0004-rpmsg-arm-fix-return-value.patch
index 5e70c00e93..516dbd7052 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0004-rpmsg-arm-fix-return-value.patch
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0004-rpmsg-arm-fix-return-value.patch
@@ -1,7 +1,7 @@
-From ce77351c8ae6b04070135fdaedaad337bb0b4ef5 Mon Sep 17 00:00:00 2001
+From c1ffd793062a13afdcc07d4bc1a8007188bfca5f Mon Sep 17 00:00:00 2001
From: Rui Miguel Silva <rui.silva@linaro.org>
Date: Tue, 27 Sep 2022 10:05:27 +0100
-Subject: [PATCH 4/6] rpmsg: arm: fix return value
+Subject: [PATCH] rpmsg: arm: fix return value
The creation of and endpoint returns a pointer, fix the return
value to the right type.
@@ -28,6 +28,3 @@ index 4a80102669f6..5c0dcc8e353d 100644
}
return &channel->ept;
---
-2.39.0
-
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0005-rpmsg-arm-update-chrdev-to-ctrldev-registration.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0005-rpmsg-arm-update-chrdev-to-ctrldev-registration.patch
index 852572ab0f..ef2eb7c130 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0005-rpmsg-arm-update-chrdev-to-ctrldev-registration.patch
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0005-rpmsg-arm-update-chrdev-to-ctrldev-registration.patch
@@ -1,7 +1,7 @@
-From 590bf152e18b3cf7166c7accfc32ed3b2d07bf09 Mon Sep 17 00:00:00 2001
+From a8c295e1ff1d2b1032cc7495f212c56ba9f3e874 Mon Sep 17 00:00:00 2001
From: Rui Miguel Silva <rui.silva@linaro.org>
Date: Tue, 27 Sep 2022 10:07:21 +0100
-Subject: [PATCH 5/6] rpmsg: arm: update chrdev to ctrldev registration
+Subject: [PATCH] rpmsg: arm: update chrdev to ctrldev registration
Since "rpmsg: Update rpmsg_chrdev_register_device function",
there was a replacement of the chrdev driver to ctrldev
@@ -26,6 +26,3 @@ index 5c0dcc8e353d..90bc8df90885 100644
}
static const struct of_device_id client_of_match[] = {
---
-2.39.0
-
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0006-Adds-workaround-for-cs1k-specific-bug.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0006-Adds-workaround-for-cs1k-specific-bug.patch
index 9956f26214..4fbeb23e5d 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0006-Adds-workaround-for-cs1k-specific-bug.patch
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0006-Adds-workaround-for-cs1k-specific-bug.patch
@@ -1,7 +1,7 @@
-From 00851c43f4d00e7451550660ab652e9ac9128e02 Mon Sep 17 00:00:00 2001
+From 555ac46f6f5157741a6fd8f21f74beb1340ed941 Mon Sep 17 00:00:00 2001
From: Emekcan <emekcan.aras@arm.com>
Date: Thu, 13 Oct 2022 20:53:42 +0100
-Subject: [PATCH 6/6] Adds workaround for cs1k specific bug
+Subject: [PATCH] Adds workaround for cs1k specific bug
Adds a temporary workaround to solve a possible
race-conditioning issue in the tee driver
@@ -15,7 +15,7 @@ Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/firmware/arm_ffa/driver.c b/drivers/firmware/arm_ffa/driver.c
-index d5e86ef40b89..cbb944f63321 100644
+index 2109cd178ff7..c15b3a83c720 100644
--- a/drivers/firmware/arm_ffa/driver.c
+++ b/drivers/firmware/arm_ffa/driver.c
@@ -32,6 +32,7 @@
@@ -26,7 +26,7 @@ index d5e86ef40b89..cbb944f63321 100644
#include "common.h"
-@@ -362,7 +363,7 @@ static int ffa_msg_send_direct_req(u16 src_id, u16 dst_id, bool mode_32bit,
+@@ -282,7 +283,7 @@ static int ffa_msg_send_direct_req(u16 src_id, u16 dst_id, bool mode_32bit,
{
u32 req_id, resp_id, src_dst_ids = PACK_TARGET_INFO(src_id, dst_id);
ffa_value_t ret;
@@ -35,6 +35,3 @@ index d5e86ef40b89..cbb944f63321 100644
if (mode_32bit) {
req_id = FFA_MSG_SEND_DIRECT_REQ;
resp_id = FFA_MSG_SEND_DIRECT_RESP;
---
-2.39.0
-
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/fvp-baser-aemv8r64/fvp-baser-aemv8r64.dts b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/fvp-baser-aemv8r64/fvp-baser-aemv8r64.dts
deleted file mode 100644
index 6911a598f7..0000000000
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/fvp-baser-aemv8r64/fvp-baser-aemv8r64.dts
+++ /dev/null
@@ -1,212 +0,0 @@
-/dts-v1/;
-
-/ {
-
- #address-cells = <0x2>;
- #size-cells = <0x2>;
- interrupt-parent = <0x1>;
- model = "Generated";
- compatible = "arm,base";
-
- memory@0 {
- #address-cells = <0x2>;
- #size-cells = <0x2>;
- device_type = "memory";
- reg = <0x0 0x0 0x0 0x80000000>,
- <0x00000008 0x80000000 0x0 0x80000000>;
- };
-
- cpus {
- #address-cells = <0x2>;
- #size-cells = <0x0>;
-
- cpu-map {
- cluster0 {
- core0 { thread0 { cpu = <&CPU_0>; }; };
- core1 { thread0 { cpu = <&CPU_1>; }; };
- core2 { thread0 { cpu = <&CPU_2>; }; };
- core3 { thread0 { cpu = <&CPU_3>; }; };
- };
- };
-
- CPU_0: cpu@0 {
- device_type = "cpu";
- compatible = "arm,armv8";
- reg = <0x0 0x0>;
- enable-method = "spin-table";
- cpu-release-addr = <0x0 0x7f800>;
- };
-
- CPU_1: cpu@1 {
- device_type = "cpu";
- compatible = "arm,armv8";
- reg = <0x0 0x1>;
- enable-method = "spin-table";
- cpu-release-addr = <0x0 0x7f808>;
- };
-
- CPU_2: cpu@2 {
- device_type = "cpu";
- compatible = "arm,armv8";
- reg = <0x0 0x2>;
- enable-method = "spin-table";
- cpu-release-addr = <0x0 0x7f810>;
- };
-
- CPU_3: cpu@3 {
- device_type = "cpu";
- compatible = "arm,armv8";
- reg = <0x0 0x3>;
- enable-method = "spin-table";
- cpu-release-addr = <0x0 0x7f818>;
- };
- };
-
- interrupt-controller@af000000 {
- compatible = "arm,gic-v3";
- #interrupt-cells = <0x3>;
- #address-cells = <0x2>;
- #size-cells = <0x2>;
- ranges;
- interrupt-controller;
- #redistributor-regions = <0x1>;
- reg = <0x0 0xaf000000 0x0 0x10000>, // GICD
- <0x0 0xaf100000 0x0 0x100000>, // GICR
- <0x0 0xac000000 0x0 0x2000>, // GICC
- <0x0 0xac010000 0x0 0x2000>, // GICH
- <0x0 0xac02f000 0x0 0x2000>; // GICV
- interrupts = <0x1 9 0x4>;
- linux,phandle = <0x1>;
- phandle = <0x1>;
-
- its: msi-controller@2f020000 {
- #msi-cells = <1>;
- compatible = "arm,gic-v3-its";
- reg = <0x0 0xaf020000 0x0 0x20000>; // GITS
- msi-controller;
- };
-
- };
-
- refclk100mhz: refclk100mhz {
- compatible = "fixed-clock";
- #clock-cells = <0>;
- clock-frequency = <100000000>;
- clock-output-names = "apb_pclk";
- };
-
- refclk24mhz: refclk24mhz {
- compatible = "fixed-clock";
- #clock-cells = <0>;
- clock-frequency = <24000000>;
- clock-output-names = "refclk24mhz";
- };
-
- refclk1hz: refclk1hz {
- compatible = "fixed-clock";
- #clock-cells = <0>;
- clock-frequency = <1>;
- clock-output-names = "refclk1hz";
- };
-
- uart@9c090000 {
- compatible = "arm,pl011", "arm,primecell";
- reg = <0x0 0x9c090000 0x0 0x1000>;
- interrupts = <0x0 5 0x4>;
- clocks = <&refclk24mhz>, <&refclk100mhz>;
- clock-names = "uartclk", "apb_pclk";
- };
-
- uart@9c0a0000 {
- compatible = "arm,pl011", "arm,primecell";
- reg = <0x0 0x9c0a0000 0x0 0x1000>;
- interrupts = <0x0 6 0x4>;
- clocks = <&refclk24mhz>, <&refclk100mhz>;
- clock-names = "uartclk", "apb_pclk";
- };
-
- uart@9c0b0000 {
- compatible = "arm,pl011", "arm,primecell";
- reg = <0x0 0x9c0b0000 0x0 0x1000>;
- interrupts = <0x0 7 0x4>;
- clocks = <&refclk24mhz>, <&refclk100mhz>;
- clock-names = "uartclk", "apb_pclk";
- };
-
- uart@9c0c0000 {
- compatible = "arm,pl011", "arm,primecell";
- reg = <0x0 0x9c0c0000 0x0 0x1000>;
- interrupts = <0x0 8 0x4>;
- clocks = <&refclk24mhz>, <&refclk100mhz>;
- clock-names = "uartclk", "apb_pclk";
- };
-
- wdt@9c0f0000 {
- compatible = "arm,sp805", "arm,primecell";
- reg = <0x0 0x9c0f0000 0x0 0x1000>;
- interrupts = <0x0 0 0x4>;
- clocks = <&refclk24mhz>, <&refclk100mhz>;
- clock-names = "wdog_clk", "apb_pclk";
- };
-
- rtc@9c170000 {
- compatible = "arm,pl031", "arm,primecell";
- reg = <0x0 0x9c170000 0x0 0x1000>;
- interrupts = <0x0 4 0x4>;
- clocks = <&refclk1hz>;
- clock-names = "apb_pclk";
- };
-
- virtio-block@9c130000 {
- compatible = "virtio,mmio";
- reg = <0 0x9c130000 0 0x200>;
- interrupts = <0x0 42 0x4>;
- };
-
- virtio-p9@9c140000{
- compatible = "virtio,mmio";
- reg = <0x0 0x9c140000 0x0 0x1000>;
- interrupts = <0x0 43 0x4>;
- };
-
- virtio-net@9c150000 {
- compatible = "virtio,mmio";
- reg = <0 0x9c150000 0 0x200>;
- interrupts = <0x0 44 0x4>;
- };
-
- virtio-rng@9c200000 {
- compatible = "virtio,mmio";
- reg = <0 0x9c200000 0 0x200>;
- interrupts = <0x0 46 0x4>;
- };
-
- timer {
- compatible = "arm,armv8-timer";
- interrupts = <0x1 13 0xff08>,
- <0x1 14 0xff08>,
- <0x1 11 0xff08>,
- <0x1 4 0xff08>;
- clock-frequency = <100000000>;
- };
-
- aliases {
- serial0 = "/uart@9c090000";
- serial1 = "/uart@9c0a0000";
- serial2 = "/uart@9c0b0000";
- serial3 = "/uart@9c0c0000";
- };
-
- pmu {
- compatible = "arm,armv8-pmuv3";
- interrupts = <0 60 4>,
- <0 61 4>,
- <0 62 4>,
- <0 63 4>;
- };
-
- chosen {
- bootargs = "earlycon console=ttyAMA0 loglevel=8 rootfstype=ext4 root=/dev/vda1 rw";
- stdout-path = "serial0";
- };
-};
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc
index b49ac800a2..4028cf31d1 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc
@@ -14,7 +14,6 @@ ARMBSPFILESPATHS := "${THISDIR}:${THISDIR}/files:"
# Arm platforms kmeta
SRC_URI_KMETA = "file://arm-platforms-kmeta;type=kmeta;name=arm-platforms-kmeta;destsuffix=arm-platforms-kmeta"
SRC_URI:append:fvp-base = " ${SRC_URI_KMETA}"
-SRC_URI:append:fvp-baser-aemv8r64 = " ${SRC_URI_KMETA}"
SRC_URI:append:juno = " ${SRC_URI_KMETA}"
SRC_URI:append:n1sdp = " ${SRC_URI_KMETA}"
SRCREV:arm-platforms-kmeta = "6147e82375aa9df8f2a162d42ea6406c79c854c5"
@@ -59,13 +58,6 @@ FILESEXTRAPATHS:prepend:fvp-base := "${ARMBSPFILESPATHS}"
SRC_URI:append:fvp-base = " file://0001-arm64-dts-fvp-Enable-virtio-rng-support.patch"
#
-# FVP BaseR AEMv8r64 Machine
-#
-COMPATIBLE_MACHINE:fvp-baser-aemv8r64 = "fvp-baser-aemv8r64"
-FILESEXTRAPATHS:prepend:fvp-baser-aemv8r64 := "${ARMBSPFILESPATHS}"
-SRC_URI:append:fvp-baser-aemv8r64 = " file://fvp-baser-aemv8r64.dts;subdir=git/arch/arm64/boot/dts/arm"
-
-#
# Juno KMACHINE
#
COMPATIBLE_MACHINE:juno = "juno"
@@ -80,7 +72,7 @@ COMPATIBLE_MACHINE:musca-s1 = "(^$)"
#
# N1SDP KMACHINE
#
-FILESEXTRAPATHS:prepend:n1sdp := "${THISDIR}/linux-yocto-6.1/n1sdp:"
+FILESEXTRAPATHS:prepend:n1sdp := "${THISDIR}/linux-yocto-6.4/n1sdp:"
COMPATIBLE_MACHINE:n1sdp = "n1sdp"
KBUILD_DEFCONFIG:n1sdp = "defconfig"
KCONFIG_MODE:n1sdp = "--alldefconfig"
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/0001-iommu-arm-smmu-v3-workaround-for-ATC_INV_SIZE_ALL-in.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/0001-iommu-arm-smmu-v3-workaround-for-ATC_INV_SIZE_ALL-in.patch
index d7a47c654d..869ca6f798 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/0001-iommu-arm-smmu-v3-workaround-for-ATC_INV_SIZE_ALL-in.patch
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/0001-iommu-arm-smmu-v3-workaround-for-ATC_INV_SIZE_ALL-in.patch
@@ -1,4 +1,4 @@
-From 32ae4539865e64bcfb0c6955bdac8db5904e493d Mon Sep 17 00:00:00 2001
+From ec84afa8e74bc5df8b5794eef8f29b097adc7cb3 Mon Sep 17 00:00:00 2001
From: Manoj Kumar <manoj.kumar3@arm.com>
Date: Mon, 1 Feb 2021 21:36:43 +0530
Subject: [PATCH] iommu/arm-smmu-v3: workaround for ATC_INV_SIZE_ALL in N1SDP
@@ -22,10 +22,10 @@ Signed-off-by: Adam Johnston <adam.johnston@arm.com>
2 files changed, 2 insertions(+)
diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
-index d4d8bfee9feb..0524bf2ec021 100644
+index 3fd83fb75722..852ed05b14a3 100644
--- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
+++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
-@@ -1738,6 +1738,7 @@ arm_smmu_atc_inv_to_cmd(int ssid, unsigned long iova, size_t size,
+@@ -1747,6 +1747,7 @@ arm_smmu_atc_inv_to_cmd(int ssid, unsigned long iova, size_t size,
};
if (!size) {
@@ -34,7 +34,7 @@ index d4d8bfee9feb..0524bf2ec021 100644
return;
}
diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h
-index cd48590ada30..20892b2bfe1d 100644
+index b574c58a3487..018086b65381 100644
--- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h
+++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h
@@ -472,6 +472,7 @@ struct arm_smmu_cmdq_ent {
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/0002-n1sdp-pci_quirk-add-acs-override-for-PCI-devices.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/0002-n1sdp-pci_quirk-add-acs-override-for-PCI-devices.patch
index cb72ed0a07..9bf8112bf0 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/0002-n1sdp-pci_quirk-add-acs-override-for-PCI-devices.patch
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/0002-n1sdp-pci_quirk-add-acs-override-for-PCI-devices.patch
@@ -1,4 +1,4 @@
-From fc8605e74b51d9e0ab8efd0489eca2e11d807f07 Mon Sep 17 00:00:00 2001
+From 9761e48b2d6904a58996fcaadcf25684482a72c8 Mon Sep 17 00:00:00 2001
From: Manoj Kumar <manoj.kumar3@arm.com>
Date: Tue, 31 Aug 2021 16:15:38 +0000
Subject: [PATCH] n1sdp: pci_quirk: add acs override for PCI devices
@@ -19,10 +19,10 @@ Signed-off-by: Adam Johnston <adam.johnston@arm.com>
2 files changed, 110 insertions(+)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
-index 963cdaecabcb..8e94af513b9f 100644
+index 9e5bab29685f..7ee740a37e5d 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
-@@ -4162,6 +4162,14 @@
+@@ -4235,6 +4235,14 @@
nomsi [MSI] If the PCI_MSI kernel config parameter is
enabled, this kernel boot option can be used to
disable the use of MSI interrupts system-wide.
@@ -38,10 +38,10 @@ index 963cdaecabcb..8e94af513b9f 100644
Safety option to keep boot IRQs enabled. This
should never be necessary.
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
-index 285acc4aaccc..d6ebef1f30db 100644
+index b7c65193e786..16b81d1ccafa 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
-@@ -3612,6 +3612,107 @@ static void quirk_no_bus_reset(struct pci_dev *dev)
+@@ -3625,6 +3625,107 @@ static void quirk_no_bus_reset(struct pci_dev *dev)
dev->dev_flags |= PCI_DEV_FLAGS_NO_BUS_RESET;
}
@@ -149,7 +149,7 @@ index 285acc4aaccc..d6ebef1f30db 100644
/*
* Some NVIDIA GPU devices do not work with bus reset, SBR needs to be
* prevented for those affected devices.
-@@ -4980,6 +5081,7 @@ static const struct pci_dev_acs_enabled {
+@@ -5017,6 +5118,7 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_ZHAOXIN, PCI_ANY_ID, pci_quirk_zhaoxin_pcie_ports_acs },
/* Wangxun nics */
{ PCI_VENDOR_ID_WANGXUN, PCI_ANY_ID, pci_quirk_wangxun_nic_acs },
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/0003-pcie-Add-quirk-for-the-Arm-Neoverse-N1SDP-platform.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/0003-pcie-Add-quirk-for-the-Arm-Neoverse-N1SDP-platform.patch
index 9b439e472d..96d55ad8ff 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/0003-pcie-Add-quirk-for-the-Arm-Neoverse-N1SDP-platform.patch
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/0003-pcie-Add-quirk-for-the-Arm-Neoverse-N1SDP-platform.patch
@@ -1,4 +1,4 @@
-From 5aa5769af625c79589fd84b8afc06149c2362218 Mon Sep 17 00:00:00 2001
+From 268bfbcd8f16660bf5fc8e31b18b4090743c6dbe Mon Sep 17 00:00:00 2001
From: Deepak Pandey <Deepak.Pandey@arm.com>
Date: Fri, 31 May 2019 16:42:43 +0100
Subject: [PATCH] pcie: Add quirk for the Arm Neoverse N1SDP platform
@@ -41,10 +41,10 @@ Signed-off-by: Adam Johnston <adam.johnston@arm.com>
create mode 100644 drivers/pci/controller/pcie-n1sdp.c
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
-index bbbc31391a65..973aa3b4d407 100644
+index a24609e14d50..cd73d1704dd2 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
-@@ -214,6 +214,7 @@ CONFIG_NFC_S3FWRN5_I2C=m
+@@ -203,6 +203,7 @@ CONFIG_NFC_S3FWRN5_I2C=m
CONFIG_PCI=y
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
@@ -71,12 +71,12 @@ index 860014b89b8e..2d4c1c699ffe 100644
#ifdef CONFIG_LOONGARCH
diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig
-index bfd9bac37e24..7a65799dded7 100644
+index 8d49bad7f847..7bb49afbcd5b 100644
--- a/drivers/pci/controller/Kconfig
+++ b/drivers/pci/controller/Kconfig
-@@ -50,6 +50,17 @@ config PCI_IXP4XX
- Say Y here if you want support for the PCI host controller found
- in the Intel IXP4xx XScale-based network processor SoC.
+@@ -21,6 +21,17 @@ config PCIE_ALTERA
+ Say Y here if you want to enable PCIe controller support on Altera
+ FPGA.
+config PCIE_HOST_N1SDP_ECAM
+ bool "ARM N1SDP PCIe Controller"
@@ -89,9 +89,9 @@ index bfd9bac37e24..7a65799dded7 100644
+ The controller is ECAM compliant, but needs a quirk to workaround
+ an integration issue.
+
- config PCI_TEGRA
- bool "NVIDIA Tegra PCIe controller"
- depends on ARCH_TEGRA || COMPILE_TEST
+ config PCIE_ALTERA_MSI
+ tristate "Altera PCIe MSI feature"
+ depends on PCIE_ALTERA
diff --git a/drivers/pci/controller/Makefile b/drivers/pci/controller/Makefile
index 37c8663de7fe..08e5afcf6e86 100644
--- a/drivers/pci/controller/Makefile
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/0004-n1sdp-pcie-add-quirk-support-enabling-remote-chip-PC.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/0004-n1sdp-pcie-add-quirk-support-enabling-remote-chip-PC.patch
index b804658b00..ce28499e1f 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/0004-n1sdp-pcie-add-quirk-support-enabling-remote-chip-PC.patch
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/0004-n1sdp-pcie-add-quirk-support-enabling-remote-chip-PC.patch
@@ -1,4 +1,4 @@
-From b59e0d6c6035db80fc9044df0333f96ede53ad7a Mon Sep 17 00:00:00 2001
+From 553801193c173711e9f7f6c56a44b5fac2385c1e Mon Sep 17 00:00:00 2001
From: Sayanta Pattanayak <sayanta.pattanayak@arm.com>
Date: Wed, 9 Feb 2022 20:37:43 +0530
Subject: [PATCH] n1sdp: pcie: add quirk support enabling remote chip PCIe
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/0005-arm64-kpti-Whitelist-early-Arm-Neoverse-N1-revisions.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/0005-arm64-kpti-Whitelist-early-Arm-Neoverse-N1-revisions.patch
index cc9d87170f..e4f15bbcbe 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/0005-arm64-kpti-Whitelist-early-Arm-Neoverse-N1-revisions.patch
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/0005-arm64-kpti-Whitelist-early-Arm-Neoverse-N1-revisions.patch
@@ -1,4 +1,4 @@
-From ff02f77788f8c01e9d675912c063e89415804b7d Mon Sep 17 00:00:00 2001
+From d2e55d92eefd99ede330270b00c01b734a6b61c0 Mon Sep 17 00:00:00 2001
From: Andre Przywara <andre.przywara@arm.com>
Date: Fri, 17 May 2019 17:39:27 +0100
Subject: [PATCH] arm64: kpti: Whitelist early Arm Neoverse N1 revisions
@@ -20,10 +20,10 @@ Signed-off-by: Adam Johnston <adam.johnston@arm.com>
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
-index b3f37e2209ad..b74210f38cd8 100644
+index 7d7128c65161..77e109ddd981 100644
--- a/arch/arm64/kernel/cpufeature.c
+++ b/arch/arm64/kernel/cpufeature.c
-@@ -1646,6 +1646,7 @@ static bool unmap_kernel_at_el0(const struct arm64_cpu_capabilities *entry,
+@@ -1674,6 +1674,7 @@ static bool unmap_kernel_at_el0(const struct arm64_cpu_capabilities *entry,
MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_2XX_SILVER),
MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_3XX_SILVER),
MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_4XX_SILVER),
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/0006-arm64-defconfig-disable-config-options-that-does-not.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/0006-arm64-defconfig-disable-config-options-that-does-not.patch
index 8aea1f60d7..dae3243fb8 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/0006-arm64-defconfig-disable-config-options-that-does-not.patch
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/0006-arm64-defconfig-disable-config-options-that-does-not.patch
@@ -1,4 +1,4 @@
-From 330a620b5c73505e62a2e0accc155fbc78859cee Mon Sep 17 00:00:00 2001
+From d59c5c17d3345f923d66fc85a7681fc6c4fd657d Mon Sep 17 00:00:00 2001
From: Vishnu Banavath <vishnu.banavath@arm.com>
Date: Wed, 21 Sep 2022 15:54:14 +0100
Subject: [PATCH] arm64: defconfig: disable config options that does not apply
@@ -6,6 +6,8 @@ Subject: [PATCH] arm64: defconfig: disable config options that does not apply
Following config options should be not set to be more accurate and
works with build system like yocto
+CONFIG_BT_HCIBTUSB
+CONFIG_BT_HCIBTUSB_MTK
CONFIG_BT_HCIUART_MRVL
CONFIG_BT_MRVL
CONFIG_BT_MRVL_SDIO
@@ -14,15 +16,24 @@ CONFIG_BT_QCOMSMD
Upstream-Status: Pending [not submitted upstream yet]
Signed-off-by: Adam Johnston <adam.johnston@arm.com>
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
+Signed-off-by: Xueliang Zhong <xueliang.zhong@arm.com>
---
- arch/arm64/configs/defconfig | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
+ arch/arm64/configs/defconfig | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
-index 973aa3b4d407..61f040394a2d 100644
+index cd73d1704dd2..958a43bd00e6 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
-@@ -198,10 +198,10 @@ CONFIG_BT_HCIUART=m
+@@ -181,16 +181,16 @@ CONFIG_BT_HIDP=m
+ # CONFIG_BT_LE is not set
+ CONFIG_BT_LEDS=y
+ # CONFIG_BT_DEBUGFS is not set
+-CONFIG_BT_HCIBTUSB=m
+-CONFIG_BT_HCIBTUSB_MTK=y
++# CONFIG_BT_HCIBTUSB is not set
++# CONFIG_BT_HCIBTUSB_MTK is not set
+ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_LL=y
CONFIG_BT_HCIUART_BCM=y
CONFIG_BT_HCIUART_QCA=y
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/enable-nvme.cfg b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/enable-nvme.cfg
index 268103555e..268103555e 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/enable-nvme.cfg
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/enable-nvme.cfg
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/enable-realtek-R8169.cfg b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/enable-realtek-R8169.cfg
index 7a5747407c..7a5747407c 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/enable-realtek-R8169.cfg
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/enable-realtek-R8169.cfg
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/enable-usb_conn_gpio.cfg b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/enable-usb_conn_gpio.cfg
index 128c902710..128c902710 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/enable-usb_conn_gpio.cfg
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/enable-usb_conn_gpio.cfg
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/usb_xhci_pci_renesas.cfg b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/usb_xhci_pci_renesas.cfg
index c06507c060..c06507c060 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.1/n1sdp/usb_xhci_pci_renesas.cfg
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-6.4/n1sdp/usb_xhci_pci_renesas.cfg
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-rt_%.bbappend b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-rt_%.bbappend
index 8994c241ec..b1efabf33b 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-rt_%.bbappend
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-rt_%.bbappend
@@ -1,6 +1,5 @@
# Only enable linux-yocto-rt for n1sdp and the Armv8-R AArch64 AEM FVP
LINUX_YOCTO_RT_REQUIRE ?= ""
LINUX_YOCTO_RT_REQUIRE:n1sdp = "linux-arm-platforms.inc"
-LINUX_YOCTO_RT_REQUIRE:fvp-baser-aemv8r64 = "linux-arm-platforms.inc"
require ${LINUX_YOCTO_RT_REQUIRE}
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/corstone1000/0001-Handle-logging-syscall.patch b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/corstone1000/0001-Handle-logging-syscall.patch
new file mode 100644
index 0000000000..9c1d78164b
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/corstone1000/0001-Handle-logging-syscall.patch
@@ -0,0 +1,32 @@
+From d6ee50f581b43b16733b8731369b071d609d5048 Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <emekcan.aras@arm.com>
+Date: Thu, 31 Aug 2023 10:51:54 +0100
+Subject: [PATCH] Handle logging syscall
+
+Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
+Upstream-Status: Inappropriate [Other]
+---
+ core/arch/arm/kernel/spmc_sp_handler.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/core/arch/arm/kernel/spmc_sp_handler.c b/core/arch/arm/kernel/spmc_sp_handler.c
+index 1f218a0df..0676e8898 100644
+--- a/core/arch/arm/kernel/spmc_sp_handler.c
++++ b/core/arch/arm/kernel/spmc_sp_handler.c
+@@ -1276,7 +1276,12 @@ void spmc_sp_msg_handler(struct thread_smc_args *args,
+ handle_console_log(args);
+ sp_enter(args, caller_sp);
+ break;
+-
++ case 0xdeadbeef:
++ ts_push_current_session(&caller_sp->ts_sess);
++ IMSG("%s", (char *)args->a1);
++ ts_pop_current_session();
++ sp_enter(args, caller_sp);
++ break;
+ default:
+ EMSG("Unhandled FFA function ID %#"PRIx32,
+ (uint32_t)args->a0);
+--
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0002-plat-n1sdp-add-N1SDP-platform-support.patch b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0002-plat-n1sdp-add-N1SDP-platform-support.patch
index db195ab337..50283db022 100644
--- a/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0002-plat-n1sdp-add-N1SDP-platform-support.patch
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0002-plat-n1sdp-add-N1SDP-platform-support.patch
@@ -1,14 +1,15 @@
-Upstream-Status: Pending [Not submitted to upstream yet]
-Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
-
-From 22ba7c7789082dbc179921962cdcadece4499c89 Mon Sep 17 00:00:00 2001
+From 33d86d23bcf2bbcb191e33e3130c3429650b9204 Mon Sep 17 00:00:00 2001
From: Vishnu Banavath <vishnu.banavath@arm.com>
Date: Thu, 30 Jun 2022 18:36:26 +0100
Subject: [PATCH] plat-n1sdp: add N1SDP platform support
+Upstream-Status: Pending [Not submitted to upstream yet]
+Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
+
These changes are to add N1SDP platform to optee-os
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
+Signed-off-by: Mariam Elshakfy <mariam.elshakfy@arm.com>
diff --git a/core/arch/arm/plat-n1sdp/conf.mk b/core/arch/arm/plat-n1sdp/conf.mk
new file mode 100644
@@ -59,10 +60,10 @@ index 00000000..06b4975a
+$(call force,CFG_CORE_ARM64_PA_BITS,36)
diff --git a/core/arch/arm/plat-n1sdp/main.c b/core/arch/arm/plat-n1sdp/main.c
new file mode 100644
-index 00000000..cfb7f19b
+index 00000000..39360711
--- /dev/null
+++ b/core/arch/arm/plat-n1sdp/main.c
-@@ -0,0 +1,63 @@
+@@ -0,0 +1,53 @@
+// SPDX-License-Identifier: BSD-2-Clause
+/*
+ * Copyright (c) 2022, Arm Limited.
@@ -72,8 +73,6 @@ index 00000000..cfb7f19b
+#include <console.h>
+#include <drivers/gic.h>
+#include <drivers/pl011.h>
-+#include <drivers/tpm2_mmio.h>
-+#include <drivers/tpm2_ptp_fifo.h>
+#include <drivers/tzc400.h>
+#include <initcall.h>
+#include <keep.h>
@@ -92,7 +91,6 @@ index 00000000..cfb7f19b
+#include <string.h>
+#include <trace.h>
+
-+static struct gic_data gic_data __nex_bss;
+static struct pl011_data console_data __nex_bss;
+
+register_phys_mem_pgdir(MEM_AREA_IO_SEC, CONSOLE_UART_BASE, PL011_REG_SIZE);
@@ -105,19 +103,12 @@ index 00000000..cfb7f19b
+
+void main_init_gic(void)
+{
-+ gic_init_base_addr(&gic_data, GICC_BASE,
-+ GICD_BASE);
-+ itr_init(&gic_data.chip);
++ gic_init(GICC_BASE, GICD_BASE);
+}
+
+void main_secondary_init_gic(void)
+{
-+ gic_cpu_init(&gic_data);
-+}
-+
-+void itr_core_handler(void)
-+{
-+ gic_it_handle(&gic_data);
++ gic_cpu_init();
+}
+
+void console_init(void)
@@ -230,4 +221,3 @@ index 00000000..a0b49da1
+srcs-y += n1sdp_core_pos.S
--
2.17.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0004-Handle-logging-syscall.patch b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0004-Handle-logging-syscall.patch
index ca4405d83b..9d305adc5c 100644
--- a/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0004-Handle-logging-syscall.patch
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0004-Handle-logging-syscall.patch
@@ -14,19 +14,19 @@ diff --git a/core/arch/arm/kernel/spmc_sp_handler.c b/core/arch/arm/kernel/spmc_
index e0fa0aa6..c7a45387 100644
--- a/core/arch/arm/kernel/spmc_sp_handler.c
+++ b/core/arch/arm/kernel/spmc_sp_handler.c
-@@ -1132,6 +1132,12 @@ void spmc_sp_msg_handler(struct thread_smc_args *args,
- handle_mem_perm_set(args, caller_sp);
+@@ -1277,6 +1277,13 @@ void spmc_sp_msg_handler(struct thread_smc_args *args,
sp_enter(args, caller_sp);
break;
+
+ case 0xdeadbeef:
+ ts_push_current_session(&caller_sp->ts_sess);
+ IMSG("%s", (char *)args->a1);
+ ts_pop_current_session();
+ sp_enter(args, caller_sp);
+ break;
++
default:
EMSG("Unhandled FFA function ID %#"PRIx32,
(uint32_t)args->a0);
--
2.17.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-client/tee-supplicant.service b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-client/tee-supplicant@.service
index 6b00df7421..72c0b9aa57 100644
--- a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-client/tee-supplicant.service
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-client/tee-supplicant@.service
@@ -1,6 +1,5 @@
[Unit]
-Description=TEE Supplicant
-ConditionPathExistsGlob=/dev/teepriv[0-9]*
+Description=TEE Supplicant on %i
[Service]
User=root
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-corstone1000-common.inc b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-corstone1000-common.inc
index eaee7ae91c..a883c3452f 100644
--- a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-corstone1000-common.inc
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-corstone1000-common.inc
@@ -1,3 +1,8 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/files/optee-os/corstone1000:"
+SRC_URI:append = " \
+ file://0001-Handle-logging-syscall.patch \
+ "
+
COMPATIBLE_MACHINE = "corstone1000"
OPTEEMACHINE = "corstone1000"
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-tadevkit_3.20.0.bbappend b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-tadevkit_3.22.0.bbappend
index e09c4a5ea7..e09c4a5ea7 100644
--- a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-tadevkit_3.20.0.bbappend
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-tadevkit_3.22.0.bbappend
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.20.0.bbappend b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.20.0.bbappend
index bc933dd54c..e276fb8629 100644
--- a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.20.0.bbappend
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.20.0.bbappend
@@ -1,7 +1,6 @@
# Machine specific configurations
MACHINE_OPTEE_OS_REQUIRE ?= ""
-MACHINE_OPTEE_OS_REQUIRE:n1sdp = "optee-os-n1sdp.inc"
MACHINE_OPTEE_OS_REQUIRE:tc = "optee-os-tc.inc"
require ${MACHINE_OPTEE_OS_REQUIRE}
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.22.0.bbappend b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.22.0.bbappend
index e732c80f88..b5493e5e2a 100644
--- a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.22.0.bbappend
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.22.0.bbappend
@@ -2,5 +2,6 @@
MACHINE_OPTEE_OS_REQUIRE ?= ""
MACHINE_OPTEE_OS_REQUIRE:corstone1000 = "optee-os-corstone1000-common.inc"
+MACHINE_OPTEE_OS_REQUIRE:n1sdp = "optee-os-n1sdp.inc"
require ${MACHINE_OPTEE_OS_REQUIRE}
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-test_3.18.0.bbappend b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-test_3.22.0.bbappend
index 05e2abca63..05e2abca63 100644
--- a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-test_3.18.0.bbappend
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-test_3.22.0.bbappend
diff --git a/meta-arm/meta-arm-bsp/recipes-security/trusted-services/ts-arm-platforms.inc b/meta-arm/meta-arm-bsp/recipes-security/trusted-services/ts-arm-platforms.inc
index 29e33ffed0..551a67dcd1 100644
--- a/meta-arm/meta-arm-bsp/recipes-security/trusted-services/ts-arm-platforms.inc
+++ b/meta-arm/meta-arm-bsp/recipes-security/trusted-services/ts-arm-platforms.inc
@@ -2,14 +2,14 @@ FILESEXTRAPATHS:prepend:corstone1000 := "${THISDIR}/corstone1000:"
COMPATIBLE_MACHINE:corstone1000 = "corstone1000"
SRC_URI:append:corstone1000 = " \
- file://0001-Add-stub-capsule-update-service-components.patch;patchdir=../trusted-services \
- file://0002-Fixes-in-AEAD-for-psa-arch-test-54-and-58.patch;patchdir=../trusted-services \
- file://0003-FMP-Support-in-Corstone1000.patch;patchdir=../trusted-services \
- file://0004-GetNextVariableName-Fix.patch;patchdir=../trusted-services \
- file://0005-plat-corstone1000-add-compile-definitions-for-ECP_DP.patch;patchdir=../trusted-services \
- file://0006-plat-corstone1000-Use-the-stateless-platform-service.patch;patchdir=../trusted-services \
- file://0007-plat-corstone1000-Initialize-capsule-update-provider.patch;patchdir=../trusted-services \
- file://0008-plat-corstone1000-change-ns-interrupt-action.patch;patchdir=../trusted-services \
+ file://0001-Add-stub-capsule-update-service-components.patch \
+ file://0002-Fixes-in-AEAD-for-psa-arch-test-54-and-58.patch \
+ file://0003-FMP-Support-in-Corstone1000.patch \
+ file://0004-GetNextVariableName-Fix.patch \
+ file://0005-plat-corstone1000-add-compile-definitions-for-ECP_DP.patch \
+ file://0006-plat-corstone1000-Use-the-stateless-platform-service.patch \
+ file://0007-plat-corstone1000-Initialize-capsule-update-provider.patch \
+ file://0008-plat-corstone1000-change-ns-interrupt-action.patch \
"
diff --git a/meta-arm/meta-arm-toolchain/conf/layer.conf b/meta-arm/meta-arm-toolchain/conf/layer.conf
index a6f403ecc8..bce70dac59 100644
--- a/meta-arm/meta-arm-toolchain/conf/layer.conf
+++ b/meta-arm/meta-arm-toolchain/conf/layer.conf
@@ -9,4 +9,4 @@ BBFILE_PATTERN_arm-toolchain := "^${LAYERDIR}/"
BBFILE_PRIORITY_arm-toolchain = "5"
LAYERDEPENDS_arm-toolchain = "core"
-LAYERSERIES_COMPAT_arm-toolchain = "mickledore"
+LAYERSERIES_COMPAT_arm-toolchain = "nanbield"
diff --git a/meta-arm/meta-arm/classes/apply_local_src_patches.bbclass b/meta-arm/meta-arm/classes/apply_local_src_patches.bbclass
index e193935383..0897b51ba7 100644
--- a/meta-arm/meta-arm/classes/apply_local_src_patches.bbclass
+++ b/meta-arm/meta-arm/classes/apply_local_src_patches.bbclass
@@ -17,8 +17,8 @@ python() {
apply_local_src_patches() {
- input_dir="${LOCAL_SRC_PATCHES_INPUT_DIR}"
- dest_dir="${LOCAL_SRC_PATCHES_DEST_DIR}"
+ input_dir="$1"
+ dest_dir="$2"
if [ ! -d "$input_dir" ] ; then
bbfatal "LOCAL_SRC_PATCHES_INPUT_DIR=$input_dir not found."
@@ -32,6 +32,7 @@ apply_local_src_patches() {
export QUILT_PATCHES=./patches-extra
mkdir -p patches-extra
+ bbdebug 1 "Looking for patches in $input_dir"
for patch in $(find $input_dir -type f -name *.patch -or -name *.diff | sort)
do
patch_basename=`basename $patch`
@@ -45,4 +46,8 @@ apply_local_src_patches() {
fi
done
}
-do_patch[postfuncs] += "apply_local_src_patches"
+
+do_apply_local_src_patches() {
+ apply_local_src_patches "${LOCAL_SRC_PATCHES_INPUT_DIR}" "${LOCAL_SRC_PATCHES_DEST_DIR}"
+}
+do_patch[postfuncs] += "do_apply_local_src_patches"
diff --git a/meta-arm/meta-arm/conf/layer.conf b/meta-arm/meta-arm/conf/layer.conf
index 2b3543751c..b506af8b77 100644
--- a/meta-arm/meta-arm/conf/layer.conf
+++ b/meta-arm/meta-arm/conf/layer.conf
@@ -13,7 +13,7 @@ LAYERDEPENDS_meta-arm = " \
core \
arm-toolchain \
"
-LAYERSERIES_COMPAT_meta-arm = "mickledore"
+LAYERSERIES_COMPAT_meta-arm = "nanbield"
# runfvp --console needs telnet, so pull this in for testimage.
HOSTTOOLS_NONFATAL += "telnet"
diff --git a/meta-arm/meta-arm/conf/machine/generic-arm64.conf b/meta-arm/meta-arm/conf/machine/generic-arm64.conf
index 2ee7805633..2e82e86a3b 100644
--- a/meta-arm/meta-arm/conf/machine/generic-arm64.conf
+++ b/meta-arm/meta-arm/conf/machine/generic-arm64.conf
@@ -16,3 +16,11 @@ WKS_FILE ?= "efi-disk.wks.in"
EFI_PROVIDER ?= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd-boot", "grub-efi", d)}"
MACHINE_FEATURES:append = " alsa bluetooth efi qemu-usermode rtc screen usbhost vfat wifi"
+
+SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0"
+SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
+
+XSERVER ?= "xserver-xorg \
+ xf86-video-fbdev \
+ xf86-video-modesetting \
+ "
diff --git a/meta-arm/meta-arm/conf/machine/qemu-generic-arm64.conf b/meta-arm/meta-arm/conf/machine/qemu-generic-arm64.conf
index 717a45c9f4..6925854fce 100644
--- a/meta-arm/meta-arm/conf/machine/qemu-generic-arm64.conf
+++ b/meta-arm/meta-arm/conf/machine/qemu-generic-arm64.conf
@@ -8,9 +8,6 @@ MACHINEOVERRIDES =. "generic-arm64:"
require conf/machine/generic-arm64.conf
require conf/machine/include/qemu.inc
-SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0"
-SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
-
EXTRA_IMAGEDEPENDS += "edk2-firmware"
# This unique WIC file is necessary because kernel boot args cannot be passed
@@ -33,3 +30,5 @@ QB_DEFAULT_KERNEL = "none"
QB_OPT_APPEND = "-device qemu-xhci -device usb-tablet -device usb-kbd -pflash @DEPLOY_DIR_IMAGE@/SBSA_FLASH0.fd -pflash @DEPLOY_DIR_IMAGE@/SBSA_FLASH1.fd"
QB_SERIAL_OPT = "-device virtio-serial-pci -chardev null,id=virtcon -device virtconsole,chardev=virtcon"
QB_TCPSERIAL_OPT = "-device virtio-serial-pci -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon"
+# sbsa-ref is a true virtual machine so can't use KVM
+QEMU_USE_KVM = "0"
diff --git a/meta-arm/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.12.0.bb b/meta-arm/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.13.0.bb
index 9a16de7b92..7ca78f3c15 100644
--- a/meta-arm/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.12.0.bb
+++ b/meta-arm/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.13.0.bb
@@ -12,7 +12,7 @@ SRC_URI = "${SRC_URI_SCP_FIRMWARE};branch=${SRCBRANCH} \
"
SRCBRANCH = "master"
-SRCREV = "0c7236b1851d90124210a0414fd982dc55322c7c"
+SRCREV = "cc4c9e017348d92054f74026ee1beb081403c168"
PROVIDES += "virtual/control-processor-firmware"
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.8.0-src.inc b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.8.1-src.inc
index 393ce43923..f7e202ad70 100644
--- a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.8.0-src.inc
+++ b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.8.1-src.inc
@@ -22,22 +22,22 @@ SRC_URI = "${SRC_URI_TRUSTED_FIRMWARE_M};branch=${SRCBRANCH_tfm};name=tfm;dests
"
# The required dependencies are documented in tf-m/config/config_default.cmake
-# TF-Mv1.8.0
+# TF-Mv1.8.1
SRCBRANCH_tfm ?= "master"
-SRCREV_tfm = "35ac80c8581d483da7d18cb8bcd20aaed096550c"
-# TF-Mv1.8.0
+SRCREV_tfm = "53aa78efef274b9e46e63b429078ae1863609728"
+# TF-Mv1.8.1
SRCBRANCH_tfm-tests ?= "master"
SRCREV_tfm-tests = "1273c5bcd3d8ade60d51524797e0b22b6fd7eea1"
-# mbedtls-3.4.0
+# mbedtls-3.4.1
SRCBRANCH_mbedtls ?= "master"
-SRCREV_mbedtls = "1873d3bfc2da771672bd8e7e8f41f57e0af77f33"
+SRCREV_mbedtls = "72718dd87e087215ce9155a826ee5a66cfbe9631"
# mcuboot v1.10.0
SRCBRANCH_mcuboot ?= "main"
SRCREV_mcuboot = "23d28832f02dcdc18687782c6cd8ba99e9b274d2"
# QCBOR v1.2
SRCBRANCH_qcbor ?= "master"
SRCREV_qcbor = "b0e7033268e88c9f27146fa9a1415ef4c19ebaff"
-# TF-Mv1.8.0
+# TF-Mv1.8.1
SRCBRANCH_tfm-extras ?= "master"
SRCREV_tfm-extras = "504ae9a9a50981e9dd4d8accec8261a1dba9e965"
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native_1.8.0.bb b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native_1.8.1.bb
index 10b141d702..d50d886f60 100644
--- a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native_1.8.0.bb
+++ b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native_1.8.1.bb
@@ -1,2 +1,2 @@
-require recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.8.0-src.inc
+require recipes-bsp/trusted-firmware-m/trusted-firmware-m-${PV}-src.inc
require recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native.inc
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.8.0.bb b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.8.1.bb
index 5794c1ee9d..3464f49dd9 100644
--- a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.8.0.bb
+++ b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.8.1.bb
@@ -1,2 +1,2 @@
-require recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.8.0-src.inc
+require recipes-bsp/trusted-firmware-m/trusted-firmware-m-${PV}-src.inc
require recipes-bsp/trusted-firmware-m/trusted-firmware-m.inc
diff --git a/meta-arm/meta-arm/recipes-bsp/uefi/edk2-basetools-native_202305.bb b/meta-arm/meta-arm/recipes-bsp/uefi/edk2-basetools-native_202308.bb
index 3a48ea5e2f..31b8fb0874 100644
--- a/meta-arm/meta-arm/recipes-bsp/uefi/edk2-basetools-native_202305.bb
+++ b/meta-arm/meta-arm/recipes-bsp/uefi/edk2-basetools-native_202308.bb
@@ -10,7 +10,7 @@ LICENSE = "BSD-2-Clause-Patent"
SRC_URI = "git://github.com/tianocore/edk2.git;branch=master;protocol=https"
LIC_FILES_CHKSUM = "file://License.txt;md5=2b415520383f7964e96700ae12b4570a"
-SRCREV = "ba91d0292e593df8528b66f99c1b0b14fadc8e16"
+SRCREV = "819cfc6b42a68790a23509e4fcc58ceb70e1965e"
S = "${WORKDIR}/git"
diff --git a/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_202308.bb b/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_202308.bb
new file mode 100644
index 0000000000..8620a67b31
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_202308.bb
@@ -0,0 +1,7 @@
+SRCREV_edk2 ?= "819cfc6b42a68790a23509e4fcc58ceb70e1965e"
+SRCREV_edk2-platforms ?= "bb6841e3fd1c60b3f8510b4fc0a380784e05d326"
+
+# FIXME - clang is having issues with antlr
+TOOLCHAIN:aarch64 = "gcc"
+
+require recipes-bsp/uefi/edk2-firmware.inc
diff --git a/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/0001-Patch-in-the-paths-to-the-SBSA-test-suite.patch b/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/0001-Patch-in-the-paths-to-the-SBSA-test-suite.patch
index 7b0b9b3880..236245fe79 100644
--- a/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/0001-Patch-in-the-paths-to-the-SBSA-test-suite.patch
+++ b/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/0001-Patch-in-the-paths-to-the-SBSA-test-suite.patch
@@ -1,25 +1,24 @@
-From 97eb384fcc66326f93813ff14b998bb7336a4422 Mon Sep 17 00:00:00 2001
+From 3a164d9f17591a545d1eafa629b486d4a1563722 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@arm.com>
Date: Thu, 16 Feb 2023 21:53:25 +0000
Subject: [PATCH] Patch in the paths to the SBSA test suite
Upstream-Status: Inappropriate (required action)
Signed-off-by: Ross Burton <ross.burton@arm.com>
-
---
ShellPkg/ShellPkg.dsc | 3 +++
1 file changed, 3 insertions(+)
diff --git a/ShellPkg/ShellPkg.dsc b/ShellPkg/ShellPkg.dsc
-index dd0d88603f..7367c052fc 100644
+index dd0d88603f11..91710c0795dc 100644
--- a/ShellPkg/ShellPkg.dsc
+++ b/ShellPkg/ShellPkg.dsc
@@ -23,6 +23,8 @@
!include MdePkg/MdeLibs.dsc.inc
[LibraryClasses.common]
-+ SbsaValLib|ShellPkg/Application/sbsa-acs/val/SbsaValLib.inf
-+ SbsaPalLib|ShellPkg/Application/sbsa-acs/platform/pal_uefi/SbsaPalLib.inf
++ SbsaValLib|ShellPkg/Application/sbsa-acs/val/SbsaValLib.inf
++ SbsaPalLib|ShellPkg/Application/sbsa-acs/platform/pal_uefi/SbsaPalLib.inf
UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
@@ -27,7 +26,7 @@ index dd0d88603f..7367c052fc 100644
# Build all the libraries when building this package.
# This helps developers test changes and how they affect the package.
#
-+ ShellPkg/Application/sbsa-acs/uefi_app/SbsaAvs.inf
++ ShellPkg/Application/sbsa-acs/uefi_app/SbsaAvs.inf
ShellPkg/Library/UefiShellLib/UefiShellLib.inf
ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf
ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
diff --git a/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/0002-Enforce-using-good-old-BFD-linker.patch b/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/0002-Enforce-using-good-old-BFD-linker.patch
index 154ff0ec04..284191d30b 100644
--- a/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/0002-Enforce-using-good-old-BFD-linker.patch
+++ b/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs/0002-Enforce-using-good-old-BFD-linker.patch
@@ -1,4 +1,4 @@
-From 8ce56a02fd722833931d356c372d374845f4c626 Mon Sep 17 00:00:00 2001
+From 6c403e3ccaae3bb3fd9d0ad220ed8ea98b2b1354 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 7 Apr 2021 00:16:07 -0700
Subject: [PATCH] Enforce using good old BFD linker
@@ -12,18 +12,17 @@ collect2: error: ld returned 1 exit status
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---
BaseTools/Conf/tools_def.template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
-index 503a6687c1..5cbc5c92a5 100755
+index 1bf62362b611..2b41be8d5a44 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
-@@ -746,7 +746,7 @@ DEFINE GCC_ARM_CC_XIPFLAGS = -mno-unaligned-access
- DEFINE GCC_AARCH64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -fno-short-enums -fverbose-asm -funsigned-char -ffunction-sections -fdata-sections -Wno-address -fno-asynchronous-unwind-tables -fno-unwind-tables -fno-pic -fno-pie -ffixed-x18
+@@ -747,7 +747,7 @@ DEFINE GCC_AARCH64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -fno-
DEFINE GCC_AARCH64_CC_XIPFLAGS = -mstrict-align -mgeneral-regs-only
+ DEFINE GCC_RISCV64_CC_XIPFLAGS = -mstrict-align -mgeneral-regs-only
DEFINE GCC_DLINK_FLAGS_COMMON = -nostdlib --pie
-DEFINE GCC_DLINK2_FLAGS_COMMON = -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/GccBase.lds
+DEFINE GCC_DLINK2_FLAGS_COMMON = -fuse-ld=bfd -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/GccBase.lds
diff --git a/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs_7.1.2.bb b/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs_7.1.2.bb
index b6c6468518..781d6e0572 100644
--- a/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs_7.1.2.bb
+++ b/meta-arm/meta-arm/recipes-bsp/uefi/sbsa-acs_7.1.2.bb
@@ -1,4 +1,4 @@
-require recipes-bsp/uefi/edk2-firmware_202305.bb
+require recipes-bsp/uefi/edk2-firmware_202308.bb
PROVIDES:remove = "virtual/bootloader"
LICENSE += "& Apache-2.0"
diff --git a/meta-arm/meta-arm/recipes-devtools/fvp/fvp-base-r-aem_11.22.14.bb b/meta-arm/meta-arm/recipes-devtools/fvp/fvp-base-r-aem_11.22.14.bb
deleted file mode 100644
index 89c83eabae..0000000000
--- a/meta-arm/meta-arm/recipes-devtools/fvp/fvp-base-r-aem_11.22.14.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require fvp-envelope.inc
-
-SUMMARY = "Arm Fixed Virtual Platform - Armv8-R Base Architecture Envelope Model FVP"
-LIC_FILES_CHKSUM = "file://license_terms/license_agreement.txt;md5=1a33828e132ba71861c11688dbb0bd16 \
- file://license_terms/third_party_licenses/third_party_licenses.txt;md5=34a1ba318d745f05e6197def68ea5411 \
- file://license_terms/third_party_licenses/arm_license_management_utilities/third_party_licenses.txt;md5=c09526c02e631abb95ad61528892552d"
-
-SRC_URI[fvp-x86_64.sha256sum] = "e819bfbccd91749345e3c7c6db22cbe41e02223118eb6395a4307ca81b175f7a"
-
-MODEL_CODE = "FVP_Base_AEMv8R"
diff --git a/meta-arm/meta-arm/recipes-devtools/opencsd/opencsd_1.4.0.bb b/meta-arm/meta-arm/recipes-devtools/opencsd/opencsd_1.4.1.bb
index 59c4f9cad5..01b0f7befd 100644
--- a/meta-arm/meta-arm/recipes-devtools/opencsd/opencsd_1.4.0.bb
+++ b/meta-arm/meta-arm/recipes-devtools/opencsd/opencsd_1.4.1.bb
@@ -4,7 +4,7 @@ LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=ad8cb685eb324d2fa2530b985a43f3e5"
SRC_URI = "git://github.com/Linaro/OpenCSD;protocol=https;branch=master"
-SRCREV = "78ce8ef47c55a489b0ca575b981cd4856d03f44b"
+SRCREV = "553d74524332be146675980ef611153d1a1ab6f8"
S = "${WORKDIR}/git"
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-client.inc b/meta-arm/meta-arm/recipes-security/optee/optee-client.inc
index 3b9943ccb6..77f6a6429d 100644
--- a/meta-arm/meta-arm/recipes-security/optee/optee-client.inc
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-client.inc
@@ -9,7 +9,7 @@ inherit systemd update-rc.d cmake
SRC_URI = " \
git://github.com/OP-TEE/optee_client.git;branch=master;protocol=https \
- file://tee-supplicant.service \
+ file://tee-supplicant@.service \
file://tee-supplicant.sh \
"
@@ -24,16 +24,16 @@ EXTRA_OECMAKE = " \
EXTRA_OECMAKE:append:toolchain-clang = " -DCFG_WERROR=0"
do_install:append() {
- install -D -p -m0644 ${WORKDIR}/tee-supplicant.service ${D}${systemd_system_unitdir}/tee-supplicant.service
+ install -D -p -m0644 ${WORKDIR}/tee-supplicant@.service ${D}${systemd_system_unitdir}/tee-supplicant@.service
install -D -p -m0755 ${WORKDIR}/tee-supplicant.sh ${D}${sysconfdir}/init.d/tee-supplicant
sed -i -e s:@sysconfdir@:${sysconfdir}:g \
-e s:@sbindir@:${sbindir}:g \
- ${D}${systemd_system_unitdir}/tee-supplicant.service \
+ ${D}${systemd_system_unitdir}/tee-supplicant@.service \
${D}${sysconfdir}/init.d/tee-supplicant
}
-SYSTEMD_SERVICE:${PN} = "tee-supplicant.service"
+SYSTEMD_SERVICE:${PN} = "tee-supplicant@.service"
INITSCRIPT_PACKAGES = "${PN}"
INITSCRIPT_NAME:${PN} = "tee-supplicant"
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-client/tee-supplicant.service b/meta-arm/meta-arm/recipes-security/optee/optee-client/tee-supplicant@.service
index 6b00df7421..72c0b9aa57 100644
--- a/meta-arm/meta-arm/recipes-security/optee/optee-client/tee-supplicant.service
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-client/tee-supplicant@.service
@@ -1,6 +1,5 @@
[Unit]
-Description=TEE Supplicant
-ConditionPathExistsGlob=/dev/teepriv[0-9]*
+Description=TEE Supplicant on %i
[Service]
User=root
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/files/0001-LazyFetch-allow-setting-the-cmake-generator.patch b/meta-arm/meta-arm/recipes-security/trusted-services/files/0001-LazyFetch-allow-setting-the-cmake-generator.patch
new file mode 100644
index 0000000000..6664fd0519
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/files/0001-LazyFetch-allow-setting-the-cmake-generator.patch
@@ -0,0 +1,46 @@
+From e62709f8e6f586ace7975b58b8a1c726d120759f Mon Sep 17 00:00:00 2001
+From: Gyorgy Szing <Gyorgy.Szing@arm.com>
+Date: Thu, 31 Aug 2023 18:24:50 +0200
+Subject: [PATCH] LazyFetch: allow setting the cmake generator
+
+Allow configuring the CMake generator used for external components. By
+default use the generator the main project is using.
+For details see the documentation in tools/cmake/common/LazyFetch.cmake.
+
+Change-Id: Ie01ea1ae533cf7a40c1f09808de2ad2e83a09db3
+Signed-off-by: Gyorgy Szing <Gyorgy.Szing@arm.com>
+
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ tools/cmake/common/LazyFetch.cmake | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/tools/cmake/common/LazyFetch.cmake b/tools/cmake/common/LazyFetch.cmake
+index 68e790e..7676201 100644
+--- a/tools/cmake/common/LazyFetch.cmake
++++ b/tools/cmake/common/LazyFetch.cmake
+@@ -87,11 +87,20 @@ function(LazyFetch_ConfigAndBuild)
+ "component specific. Pleas refer to the upstream documentation for more information.")
+ endif()
+
++ if(NOT DEFINED ${UC_DEP_NAME}_GENERATOR)
++ if(DEFINED ENV{${UC_DEP_NAME}_GENERATOR})
++ set(${UC_DEP_NAME}_GENERATOR ENV{${UC_DEP_NAME}_GENERATOR} CACHE STRING "CMake generator used for ${UC_DEP_NAME}.")
++ else()
++ set(${UC_DEP_NAME}_GENERATOR ${CMAKE_GENERATOR} CACHE STRING "CMake generator used for ${UC_DEP_NAME}.")
++ endif()
++ endif()
++
+ execute_process(COMMAND
+ ${CMAKE_COMMAND} -E env "CROSS_COMPILE=${CROSS_COMPILE}"
+ ${CMAKE_COMMAND}
+ "-C${CONFIGURED_CACHE_FILE}"
+ -DCMAKE_BUILD_TYPE=${${UC_DEP_NAME}_BUILD_TYPE}
++ -G${${UC_DEP_NAME}_GENERATOR}
+ -S ${BUILD_SRC_DIR}
+ -B ${BUILD_BIN_DIR}
+ RESULT_VARIABLE
+--
+2.34.1
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/files/nanopb-upgrade.patch b/meta-arm/meta-arm/recipes-security/trusted-services/files/nanopb-upgrade.patch
new file mode 100644
index 0000000000..3e21f5537c
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/files/nanopb-upgrade.patch
@@ -0,0 +1,112 @@
+Upgrade the nanopb checkout to 0.4.7 plus some important build fixes, and
+change the build/install process to be more reliable.
+
+This should be upstreamed, but some pieces of this are not upstreamable in their
+current state.
+
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/external/nanopb/fix-pyhon-name.patch b/external/nanopb/fix-pyhon-name.patch
+deleted file mode 100644
+index ab0e84c..0000000
+--- a/external/nanopb/fix-pyhon-name.patch
++++ /dev/null
+@@ -1,41 +0,0 @@
+-This patch fixes two issues:
+-
+-1. On windows the python3 executable is not allways called "python3". As a result
+- "protoc" execution can fail due to the shebang in the file. This patch fixes
+- this by running protoc with the intepreter.
+-
+-2. In addition when not running from a virtualenv, the install path for python file
+- is set to the "user site-packages" to avoid needing elevated access rights.
+-
+-diff --git a/CMakeLists.txt b/CMakeLists.txt
+-index 31c86e7..e827015 100644
+---- a/CMakeLists.txt
+-+++ b/CMakeLists.txt
+-@@ -54,13 +54,25 @@ if(nanopb_BUILD_GENERATOR)
+- string(REGEX REPLACE "([^;]+)" "\\1_pb2.py" generator_proto_py_file "${generator_proto}")
+- add_custom_command(
+- OUTPUT ${generator_proto_py_file}
+-- COMMAND ${nanopb_PROTOC_PATH} --python_out=${PROJECT_BINARY_DIR} -I${PROJECT_SOURCE_DIR}/generator/proto ${generator_proto_file}
+-+ COMMAND ${Python_EXECUTABLE} ${nanopb_PROTOC_PATH} --python_out=${PROJECT_BINARY_DIR} -I${PROJECT_SOURCE_DIR}/generator/proto ${generator_proto_file}
+- DEPENDS ${generator_proto_file}
+- )
+- add_custom_target("generate_${generator_proto_py_file}" ALL DEPENDS ${generator_proto_py_file})
+-+
+-+ if (DEFINED ENV{VIRTUAL_ENV})
+-+ set(PYTHON_INSTALL_DIR ${Python_SITELIB} CACHE PATH "Install location for generated python modules.")
+-+ else()
+-+ execute_process(
+-+ COMMAND ${Python_EXECUTABLE} -m site --user-site
+-+ OUTPUT_VARIABLE PYTHON_USER_SITE
+-+ OUTPUT_STRIP_TRAILING_WHITESPACE
+-+ )
+-+ set(PYTHON_INSTALL_DIR ${PYTHON_USER_SITE} CACHE PATH "Install location for generated python modules.")
+-+ endif()
+-+
+- install(
+- FILES ${PROJECT_BINARY_DIR}/${generator_proto_py_file}
+-- DESTINATION ${Python_SITELIB}
+-+ DESTINATION ${PYTHON_INSTALL_DIR}
+- )
+- endforeach()
+- endif()
+diff --git a/external/nanopb/nanopb-init-cache.cmake.in b/external/nanopb/nanopb-init-cache.cmake.in
+index fb8104d..8df41dd 100644
+--- a/external/nanopb/nanopb-init-cache.cmake.in
++++ b/external/nanopb/nanopb-init-cache.cmake.in
+@@ -12,11 +12,15 @@ set(BUILD_STATIC_LIBS On CACHE BOOL "")
+ set(nanopb_BUILD_RUNTIME On CACHE BOOL "")
+ set(nanopb_BUILD_GENERATOR On CACHE BOOL "")
+ set(nanopb_MSVC_STATIC_RUNTIME Off BOOL "")
+-set(nanopb_PROTOC_PATH ${CMAKE_SOURCE_DIR}/generator/protoc CACHE STRING "")
++
++set(Python_EXECUTABLE "@Python_EXECUTABLE@" CACHE PATH "Location of python3 executable")
+
+ string(TOUPPER @CMAKE_CROSSCOMPILING@ CMAKE_CROSSCOMPILING) # CMake expects TRUE
+ if (CMAKE_CROSSCOMPILING)
+ set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY CACHE STRING "")
+ endif()
+
++set(nanopb_PYTHON_INSTDIR_OVERRIDE "@BUILD_INSTALL_DIR@/lib/python" CACHE PATH "")
++set(NANOPB_GENERATOR_DIR "@BUILD_INSTALL_DIR@/lib/python" CACHE PATH "")
++
+ @_cmake_fragment@
+diff --git a/external/nanopb/nanopb.cmake b/external/nanopb/nanopb.cmake
+index 36465f6..57cf3d6 100644
+--- a/external/nanopb/nanopb.cmake
++++ b/external/nanopb/nanopb.cmake
+@@ -28,7 +28,7 @@ running this module.
+
+ set(NANOPB_URL "https://github.com/nanopb/nanopb.git"
+ CACHE STRING "nanopb repository URL")
+-set(NANOPB_REFSPEC "nanopb-0.4.2"
++set(NANOPB_REFSPEC "nanopb-0.4.7"
+ CACHE STRING "nanopb git refspec")
+ set(NANOPB_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/nanopb-src"
+ CACHE PATH "nanopb source-code")
+@@ -85,7 +85,7 @@ find_package(Python3 REQUIRED COMPONENTS Interpreter)
+
+ find_file(NANOPB_GENERATOR_PATH
+ NAMES nanopb_generator.py
+- PATHS ${nanopb_SOURCE_DIR}/generator
++ PATHS ${NANOPB_INSTALL_DIR}/bin
+ DOC "nanopb protobuf compiler"
+ NO_DEFAULT_PATH
+ )
+@@ -186,11 +186,10 @@ function(protobuf_generate)
+ target_include_directories(${PARAMS_TGT} PRIVATE ${_OUT_DIR_BASE})
+ endif()
+
+- get_filename_component(NANOPB_GENERATOR_DIR "${NANOPB_GENERATOR_PATH}" DIRECTORY CACHE "Location of nanopb generator.")
+ #Append a protobuf generator command to the nanopb_generate target.
+ add_custom_command(OUTPUT "${_OUT_C}" "${_OUT_H}"
+ COMMAND
+- ${CMAKE_COMMAND} -E env PYTHONPATH=${NANOPB_GENERATOR_DIR}
++ ${CMAKE_COMMAND} -E env PYTHONPATH=${NANOPB_INSTALL_DIR}/lib/python
+ ${Python3_EXECUTABLE} ${NANOPB_GENERATOR_PATH}
+ -I ${PARAMS_BASE_DIR}
+ -D ${_OUT_DIR_BASE}
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/libts/tee-udev.rules b/meta-arm/meta-arm/recipes-security/trusted-services/libts/tee-udev.rules
index 216fe993ed..43fafd8c99 100644
--- a/meta-arm/meta-arm/recipes-security/trusted-services/libts/tee-udev.rules
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/libts/tee-udev.rules
@@ -1,2 +1,7 @@
# tee devices can only be accessed by the teeclnt group members
KERNEL=="tee[0-9]*", TAG+="systemd", MODE="0660", GROUP="teeclnt"
+
+# If a /dev/teepriv[0-9]* device is detected, start an instance of
+# tee-supplicant.service with the device name as parameter
+KERNEL=="teepriv[0-9]*", MODE="0660", OWNER="root", GROUP="tee", \
+ TAG+="systemd", ENV{SYSTEMD_WANTS}+="tee-supplicant@%k.service"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/trusted-services-src.inc b/meta-arm/meta-arm/recipes-security/trusted-services/trusted-services-src.inc
index 86eb50835f..20a462199e 100644
--- a/meta-arm/meta-arm/recipes-security/trusted-services/trusted-services-src.inc
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/trusted-services-src.inc
@@ -9,6 +9,8 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI:append = "\
file://0001-Limit-nanopb-build-to-single-process.patch \
+ file://0001-LazyFetch-allow-setting-the-cmake-generator.patch \
+ file://nanopb-upgrade.patch \
"
#Latest on 2023 April 28
@@ -28,9 +30,9 @@ SRC_URI += "git://github.com/ARMmbed/mbedtls.git;name=mbedtls;protocol=https;bra
SRCREV_mbedtls = "8c89224991adff88d53cd380f42a2baa36f91454"
LIC_FILES_CHKSUM += "file://../mbedtls/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-# Nanopb, tag "nanopb-0.4.2"
+# Nanopb, tag "nanopb-0.4.7" plus some further fixes
SRC_URI += "git://github.com/nanopb/nanopb.git;name=nanopb;protocol=https;branch=master;destsuffix=git/nanopb"
-SRCREV_nanopb = "df0e92f474f9cca704fe2b31483f0b4d1b1715a4"
+SRCREV_nanopb = "dbbf5d8992295aae669b8071eadad02f87d5faf0"
LIC_FILES_CHKSUM += "file://../nanopb/LICENSE.txt;md5=9db4b73a55a3994384112efcdb37c01f"
# qcbor, tag "v1.0.0"
@@ -60,16 +62,17 @@ LIC_FILES_CHKSUM += "file://../openamp/LICENSE.md;md5=a8d8cf662ef6bf9936a1e14135
SRCREV_FORMAT = "trusted-services_dtc_mbedtls_nanopb_qcbor_tcose_cpputest_libmetal_openamp"
-# TS ships patches for external dependencies that needs to be applied
-apply_ts_patches() {
- ( cd ${WORKDIR}/git/qcbor; git stash; git branch -f bf_am; git am ${S}/external/qcbor/*.patch; git reset bf_am )
- ( cd ${WORKDIR}/git/tcose; git stash; git branch -f bf_am; git am ${S}/external/t_cose/*.patch; git reset bf_am )
- ( cd ${WORKDIR}/git/mbedtls; git stash; git branch -f bf_am; git am ${S}/external/MbedTLS/*.patch; git reset bf_am )
- ( cd ${WORKDIR}/git/cpputest; git stash; git apply ${S}/external/CppUTest/*.patch )
- ( cd ${WORKDIR}/git/dtc; git stash; git apply ${S}/external/libfdt/*.patch )
- ( cd ${WORKDIR}/git/nanopb; git stash; git apply ${S}/external/nanopb/*.patch )
+inherit apply_local_src_patches
+LOCAL_SRC_PATCHES_INPUT_DIR = "N/A"
+
+do_apply_local_src_patches() {
+ apply_local_src_patches ${S}/external/qcbor ${WORKDIR}/git/qcbor
+ apply_local_src_patches ${S}/external/t_cose ${WORKDIR}/git/tcose
+ apply_local_src_patches ${S}/external/MbedTLS ${WORKDIR}/git/mbedtls
+ apply_local_src_patches ${S}/external/CppUTest ${WORKDIR}/git/cpputest
+ apply_local_src_patches ${S}/external/libfdt ${WORKDIR}/git/dtc
+ apply_local_src_patches ${S}/external/nanopb ${WORKDIR}/git/nanopb
}
-do_patch[postfuncs] += "apply_ts_patches"
# Paths to dependencies required by some TS SPs/tools
EXTRA_OECMAKE += "-DDTC_SOURCE_DIR=${WORKDIR}/git/dtc \
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/trusted-services.inc b/meta-arm/meta-arm/recipes-security/trusted-services/trusted-services.inc
index c64a1d4100..b46cd49897 100644
--- a/meta-arm/meta-arm/recipes-security/trusted-services/trusted-services.inc
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/trusted-services.inc
@@ -3,7 +3,7 @@ HOMEPAGE = "https://trusted-services.readthedocs.io/en/latest/index.html"
LICENSE = "Apache-2.0 & BSD-3-Clause & Zlib"
-inherit python3native cmake
+inherit python3native cmake pkgconfig
COMPATIBLE_HOST = "aarch64.*-linux"
COMPATIBLE_MACHINE ?= "invalid"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-api-test-common_git.inc b/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-api-test-common_git.inc
index 8a7b0e5ca2..c8b4e99244 100644
--- a/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-api-test-common_git.inc
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-api-test-common_git.inc
@@ -16,15 +16,11 @@ SRC_URI += "git://github.com/ARM-software/psa-arch-tests.git;name=psatest;protoc
SRCREV_psatest = "38cb53a4d9e292435ddf7899960b15af62decfbe"
LIC_FILES_CHKSUM += "file://../psatest/LICENSE.md;md5=2a944942e1496af1886903d274dedb13"
-EXTRA_OECMAKE += "\
- -DPSA_ARCH_TESTS_SOURCE_DIR=${WORKDIR}/git/psatest \
- "
+EXTRA_OECMAKE += "-DPSA_ARCH_TESTS_SOURCE_DIR=${WORKDIR}/git/psatest"
-# TS check if there are patches to apply to psa-arch-tests, if so apply them
-apply_ts_patch() {
- find ${S}/external/psa_arch_tests -type f -name '*.patch' -exec patch -p1 -d ${WORKDIR}/git/psatest -i {} \;
+do_apply_local_src_patches:append() {
+ apply_local_src_patches ${S}/external/psa_arch_tests ${WORKDIR}/git/psatest
}
-do_patch[postfuncs] += "apply_ts_patch"
FILES:${PN} = "${bindir}/${PSA_TEST}"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-remote-test_git.bb b/meta-arm/meta-arm/recipes-security/trusted-services/ts-remote-test_git.bb
index 203defea44..1633ecfecf 100644
--- a/meta-arm/meta-arm/recipes-security/trusted-services/ts-remote-test_git.bb
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-remote-test_git.bb
@@ -10,3 +10,10 @@ RDEPENDS:${PN} += "libts"
OECMAKE_SOURCEPATH = "${S}/deployments/ts-remote-test/${TS_ENV}"
FILES:${PN} = "${bindir}/ts-remote-test"
+
+do_install:append () {
+ install -d ${D}${bindir}
+ mv ${D}${TS_INSTALL}/bin/ts-remote-test ${D}${bindir}
+
+ rm -r --one-file-system ${D}${TS_INSTALL}
+}
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-env-test_git.bb b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-env-test_git.bb
deleted file mode 100644
index 5551a4deba..0000000000
--- a/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-env-test_git.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-DESCRIPTION = "Trusted Services test_runner service provider"
-
-require ts-sp-common.inc
-
-# Current version of env-test SP contains hard-coded values for FVP.
-COMPATIBLE_MACHINE ?= "invalid"
-
-SP_UUID = "${ENV_TEST_UUID}"
-TS_SP_ENVTEST_CONFIG ?= "baremetal-fvp_base_revc"
-
-OECMAKE_SOURCEPATH="${S}/deployments/env-test/config/${TS_SP_ENVTEST_CONFIG}-${TS_ENV}"
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/zfs/zfs_2.2.0.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/zfs/zfs_2.2.0.bb
index a62a8a39b1..db6f725b6a 100644
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/zfs/zfs_2.2.0.bb
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/zfs/zfs_2.2.0.bb
@@ -4,7 +4,7 @@ LICENSE = "CDDL-1.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=7087caaf1dc8a2856585619f4a787faa"
HOMEPAGE ="https://github.com/openzfs/zfs"
-SRCREV = "009d3288dea524c7ad373b04b65bee8bb6f0bfea"
+SRCREV = "229ca7d738ccbf4c55076977467ee93e20b6f01b"
SRC_URI = "git://github.com/openzfs/zfs;protocol=https;branch=zfs-2.2-release \
file://0001-Define-strndupa-if-it-does-not-exist.patch \
file://aaf28a4630af60496c9d33db1d06a7d7d8983422.patch \
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/btrfsmaintenance/btrfsmaintenance_0.5.bb b/meta-openembedded/meta-filesystems/recipes-utils/btrfsmaintenance/btrfsmaintenance_0.5.bb
index 5761844f81..b4e5da6e20 100644
--- a/meta-openembedded/meta-filesystems/recipes-utils/btrfsmaintenance/btrfsmaintenance_0.5.bb
+++ b/meta-openembedded/meta-filesystems/recipes-utils/btrfsmaintenance/btrfsmaintenance_0.5.bb
@@ -9,8 +9,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a"
SECTION = "base"
-DEPENDS = "btrfs-tools"
-
SRC_URI = "git://github.com/kdave/${BPN};branch=master;protocol=https \
file://0001-change-sysconfig-path-to-etc-default.patch \
file://0002-add-WantedBy-directive-to-btrfsmaintenance-refresh.s.patch \
@@ -20,11 +18,9 @@ SRCREV = "be42cb6267055d125994abd6927cf3a26deab74c"
UPSTREAM_CHECK_URI = "https://github.com/kdave/${BPN}/tags"
UPSTREAM_CHECK_REGEX = "${BPN}/releases/tag/v(?P<pver>\d+(?:\.\d+)*)"
-RDEPENDS:${PN} = "bash"
-
-S="${WORKDIR}/git"
+RDEPENDS:${PN} = "bash btrfs-tools"
-inherit allarch
+S = "${WORKDIR}/git"
do_configure[noexec] = "1"
do_compile[noexec] = "1"
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-progs/0001-Makefile-proper-location-of-LDFLAGS.patch b/meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-progs/0001-Makefile-proper-location-of-LDFLAGS.patch
deleted file mode 100644
index 2c001834b6..0000000000
--- a/meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-progs/0001-Makefile-proper-location-of-LDFLAGS.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 8eeaee82dcfdf47f16ad880e416b722827f41bdb Mon Sep 17 00:00:00 2001
-From: Vyacheslav Yurkov <Vyacheslav.Yurkov@bruker.com>
-Date: Mon, 23 May 2022 19:37:32 +0200
-Subject: [PATCH] Makefile: proper location of LDFLAGS
-
-Signed-off-by: Vyacheslav Yurkov <Vyacheslav.Yurkov@bruker.com>
----
-Upstream-Status: Pending
-
- Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index e3c5207..14b155e 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,5 +1,5 @@
- CFLAGS = -Wall -g
--LFLAGS = -lm
-+LDFLAGS = -lm
- CC = gcc
-
- all: overlay
-@@ -7,7 +7,7 @@ all: overlay
- objects = fsck.o common.o lib.o check.o mount.o path.o overlayfs.o
-
- overlay: $(objects)
-- $(CC) $(LFLAGS) $(objects) -o fsck.overlay
-+ $(CC) $(objects) -o fsck.overlay $(LDFLAGS)
-
- .c.o:
- $(CC) $(CFLAGS) -c $<
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-progs_git.bb b/meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-progs_git.bb
deleted file mode 100644
index 9d58b9a63f..0000000000
--- a/meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-progs_git.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "File system check utility for OverlayFS"
-HOMEPAGE = "https://github.com/hisilicon/overlayfs-progs"
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/PD;md5=b3597d12946881e13cb3b548d1173851"
-
-SRC_URI = "\
- git://github.com/hisilicon/overlayfs-progs.git;protocol=https;branch=master \
- file://0001-Makefile-proper-location-of-LDFLAGS.patch \
-"
-
-PV = "1.0+git${SRCPV}"
-SRCREV = "e10ef686570d9c7eff42f52461593a5c15da56bd"
-
-S = "${WORKDIR}/git"
-B = "${S}"
-
-# Required to have the fts.h header for musl
-DEPENDS:append:libc-musl = " fts"
-# Fix the missing fts libs when using musl
-EXTRA_OEMAKE:append:libc-musl = " LDFLAGS='-lfts'"
-
-EXTRA_OEMAKE += "'CC=${CC} -O2' "
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_compile () {
- oe_runmake
-}
-
-do_install () {
- install -d ${D}${bindir}
- install -m 0755 ${B}/fsck.overlay ${D}${bindir}
-}
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0001-Fixed-includes-so-that-it-compiles-on-Ubuntu-20.04.patch b/meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0001-Fixed-includes-so-that-it-compiles-on-Ubuntu-20.04.patch
deleted file mode 100644
index ed84d92c7c..0000000000
--- a/meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0001-Fixed-includes-so-that-it-compiles-on-Ubuntu-20.04.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 81b4fbb5f52044cb348534c23f10b3884972b09b Mon Sep 17 00:00:00 2001
-From: Beat Schaer <beat.schaer@wabtec.com>
-Date: Fri, 19 Mar 2021 08:18:58 +0100
-Subject: [PATCH] Fixed includes so that it compiles on Ubuntu 20.04
-
----
-Upstream-Status: Pending
-
- logic.c | 3 +--
- main.c | 3 ++-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/logic.c b/logic.c
-index 97767f5..47ebfaa 100644
---- a/logic.c
-+++ b/logic.c
-@@ -7,8 +7,7 @@
- #include <string.h>
- #include <errno.h>
- #include <unistd.h>
--#include <attr/xattr.h>
--#include <attr/attributes.h>
-+#include <sys/xattr.h>
- #include <fts.h>
- #include <libgen.h>
- #include "logic.h"
-diff --git a/main.c b/main.c
-index aa11239..f462b98 100644
---- a/main.c
-+++ b/main.c
-@@ -12,7 +12,8 @@
- #include <linux/limits.h>
- #include <stdbool.h>
- #include <sys/stat.h>
--#include <attr/xattr.h>
-+#include <sys/xattr.h>
-+#include <errno.h>
- #ifndef _SYS_STAT_H
- #include <linux/stat.h>
- #endif
---
-2.25.1
-
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0002-makefile-fix-linking-flags.patch b/meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0002-makefile-fix-linking-flags.patch
deleted file mode 100644
index 8fbb250f04..0000000000
--- a/meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0002-makefile-fix-linking-flags.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From b4ff5886797e72d1c21da43261ca7648412f3186 Mon Sep 17 00:00:00 2001
-From: Vyacheslav Yurkov <Vyacheslav.Yurkov@bruker.com>
-Date: Mon, 23 May 2022 19:53:21 +0200
-Subject: [PATCH] makefile: fix linking flags
-
-LDLIBS should be placed at the end according to
-https://www.gnu.org/software/make/manual/html_node/Catalogue-of-Rules.html
-
-Signed-off-by: Vyacheslav Yurkov <Vyacheslav.Yurkov@bruker.com>
----
-Upstream-Status: Pending
-
- makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/makefile b/makefile
-index fb1bed4..038c7ce 100644
---- a/makefile
-+++ b/makefile
-@@ -1,11 +1,11 @@
- CFLAGS = -Wall -std=c99
--LFLAGS = -lm
-+LDLIBS = -lm
- CC = gcc
-
- all: overlay
-
- overlay: main.o logic.o sh.o
-- $(CC) $(LFLAGS) main.o logic.o sh.o -o overlay
-+ $(CC) main.o logic.o sh.o -o overlay $(LDLIBS)
-
- main.o: main.c logic.h
- $(CC) $(CFLAGS) -c main.c
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools_git.bb b/meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools_git.bb
index eb6e4963a5..ca2ec9cc4f 100644
--- a/meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools_git.bb
+++ b/meta-openembedded/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools_git.bb
@@ -5,17 +5,14 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f312a7c4d02230e8f2b537295d375c69"
SRC_URI = "\
git://github.com/kmxz/overlayfs-tools.git;protocol=https;branch=master \
- file://0001-Fixed-includes-so-that-it-compiles-on-Ubuntu-20.04.patch \
- file://0002-makefile-fix-linking-flags.patch \
"
PV = "1.0+git${SRCPV}"
-SRCREV = "291c7f4a3fb548d06c572700650c2e3bccb0cd27"
+SRCREV = "b5e5a829895ac98ccfe4629fbfbd8b819262bd00"
S = "${WORKDIR}/git"
B = "${S}"
-DEPENDS += "attr"
# Required to have the fts.h header for musl
DEPENDS:append:libc-musl = " fts"
@@ -24,11 +21,8 @@ EXTRA_OEMAKE += "'CC=${CC} -O2'"
EXTRA_OEMAKE:append:libc-musl = " LDLIBS=-lfts"
TARGET_CC_ARCH += "${LDFLAGS}"
-do_compile () {
- oe_runmake
-}
-
do_install () {
install -d ${D}${bindir}
install -m 0755 ${B}/overlay ${D}${bindir}
+ install -m 0755 ${B}/fsck.overlay ${D}${bindir}
}
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/xfstests/xfstests_2023.03.05.bb b/meta-openembedded/meta-filesystems/recipes-utils/xfstests/xfstests_2023.03.05.bb
index fdfe045749..cfb6e4fd82 100644
--- a/meta-openembedded/meta-filesystems/recipes-utils/xfstests/xfstests_2023.03.05.bb
+++ b/meta-openembedded/meta-filesystems/recipes-utils/xfstests/xfstests_2023.03.05.bb
@@ -28,7 +28,7 @@ RDEPENDS:${PN} += "\
e2fsprogs-resize2fs \
libaio \
libcap-bin \
- overlayfs-progs \
+ overlayfs-tools \
perl \
python3 \
python3-core \
diff --git a/meta-openembedded/meta-gnome/dynamic-layers/meta-virtualization/recipes-gnome/gnome-boxes/gnome-boxes_44.2.bb b/meta-openembedded/meta-gnome/dynamic-layers/meta-virtualization/recipes-gnome/gnome-boxes/gnome-boxes_45.0.bb
index 2f7c021397..f2aeb8878c 100644
--- a/meta-openembedded/meta-gnome/dynamic-layers/meta-virtualization/recipes-gnome/gnome-boxes/gnome-boxes_44.2.bb
+++ b/meta-openembedded/meta-gnome/dynamic-layers/meta-virtualization/recipes-gnome/gnome-boxes/gnome-boxes_45.0.bb
@@ -30,7 +30,7 @@ RDEPENDS:${PN} = "glib-2.0-dev libvirt-virsh qemu-common qemu-system-x86-64 geni
inherit gnomebase gsettings pkgconfig mime-xdg gtk-icon-cache gobject-introspection vala features_check
-SRC_URI[archive.sha256sum] = "9dd389c149d0c0fa57456ec363d51a88255f945558fb9df42894ce78ef85df89"
+SRC_URI[archive.sha256sum] = "cc63080eefa147a8472ab1a5ff087b97a27ab723a4ee005ed41e8c9dd7798e41"
GIR_MESON_OPTION = ""
diff --git a/meta-openembedded/meta-gnome/dynamic-layers/meta-virtualization/recipes-gnome/gnome-remote-desktop/gnome-remote-desktop_44.2.bb b/meta-openembedded/meta-gnome/dynamic-layers/meta-virtualization/recipes-gnome/gnome-remote-desktop/gnome-remote-desktop_45.0.bb
index 48e4d9f32f..d3089648c2 100644
--- a/meta-openembedded/meta-gnome/dynamic-layers/meta-virtualization/recipes-gnome/gnome-remote-desktop/gnome-remote-desktop_44.2.bb
+++ b/meta-openembedded/meta-gnome/dynamic-layers/meta-virtualization/recipes-gnome/gnome-remote-desktop/gnome-remote-desktop_45.0.bb
@@ -8,11 +8,12 @@ inherit gnomebase gettext gsettings features_check
REQUIRED_DISTRO_FEATURES = "opengl"
-SRC_URI[archive.sha256sum] = "7a9ffd341b5fcb636d26675e9f6269650952163fff5295327618cc2d5cc87b8e"
+SRC_URI[archive.sha256sum] = "cb993112d5a3ca21ec217df2d84068e4cad2a4aa6cab52f0e186fa1152f7a381"
DEPENDS = " \
asciidoc-native \
libdrm \
+ libei \
libepoxy \
cairo \
glib-2.0 \
@@ -30,6 +31,7 @@ PACKAGECONFIG ??= " \
${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
"
+PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,pipewire-native wireplumber-native dbus-native"
PACKAGECONFIG[vnc] = "-Dvnc=true,-Dvnc=false,libvncserver"
PACKAGECONFIG[rdp] = "-Drdp=true,-Drdp=false,freerdp fuse3 libxkbcommon"
PACKAGECONFIG[fdk_aac] = "-Dfdk_aac=true,-Dfdk_aac=false,fdk-aac"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/amtk/amtk_5.6.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/amtk/amtk_5.6.1.bb
deleted file mode 100644
index fbc8f38454..0000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/amtk/amtk_5.6.1.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Actions, Menus and Toolbars Kit"
-LICENSE = "LGPL-3.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSES/LGPL-3.0-or-later.txt;md5=c51d3eef3be114124d11349ca0d7e117"
-
-DEPENDS = " \
- glib-2.0-native \
- gtk+3 \
- gtk-doc-native \
- libxslt-native \
- docbook-xsl-stylesheets-native \
- python3-pygments-native \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-GIR_MESON_OPTION = ""
-
-inherit gnomebase gettext features_check gobject-introspection
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SRC_URI[archive.sha256sum] = "d50115b85c872aac296934b5ee726a3fa156c6f5ad96d27e0edd0aa5ad173228"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/eog/eog_44.3.bb b/meta-openembedded/meta-gnome/recipes-gnome/eog/eog_45.0.bb
index 06203fbbe0..eb3d07ce10 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/eog/eog_44.3.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/eog/eog_45.0.bb
@@ -22,7 +22,7 @@ inherit gnomebase pkgconfig gsettings gobject-introspection gettext mime-xdg fea
# FIXME: whilst eog uses libpeas <2, g-i is needed. This can be removed when libpeas2 is used.
REQUIRED_DISTRO_FEATURES = "opengl gobject-introspection-data"
-SRC_URI[archive.sha256sum] = "d6b2d70f4b432ff8cf494c8f9029b2621d08e7817938317d64063ae6c4da9d8c"
+SRC_URI[archive.sha256sum] = "05cb2c9a66ba15870f47358cd4c1ce670f17e4c8b22e050d627d728ff88b57ba"
GTKDOC_MESON_OPTION = "gtk_doc"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_44.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_45.0.bb
index 67449be23e..d97a8a0cf6 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_44.2.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_45.0.bb
@@ -34,7 +34,7 @@ REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'open
def gnome_verdir(v):
return oe.utils.trim_version(v, 1)
-SRC_URI[archive.sha256sum] = "9a75c7ff8f599218d070e09fb4082cb26f9b86370a9bfae98e1aacb564d675dd"
+SRC_URI[archive.sha256sum] = "d18647d4275cbddf0d32817b1d04e307342a85be914ec4dad2d8082aaf8aa4a8"
GTKDOC_MESON_OPTION = "gtk_doc"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc
index 5452a2e793..511cc04af7 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc
@@ -9,5 +9,5 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6a6e689d19255cf0557f3fe7d7068212 \
inherit gnomebase upstream-version-is-even
-SRC_URI[archive.sha256sum] = "b71e412e52f567c83394b5926df92b4f4f6d2cddebad384a517c720671fad996"
-PV = "3.48.3"
+SRC_URI[archive.sha256sum] = "c9f793d99ba188ef8cf2891b8062d7e570e3cba22b8cfc46eb561c6cecc81d3a"
+PV = "3.50.0"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_44.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_45.0.1.bb
index cd9013312d..311d283257 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_44.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_45.0.1.bb
@@ -20,8 +20,8 @@ GIR_MESON_OPTION = ""
GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase gsettings pkgconfig gobject-introspection gettext systemd useradd itstool gnome-help features_check
-
-SRC_URI[archive.sha256sum] = "68266b3abe7d28fc469d0067aac9c5dabb0ca7952cc1f7c238a04951f3dc5b0d"
+SRC_URI = "https://download.gnome.org/sources/gdm/${@oe.utils.trim_version("${PV}", 1)}/gdm-${PV}.tar.xz"
+SRC_URI[sha256sum] = "6572578c05e3c6569d6ed269f7de2aaf3a035657654586d8243907bb7a6ffa85"
EXTRA_OEMESON = " \
-Dplymouth=disabled \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_44.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_46.1.bb
index 34c782297c..01d7a072aa 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_44.2.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_46.1.bb
@@ -6,27 +6,34 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
GNOMEBASEBUILDCLASS = "meson"
DEPENDS = " \
+ appstream-glib-native \
+ desktop-file-utils-native \
+ libgedit-amtk \
+ libgedit-gtksourceview \
gdk-pixbuf-native \
gtk+3 \
gsettings-desktop-schemas \
libpeas \
libsoup \
gspell \
- gtksourceview4 \
tepl \
"
-inherit gnomebase gsettings itstool gnome-help gobject-introspection gtk-doc vala gettext features_check mime-xdg python3targetconfig
+inherit gnomebase gsettings itstool gnome-help gobject-introspection gtk-doc vala gettext features_check mime-xdg gtk-icon-cache python3targetconfig
def gnome_verdir(v):
return oe.utils.trim_version(v, 1)
-SRC_URI[archive.sha256sum] = "3bbb1b3775d4c277daf54aaab44b0eb83a4eb1f09f0391800041c9e56893ec11"
+SRC_URI[archive.sha256sum] = "a1a6e37f041765dff7227a1f5578b6f49faaf016b1e17e869caf5bfb94c6aa4e"
# gobject-introspection is mandatory and cannot be configured
REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+do_install:prepend() {
+ sed -i -e 's|${B}||g' ${B}/plugins/filebrowser/gedit-file-browser-enum-types.c
+}
+
GIR_MESON_OPTION = ""
GTKDOC_MESON_OPTION = "gtk_doc"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gedit/libgedit-amtk_5.8.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gedit/libgedit-amtk_5.8.0.bb
new file mode 100644
index 0000000000..11da836ff4
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gedit/libgedit-amtk_5.8.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "libgedit-amtk - Actions, Menus and Toolbars Kit for GTK applications"
+SECTION = "gnome"
+LICENSE = "LGPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSES/LGPL-3.0-or-later.txt;md5=c51d3eef3be114124d11349ca0d7e117"
+
+DEPENDS = "glib-2.0 gtk+3"
+
+inherit meson pkgconfig gobject-introspection features_check gtk-doc
+
+SRC_URI = "git://github.com/gedit-technology/libgedit-amtk.git;protocol=https;branch=main"
+S = "${WORKDIR}/git"
+SRCREV = "f6fbfd1c57de3d97cab2056a5c3088b0da49e8a4"
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+GIR_MESON_OPTION = "gobject_introspection"
+GTKDOC_MESON_OPTION = "gtk_doc"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gedit/libgedit-gtksourceview_299.0.4.bb b/meta-openembedded/meta-gnome/recipes-gnome/gedit/libgedit-gtksourceview_299.0.4.bb
new file mode 100644
index 0000000000..3a655f6509
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gedit/libgedit-gtksourceview_299.0.4.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Gedit Technology - Source code editing widget"
+SECTION = "gnome"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+DEPENDS = "glib-2.0 gtk+3 libxml2"
+
+inherit meson pkgconfig gobject-introspection features_check gtk-doc
+
+SRC_URI = "git://github.com/gedit-technology/libgedit-gtksourceview.git;protocol=https;branch=main"
+S = "${WORKDIR}/git"
+SRCREV = "7062264d635f6efe04d88217a893a97ff385b873"
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+GIR_MESON_OPTION = "gobject_introspection"
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+do_install:prepend() {
+ sed -i -e 's|${B}||g' ${B}/gtksourceview/gtksource-enumtypes.c
+ sed -i -e 's|${B}||g' ${B}/gtksourceview/gtksource-enumtypes.h
+}
+
+FILES:${PN} += "${datadir}"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.2.bb
index fed29da0fc..15091d4cd4 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.2.bb
@@ -7,13 +7,12 @@ DEPENDS = "exiv2 python3-pygobject-native"
GNOMEBASEBUILDCLASS = "meson"
GTKDOC_MESON_OPTION = "gtk_doc"
-inherit gnomebase gobject-introspection gtk-doc python3native
+inherit gnomebase gobject-introspection gtk-doc python3native vala
-SRC_URI[archive.sha256sum] = "e58279a6ff20b6f64fa499615da5e9b57cf65ba7850b72fafdf17221a9d6d69e"
+SRC_URI[archive.sha256sum] = "2a0c9cf48fbe8b3435008866ffd40b8eddb0667d2212b42396fdf688e93ce0be"
EXTRA_OEMESON = " \
- -Dvapi=false \
- -Dpython3_girdir=${PYTHON_SITEPACKAGES_DIR}/gi/overrides \
+ ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=true', '-Dvapi=false', d)} \
"
PACKAGES =+ "${PN}-python3"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch b/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch
index c46f85b7dc..8ebc8bad87 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch
@@ -1,4 +1,4 @@
-From fa47185d9c8150a0dcb0ea12b92fcf139edbef35 Mon Sep 17 00:00:00 2001
+From 95cacf345eaec898a47486fc0d33382f303275aa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Wed, 27 Oct 2021 20:18:47 +0200
Subject: [PATCH] Support cross builds a bit better
@@ -12,15 +12,16 @@ Content-Transfer-Encoding: 8bit
Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gjs/-/merge_requests/690]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+
---
meson.build | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
-index 136e812..f5b91e0 100644
+index 961660f..86239a4 100644
--- a/meson.build
+++ b/meson.build
-@@ -252,6 +252,7 @@ release builds of SpiderMonkey. Try configuring SpiderMonkey with
+@@ -255,6 +255,7 @@ release builds of SpiderMonkey. Try configuring SpiderMonkey with
--disable-debug.''')
endif
@@ -28,7 +29,7 @@ index 136e812..f5b91e0 100644
# Check if a minimal SpiderMonkey program compiles, links, and runs. If not,
# it's most likely the case that SpiderMonkey was configured incorrectly, for
# example by building mozglue as a shared library.
-@@ -282,6 +283,7 @@ elif minimal_program.returncode() != 0
+@@ -285,6 +286,7 @@ elif minimal_program.returncode() != 0
failed to execute. Most likely you should build it with a different
configuration.''' + recommended_configuration)
endif
@@ -36,7 +37,7 @@ index 136e812..f5b91e0 100644
have_printf_alternative_int = cc.compiles('''
#include <stdio.h>
-@@ -682,7 +684,7 @@ subdir('installed-tests')
+@@ -683,7 +685,7 @@ subdir('installed-tests')
# Note: The test program in test/ needs to be ported
# to Windows before we can build it on Windows.
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch b/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch
index e281717ea1..f05e52c389 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch
@@ -1,7 +1,12 @@
-From 2b8aa1ea4a4d1836164c934b1ab2556a32cb5af7 Mon Sep 17 00:00:00 2001
+From e6889d60891383ce6aa66aa3db30255af58bcf3c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Wed, 27 Oct 2021 20:04:02 +0200
Subject: [PATCH] meson.build: Do not add dir installed-tests when
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
installed_tests is false
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
@@ -10,17 +15,18 @@ Content-Transfer-Encoding: 8bit
Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gjs/-/merge_requests/690]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+
---
meson.build | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
-index f5b91e0..3110530 100644
+index 86239a4..11c04e2 100644
--- a/meson.build
+++ b/meson.build
-@@ -680,7 +680,9 @@ if not get_option('skip_gtk_tests')
- have_gtk4 = dependency('gtk4', required: false).found()
- endif
+@@ -681,7 +681,9 @@ endif
+
+ ### Tests and test setups ######################################################
-subdir('installed-tests')
+if get_option('installed_tests')
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs_1.76.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs_1.78.0.bb
index 93711bc3bb..0af9f5600c 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs_1.76.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gjs/gjs_1.78.0.bb
@@ -4,11 +4,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=8dcea832f6acf45d856abfeb2d51ec48"
GNOMEBASEBUILDCLASS = "meson"
-DEPENDS = "mozjs-102 cairo"
+DEPENDS = "mozjs-115 cairo"
inherit gnomebase gsettings gobject-introspection vala gettext features_check upstream-version-is-even pkgconfig
-SRC_URI[archive.sha256sum] = "7b867c18a9b30333ebbcff9ad3f20299f0372ffad439d49b87d40a1d1798b78d"
+SRC_URI[archive.sha256sum] = "fbaa20e0917668830800f92951688f9fc08f01296affd5cdb4b35f750be27dc9"
SRC_URI += " \
file://0001-Support-cross-builds-a-bit-better.patch \
file://0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_44.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_45.0.bb
index 53dafba184..ed2cb854d7 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_44.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_45.0.bb
@@ -29,7 +29,7 @@ def gnome_verdir(v):
REQUIRED_DISTRO_FEATURES = "x11 opengl"
-SRC_URI[archive.sha256sum] = "14e763329f88309a7e152780d57361b543100e323906b34e0655fdc315b71043"
+SRC_URI[archive.sha256sum] = "e58df0b5646111baf93ec5309b225d27b7c7f45deeee484af7914331b8cd2822"
FILES:${PN} += " \
${datadir}/dbus-1 \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_44.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_45.0.bb
index dcf5ba7d6d..a8b8123f80 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_44.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_45.0.bb
@@ -18,12 +18,17 @@ DEPENDS = " \
"
GNOMEBASEBUILDCLASS = "meson"
-
+GTKIC_VERSION = '4'
inherit gnomebase gsettings gtk-icon-cache gettext features_check upstream-version-is-even mime-xdg
REQUIRED_DISTRO_FEATURES = "x11 opengl"
-SRC_URI[archive.sha256sum] = "96acd74cbf45652934515cc3447a3b895e933f86324ca92436f67ddd63c3a802"
+SRC_URI[archive.sha256sum] = "8c1483cbba4388db410875ed09d64e9003f929b555d704076a6fe7bd7c1e65b2"
+
+do_install:prepend() {
+ sed -i -e 's|${S}/src|/usr/src/debug/${PN}/${PV}-${PR}/src|g' ${B}/src/gcal-enum-types.h
+ sed -i -e 's|${S}/src|/usr/src/debug/${PN}/${PV}-${PR}/src|g' ${B}/src/gcal-enum-types.c
+}
FILES:${PN} += " \
${datadir}/gnome-shell \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch
index 5c0eee5764..7cd7c0469e 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch
@@ -19,7 +19,7 @@ Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/meson_options.txt b/meson_options.txt
-index dbca723..af0f871 100644
+index 8ee7b6e0e..7e6adc668 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,3 +1,4 @@
@@ -28,28 +28,28 @@ index dbca723..af0f871 100644
option('ibus', type: 'boolean', value: true, description: 'build with IBus support')
option('privileged_group', type: 'string', value: 'wheel', description: 'name of group that has elevated permissions')
diff --git a/panels/background/meson.build b/panels/background/meson.build
-index 69af0cfea..6edcaa5ff 100644
+index 9bf543538..97f1e0117 100644
--- a/panels/background/meson.build
+++ b/panels/background/meson.build
@@ -19,7 +19,7 @@ common_sources = []
enums = 'gdesktop-enums-types'
enums_header = files(
-- gsettings_desktop_dep.get_pkgconfig_variable('prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
-+ get_option('oe_sysroot') + gsettings_desktop_dep.get_pkgconfig_variable('prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
+- gsettings_desktop_dep.get_variable(pkgconfig: 'prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
++ get_option('oe_sysroot') + gsettings_desktop_dep.get_variable(pkgconfig: 'prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
'cc-background-item.h'
)
diff --git a/panels/datetime/meson.build b/panels/datetime/meson.build
-index 3b6f5e197..30b207882 100644
+index 8cb3b63f0..8c5a45e7c 100644
--- a/panels/datetime/meson.build
+++ b/panels/datetime/meson.build
-@@ -45,7 +45,7 @@ sources = files(
+@@ -37,7 +37,7 @@ sources = files(
enums = 'gdesktop-enums-types'
enums_header = files(
-- gsettings_desktop_dep.get_pkgconfig_variable('prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
-+ get_option('oe_sysroot') + gsettings_desktop_dep.get_pkgconfig_variable('prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
+- gsettings_desktop_dep.get_variable(pkgconfig: 'prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
++ get_option('oe_sysroot') + gsettings_desktop_dep.get_variable(pkgconfig: 'prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
'cc-datetime-panel.h'
)
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_44.3.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_45.0.bb
index 0066f5885f..1122ee5ea0 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_44.3.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_45.0.bb
@@ -28,6 +28,8 @@ DEPENDS = " \
polkit \
pulseaudio \
samba \
+ setxkbmap-native \
+ tecla \
udisks2 \
upower \
"
@@ -37,16 +39,14 @@ inherit gtk-icon-cache pkgconfig gnomebase gsettings gettext upstream-version-is
REQUIRED_DISTRO_FEATURES += "opengl polkit pulseaudio systemd x11"
SRC_URI += "file://0001-Add-meson-option-to-pass-sysroot.patch"
-SRC_URI[archive.sha256sum] = "066a65052fc3ecfae860025e85f797e6ab2b87a58c4f8ab9c66ec20718a80c7a"
+SRC_URI[archive.sha256sum] = "83df6a90f98914f2c19a872ce06562acef40927637f679c383099265ccfa42cf"
PACKAGECONFIG ??= "ibus ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)}"
PACKAGECONFIG[cups] = ",,cups,cups"
PACKAGECONFIG[ibus] = "-Dibus=true, -Dibus=false, ibus"
PACKAGECONFIG[wayland] = "-Dwayland=true, -Dwayland=false, wayland"
-EXTRA_OEMESON = " \
- -Doe_sysroot=${STAGING_DIR_HOST} \
-"
+EXTRA_OEMESON += "-Doe_sysroot=${STAGING_DIR_HOST}"
USERADD_PACKAGES = "${PN}"
USERADD_PARAM:${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd"
@@ -66,4 +66,4 @@ FILES:${PN} += " \
FILES:${PN}-dev += "${datadir}/gettext"
-RDEPENDS:${PN} += "gsettings-desktop-schemas"
+RDEPENDS:${PN} += "gsettings-desktop-schemas tecla"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_44.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_45.0.bb
index 3f642f401f..ec5b47b970 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_44.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_45.0.bb
@@ -22,7 +22,7 @@ inherit gnomebase gettext gsettings upstream-version-is-even features_check
REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam gobject-introspection-data"
-SRC_URI[archive.sha256sum] = "ccf829a96526135e9e9f917526515d36a5092bdfa316f3737dd8c5a524dbf2c6"
+SRC_URI[archive.sha256sum] = "706d2ffcacac38553a3c0185793f5a2b4aac940bb5e789d953c9808163bef2f1"
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'consolekit',d)}"
@@ -30,9 +30,8 @@ PACKAGECONFIG[consolekit] = "-Dconsolekit=true, -Dconsolekit=false, dbus-glib"
PACKAGECONFIG[systemd] = "-Dsystemd=true -Dsystemd_journal=true, -Dsystemd=false -Dsystemd_journal=false, systemd"
FILES:${PN} += " \
+ ${datadir}/xdg-desktop-portal \
${datadir}/xsessions \
${datadir}/wayland-sessions \
${systemd_user_unitdir} \
"
-
-RDEPENDS:${PN} += "gnome-shell gnome-settings-daemon gsettings-desktop-schemas"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_44.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_45.0.bb
index 104f4a6677..16b7f23671 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_44.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_45.0.bb
@@ -25,7 +25,7 @@ DEPENDS = " \
REQUIRED_DISTRO_FEATURES = "x11 polkit pulseaudio systemd gobject-introspection-data"
GIR_MESON_OPTION = ""
-SRC_URI[archive.sha256sum] = "12653b72d81f151300a47d700ac9410ac1bcce38e83f1bdd19cded2932943989"
+SRC_URI[archive.sha256sum] = "bb4dc46950e2a90f38f23225848856d2a7b1b718c89d0285ce197b7016bb1dc8"
PACKAGECONFIG ??= " \
cups nm \
@@ -40,7 +40,10 @@ PACKAGECONFIG[nm] = "-Dnetwork_manager=true,-Dnetwork_manager=false,networkmanag
PACKAGECONFIG[smartcard] = "-Dsmartcard=true,-Dsmartcard=false,nss"
PACKAGECONFIG[wayland] = "-Dwayland=true,-Dwayland=false,wayland"
+def gnome_verdir(v):
+ return oe.utils.trim_version(v, 1)
+
FILES:${PN} += " \
${systemd_user_unitdir} \
- /usr/lib/gnome-settings-daemon-44/libgsd.so \
+ ${libdir}/gnome-settings-daemon-${@gnome_verdir("${PV}")}/libgsd.so \
"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch
index b583199e98..e8c7e79aa4 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch
@@ -1,4 +1,4 @@
-From 9f11c9e53d91b23113202b40500540242bcabdb0 Mon Sep 17 00:00:00 2001
+From b2710a880b366201f07752e87d35bb52ea69cbbe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Thu, 28 Oct 2021 18:57:24 +0200
Subject: [PATCH] Introduce options 'gjs_path' to optionally set path to gjs
@@ -11,6 +11,11 @@ MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
@@ -38,10 +43,10 @@ index 48b7f89..700b590 100644
configure_file(
diff --git a/meson.build b/meson.build
-index 252fb1e..250f722 100644
+index 70ba711..f0ab158 100644
--- a/meson.build
+++ b/meson.build
-@@ -125,7 +125,11 @@ endif
+@@ -135,7 +135,11 @@ endif
mutter_typelibdir = mutter_dep.get_variable('typelibdir')
python = find_program('python3')
@@ -55,12 +60,12 @@ index 252fb1e..250f722 100644
cc = meson.get_compiler('c')
diff --git a/meson_options.txt b/meson_options.txt
-index 46ca8e7..3e9a31f 100644
+index 6e83d92..1bf0ecb 100644
--- a/meson_options.txt
+++ b/meson_options.txt
-@@ -45,3 +45,9 @@ option('soup2',
- value: false,
- description: 'Use Soup 2.4 instead of Soup 3. Must be in sync with libgweather'
+@@ -45,3 +45,9 @@ option('systemd',
+ value: true,
+ description: 'Enable systemd integration'
)
+
+option('gjs_path',
@@ -69,7 +74,7 @@ index 46ca8e7..3e9a31f 100644
+ description: 'Instead of searching gjs executable, configure path'
+)
diff --git a/subprojects/extensions-app/js/meson.build b/subprojects/extensions-app/js/meson.build
-index ce2a776..8f7bba4 100644
+index c9a67f8..91ae887 100644
--- a/subprojects/extensions-app/js/meson.build
+++ b/subprojects/extensions-app/js/meson.build
@@ -9,7 +9,7 @@ endif
@@ -82,7 +87,7 @@ index ce2a776..8f7bba4 100644
configure_file(
input: prgname + '.in',
diff --git a/subprojects/extensions-app/meson.build b/subprojects/extensions-app/meson.build
-index 66a39e9..331dc1d 100644
+index 6c9639e..3fe1ce0 100644
--- a/subprojects/extensions-app/meson.build
+++ b/subprojects/extensions-app/meson.build
@@ -46,7 +46,12 @@ localedir = join_paths(datadir, 'locale')
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_44.3.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_45.0.bb
index e1aa051ef4..66c05a1ff1 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_44.3.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_45.0.bb
@@ -32,7 +32,7 @@ GIR_MESON_OPTION = ""
# gobject-introspection is mandatory and cannot be configured
REQUIRED_DISTRO_FEATURES += "gobject-introspection-data"
-SRC_URI[archive.sha256sum] = "55694b71c2ee4eaef60d93428003f2eaa4cf00186848f5e36b45cfe506fc31bf"
+SRC_URI[archive.sha256sum] = "3cabe40bdd4e379c7082b39ffa45b8bef5c9cf86408fb0d836e1571c443217cd"
SRC_URI += "file://0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch"
PACKAGECONFIG ??= "bluetooth nm ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
@@ -45,7 +45,6 @@ EXTRA_OEMESON = " \
-Dextensions-app:gjs_path=${bindir}/gjs \
-Dtests=false \
-Dman=false \
- -Dsoup2=false \
"
do_install:append() {
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.4.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_45.0.bb
index ac3571685f..89a6f05f4f 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.4.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_45.0.bb
@@ -29,7 +29,7 @@ RDEPENDS:${PN} = "iso-codes"
EXTRA_OEMESON += "-Dtests=false -Dsoup2=false"
-SRC_URI[archive.sha256sum] = "8b53767ef6cc54a2db588ef1c5926838b0d67b8d9b21173de5139cd0fbd28095"
+SRC_URI[archive.sha256sum] = "61f42c2fd4d19b894a2484f691369032dc8b2a32a014ce6ca4d02c4fa4f75a14"
PACKAGECONFIG ?= "flatpak"
PACKAGECONFIG[flatpak] = "-Dflatpak=true,-Dflatpak=false,flatpak ostree"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_44.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_45.0.1.bb
index dfbfd7882e..c8130d27e8 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_44.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_45.0.1.bb
@@ -23,7 +23,7 @@ REQUIRED_DISTRO_FEATURES = "polkit"
def gnome_verdir(v):
return oe.utils.trim_version(v, 1)
-SRC_URI[archive.sha256sum] = "c2bab7eddba92827c4c8de44293e7e3c84c9e5076f31985887ff8969cec45e6e"
+SRC_URI[archive.sha256sum] = "43f6b7805c74532490edb8822ebdf8b3cf2c5ef842a51252a14c34715f5d49b4"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_44.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_45.0.bb
index 40bcd27d2b..52bb92ee9e 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_44.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_45.0.bb
@@ -19,7 +19,7 @@ inherit gnomebase gtk-icon-cache itstool gnome-help mime-xdg features_check
REQUIRED_DISTRO_FEATURES = "opengl"
-SRC_URI[archive.sha256sum] = "f67bc3780734ffa815fcc4c5daa7b555d24e459f81ea2b548e6a85c1612a31ca"
+SRC_URI[archive.sha256sum] = "47b3fbe4900eb204413d9af3ae8e0ecd06728d2ac15d02b1a050d02d47226bc1"
FILES:${PN} += " \
${datadir}/metainfo \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0002-meson-fix-invalid-positional-argument.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0002-meson-fix-invalid-positional-argument.patch
index bd7e76f208..d921ff3308 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0002-meson-fix-invalid-positional-argument.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0002-meson-fix-invalid-positional-argument.patch
@@ -3,7 +3,7 @@ From: Mae Dartmann <hello@maedartmann.name>
Date: Wed, 16 Feb 2022 06:08:41 +0000
Subject: [PATCH] meson: fix invalid positional argument
-Upstream-Status: Accepted [https://gitlab.gnome.org/GNOME/gnome-tweaks/-/commit/dc9701e18775c01d0b69fabaa350147f70096da8]
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gnome-tweaks/-/commit/dc9701e18775c01d0b69fabaa350147f70096da8]
---
data/meson.build | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.51.90.bb b/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.52.0.bb
index 2d1048e12f..d5103d865a 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.51.90.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.52.0.bb
@@ -20,7 +20,7 @@ RDEPENDS:${PN} += "gsettings-desktop-schemas"
SRC_URI = "https://download.gnome.org/sources/${BPN}/${@gnome_verdir("${PV}")}/${BPN}-${PV}.tar.xz;name=archive"
-SRC_URI[archive.sha256sum] = "c05aaa7cf463540fb8c9097cf9b77d92f2c8e0de1dcd643afb14c1284f823bdd"
+SRC_URI[archive.sha256sum] = "e40e2035a40bc51ce9e88eed05b025596e40bb4aaf9bc632d12ce74fdb30b1f6"
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_44.3.bb b/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_45.0.bb
index 6bd8a7b08e..87d61c2669 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_44.3.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_45.0.bb
@@ -15,6 +15,7 @@ DEPENDS = " \
json-glib \
gnome-desktop \
gnome-settings-daemon \
+ libei \
libxtst \
libxkbfile \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xinerama', '', d)} \
@@ -25,7 +26,7 @@ GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase gsettings gobject-introspection gettext features_check
-SRC_URI[archive.sha256sum] = "185cbebf2150d3e450550e371bdb13a8b4db096978b14f99521e966eacc70551"
+SRC_URI[archive.sha256sum] = "8fbc963019eda9ba52fca2f6c4c477efbc6e36eb4fa93f23174f02ff6b907715"
# x11 is still manadatory - see meson.build
REQUIRED_DISTRO_FEATURES = "wayland x11 polkit"
@@ -53,6 +54,7 @@ EXTRA_OEMESON += " \
PACKAGECONFIG[native-backend] = "-Dnative_backend=true -Dudev=true, -Dnative_backend=false -Dudev=false, libdrm virtual/libgbm libinput ${LOGIND} virtual/egl virtual/libgles2 udev"
PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=true, virtual/libgl"
PACKAGECONFIG[glx] = "-Dglx=true, -Dglx=false"
+PACKAGECONFIG[libdisplay-info] = "-Dlibdisplay_info=true, -Dlibdisplay_info=false, libdisplay-info"
PACKAGECONFIG[libwacom] = "-Dlibwacom=true, -Dlibwacom=false, libwacom"
# Remove depending on pipewire-0.2 when mutter is upgraded to 3.36+
PACKAGECONFIG[remote-desktop] = "-Dremote_desktop=true, -Dremote_desktop=false, pipewire"
@@ -60,7 +62,7 @@ PACKAGECONFIG[sm] = "-Dsm=true, -Dsm=false, libsm"
PACKAGECONFIG[profiler] = "-Dprofiler=true,-Dprofiler=false,sysprof"
PACKAGECONFIG[startup-notification] = "-Dstartup_notification=true, -Dstartup_notification=false, startup-notification, startup-notification"
-MUTTER_API_NAME = "mutter-12"
+MUTTER_API_NAME = "mutter-13"
do_install:prepend() {
sed -i -e 's|${B}/||g' ${B}/clutter/clutter/clutter-enum-types.c
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/0001-Replace-filename-with-basename.patch b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/0001-Replace-filename-with-basename.patch
deleted file mode 100644
index dbf42a9ab9..0000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus/0001-Replace-filename-with-basename.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 4ec1f99f170033138036d6547dce9b7dcf541338 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 24 May 2023 07:56:33 -0700
-Subject: [PATCH] Replace filename with basename
-
-This avoids emitting absolute paths into generated sourcecode, it
-improves reproducibility. See [1]
-
-[1] https://developer-old.gnome.org/gobject/stable/glib-mkenums.html
-
-Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/nautilus/-/merge_requests/1211]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/nautilus-enum-types.c.template | 2 +-
- src/nautilus-enum-types.h.template | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/nautilus-enum-types.c.template b/src/nautilus-enum-types.c.template
-index 9d8ac83..a757949 100644
---- a/src/nautilus-enum-types.c.template
-+++ b/src/nautilus-enum-types.c.template
-@@ -4,7 +4,7 @@
- /*** END file-header ***/
-
- /*** BEGIN file-production ***/
--/* Enumerations from "@filename@" */
-+/* Enumerations from "@basename@" */
- #include "@filename@"
-
- /*** END file-production ***/
-diff --git a/src/nautilus-enum-types.h.template b/src/nautilus-enum-types.h.template
-index 399bbca..7eb6c54 100644
---- a/src/nautilus-enum-types.h.template
-+++ b/src/nautilus-enum-types.h.template
-@@ -8,7 +8,7 @@ G_BEGIN_DECLS
- /*** END file-header ***/
-
- /*** BEGIN file-production ***/
--/* Enumerations from "@filename@" */
-+/* Enumerations from "@basename@" */
-
- /*** END file-production ***/
-
---
-2.40.1
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_44.2.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_45.0.bb
index f181822b1a..a083d1799f 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_44.2.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_45.0.bb
@@ -23,11 +23,7 @@ DEPENDS = " \
inherit gnomebase gsettings gobject-introspection gi-docgen gettext features_check mime-xdg gtk-icon-cache
-def gnome_verdir(v):
- return oe.utils.trim_version(v, 1)
-
-SRC_URI += "file://0001-Replace-filename-with-basename.patch"
-SRC_URI[archive.sha256sum] = "d9c62f024727f7a76fc6a5da788a2b0247df01a71c2a601143c62aac0ff41e4c"
+SRC_URI[archive.sha256sum] = "b311c465ce2ca7bc648f61b865187b4451388dec9358a169f3277e741718ab5d"
REQUIRED_DISTRO_FEATURES = "x11 opengl gobject-introspection-data"
@@ -43,6 +39,10 @@ PACKAGECONFIG = "extensions"
PACKAGECONFIG[extensions] = "-Dextensions=true,-Dextensions=false, gexiv2 gstreamer1.0-plugins-base gdk-pixbuf"
PACKAGECONFIG[packagekit] = "-Dpackagekit=true,-Dpackagekit=false,packagekit"
+do_install:prepend() {
+ sed -i -e 's|${B}/||g' ${B}/src/nautilus-enum-types.c
+}
+
FILES:${PN} += " \
${datadir}/dbus-1 \
${datadir}/metainfo \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tecla/tecla_45.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/tecla/tecla_45.0.bb
new file mode 100644
index 0000000000..c047e29b7d
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/tecla/tecla_45.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Tecla is a keyboard layout viewer that uses GTK/Libadwaita for UI, and libxkbcommon to deal with keyboard maps."
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=75859989545e37968a99b631ef42722e"
+
+DEPENDS = " \
+ libxkbcommon \
+ libadwaita \
+ wayland \
+ gtk4 \
+"
+
+REQUIRED_DISTRO_FEATURES = "wayland"
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase pkgconfig features_check
+
+SRC_URI[archive.sha256sum] = "5c02bb4019b1cffb5663da6107503eff853836a8783dd4705dd04a49f7adc25b"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tepl/tepl_6.4.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/tepl/tepl_6.8.0.bb
index 1eecfff4b0..6c9c36f3ed 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/tepl/tepl_6.4.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/tepl/tepl_6.8.0.bb
@@ -6,8 +6,8 @@ DEPENDS = " \
gsettings-desktop-schemas \
glib-2.0 \
gtk+3 \
- gtksourceview4 \
- amtk \
+ libgedit-amtk \
+ libgedit-gtksourceview \
libxml2 \
uchardet \
gtk-doc-native \
@@ -21,7 +21,7 @@ inherit meson gobject-introspection gettext features_check pkgconfig
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
SRC_URI = "git://gitlab.gnome.org/swilmet/tepl;protocol=https;branch=main"
-SRCREV = "d1e9cc2e4a0738f68d9002f13724b7239f075844"
+SRCREV = "16ab2567257a053bd957699f89080fafd0999035"
S = "${WORKDIR}/git"
# gobject-introspection is mandatory and cannot be configured
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-fix-reproducibility.patch b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-fix-reproducibility.patch
new file mode 100644
index 0000000000..dd55256166
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-fix-reproducibility.patch
@@ -0,0 +1,108 @@
+From 2bbd07843e8ec34311cafab35f21b40c86e0dd7f Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Tue, 12 Sep 2023 17:00:41 +0200
+Subject: [PATCH] meson: fix reproducibility
+
+Tracker's design seems to be strictly for non-cross builds and leaks buildpaths into the
+binaries at various places. Avoid this to improve binary reproducibility.
+
+todo: Some of these paths may need to be adjusted to make the test environment work
+
+Upstream-Status: Inappropriate [oe-specific]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ meson.build | 20 ++++++++++----------
+ src/tracker-extract/meson.build | 2 +-
+ tests/tracker-miner-fs/meson.build | 2 +-
+ 3 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 935584185..aa6126081 100644
+--- a/meson.build
++++ b/meson.build
+@@ -380,7 +380,7 @@ conf.set('PACKAGE_VERSION', '"@0@"'.format(meson.project_version()))
+ conf.set('TRACKER_VERSION', '"@0@"'.format(meson.project_version()))
+
+ # Config that goes in some other generated files (.desktop, .pc, etc)
+-conf.set('abs_top_builddir', meson.current_build_dir())
++conf.set('abs_top_builddir', '')
+ conf.set('exec_prefix', get_option('prefix'))
+ conf.set('bindir', join_paths(get_option('prefix'), get_option('bindir')))
+ conf.set('datadir', datadir)
+@@ -409,7 +409,7 @@ tracker_c_args = [
+ configinc = include_directories('./')
+ srcinc = include_directories('src/')
+
+-build_root = meson.current_build_dir()
++build_root = ''
+
+ # We use tracker-miners-3.0 rather than tracker3-miners inside the lib64
+ # directory, following the existing convention in that directory.
+@@ -421,10 +421,10 @@ tracker_writeback_modules_dir = join_paths(get_option('prefix'), get_option('lib
+ tracker_extract_rules_dir = join_paths(get_option('prefix'), get_option('datadir'), tracker_versioned_name, 'extract-rules')
+ tracker_miner_services_dir = join_paths(get_option('prefix'), get_option('datadir'), tracker_versioned_name, 'miners')
+
+-tracker_uninstalled_cli_subcommands_dir = meson.current_build_dir() / 'src' / 'tracker' / 'subcommands'
+-tracker_uninstalled_extract_rules_dir = join_paths(meson.current_build_dir(), 'src', 'tracker-extract', 'uninstalled-rules')
+-tracker_uninstalled_writeback_modules_dir = join_paths(meson.current_build_dir(), 'src', 'tracker-writeback')
+-uninstalled_tracker_extract_path = join_paths(meson.current_build_dir(), 'src', 'tracker-extract', 'tracker-extract-3')
++tracker_uninstalled_cli_subcommands_dir = '/usr/src/debug/tracker/src/tracker/subcommands'
++tracker_uninstalled_extract_rules_dir = join_paths('usr', 'src', 'debug', 'tracker', 'src', 'tracker-extract', 'uninstalled-rules')
++tracker_uninstalled_writeback_modules_dir = join_paths('usr', 'src', 'debug', 'tracker', 'src', 'tracker-writeback')
++uninstalled_tracker_extract_path = join_paths('usr', 'src', 'debug', 'tracker', 'src', 'tracker-extract', 'tracker-extract-3')
+
+ gsettings_schema_dir = join_paths(get_option('prefix'), get_option('datadir'), 'glib-2.0', 'schemas')
+ po_dir = join_paths(meson.current_source_dir(), 'po')
+@@ -438,8 +438,8 @@ subdir('data')
+ subdir('docs')
+
+ test_c_args = tracker_c_args + [
+- '-DTOP_BUILDDIR="@0@/"'.format(meson.build_root()),
+- '-DTOP_SRCDIR="@0@/"'.format(meson.source_root()),
++ '-DTOP_BUILDDIR="@0@/"'.format(''),
++ '-DTOP_SRCDIR="@0@/"'.format('/usr/src/debug/tracker'),
+ ]
+
+ if get_option('tests_tap_protocol')
+@@ -454,9 +454,9 @@ run_uninstalled_conf = configuration_data()
+ run_uninstalled_conf.set('tracker_sparql_uninstalled_dir', tracker_sparql_uninstalled_dir)
+ run_uninstalled_conf.set('tracker_uninstalled_cli_dir', tracker_uninstalled_cli_dir)
+ run_uninstalled_conf.set('tracker_uninstalled_cli_subcommands_dir', tracker_uninstalled_cli_subcommands_dir)
+-run_uninstalled_conf.set('tracker_uninstalled_domain_rule', meson.current_build_dir() / 'tests' / 'functional-tests' / 'config' / 'test-domain.rule')
++run_uninstalled_conf.set('tracker_uninstalled_domain_rule', '/usr/src/debug/tracker/tests/functional-tests/config/test-domain.rule')
+ run_uninstalled_conf.set('tracker_uninstalled_extract_rules_dir', tracker_uninstalled_extract_rules_dir)
+-run_uninstalled_conf.set('tracker_uninstalled_extractors_dir', meson.current_build_dir() / 'src' / 'tracker-extract')
++run_uninstalled_conf.set('tracker_uninstalled_extractors_dir', '/usr/src/debug/tracker/src/tracker-extract')
+ run_uninstalled_conf.set('tracker_uninstalled_miner_services_dir', tracker_uninstalled_miner_services_dir)
+ run_uninstalled_conf.set('tracker_uninstalled_testutils_dir', tracker_uninstalled_testutils_dir)
+ run_uninstalled_conf.set('tracker_uninstalled_writeback_modules_dir', tracker_uninstalled_writeback_modules_dir)
+diff --git a/src/tracker-extract/meson.build b/src/tracker-extract/meson.build
+index 4aaad5c41..d17cce221 100644
+--- a/src/tracker-extract/meson.build
++++ b/src/tracker-extract/meson.build
+@@ -159,7 +159,7 @@ endif
+ executable('tracker-extract-@0@'.format(tracker_api_major),
+ tracker_extract_sources,
+ # Manually add the root dir to work around https://github.com/mesonbuild/meson/issues/1387
+- c_args: tracker_c_args + ['-I' + meson.build_root()],
++ c_args: tracker_c_args,
+ export_dynamic: true,
+ dependencies: tracker_extract_dependencies,
+ install: true,
+diff --git a/tests/tracker-miner-fs/meson.build b/tests/tracker-miner-fs/meson.build
+index e131b85ad..59e509fa6 100644
+--- a/tests/tracker-miner-fs/meson.build
++++ b/tests/tracker-miner-fs/meson.build
+@@ -19,7 +19,7 @@ libtracker_miner_test_c_args = [
+ ]
+
+ libtracker_miner_test_environment = environment()
+-libtracker_miner_test_environment.set('GSETTINGS_SCHEMA_DIR', join_paths(meson.build_root(), 'data'))
++libtracker_miner_test_environment.set('GSETTINGS_SCHEMA_DIR', '/usr/src/debug/tracker-miners/data')
+
+ libtracker_miner_test_deps = [tracker_miners_common_dep, tracker_miner_dep, tracker_sparql]
+
+--
+2.41.0
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch
deleted file mode 100644
index 53c5f2664e..0000000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 54ea2cabf85ad1bd5695cdbd1935115c9495e80c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Sun, 1 Dec 2019 17:06:59 +0100
-Subject: [PATCH] meson.build: Just warn if we build without libseccomp
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-libseccomp lives in meta-security currently and we cannot make it a mandatory
-dependency. Once somebody moves libseccomp to meta-oe and adjusts all the
-target specific knobs this patch can go. For discussion see [1].
-
-[1] http://lists.openembedded.org/pipermail/openembedded-devel/2019-November/203234.html
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index 71a9df4..1eaa1a0 100644
---- a/meson.build
-+++ b/meson.build
-@@ 299,7 +299,7 @@ cpu_supports_seccomp = not unsupported_cpus.contains(host_cpu)
- seccomp_required = system_supports_seccomp and cpu_supports_seccomp and get_option('seccomp') and get_option('extract')
-
- if not libseccomp.found() and seccomp_required
-- error('Libseccomp is mandatory for sandboxed metadata extraction')
-+ warning('Building without Libseccomp might cause security issues!')
- endif
-
- ####################################################################
---
-2.21.0
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.5.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.6.0.bb
index d093697c13..d899155028 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.5.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.6.0.bb
@@ -7,6 +7,7 @@ LIC_FILES_CHKSUM = " \
DEPENDS = " \
intltool-native \
+ libseccomp \
tracker \
zlib \
"
@@ -15,10 +16,11 @@ GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase gsettings gobject-introspection vala bash-completion features_check
-SRC_URI += "file://0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch \
- file://0001-Set-header-file-to-a-fixed-path-instead-of-a-host-pa.patch \
- "
-SRC_URI[archive.sha256sum] = "17966603dc432a98526b490586a48acd7f9f59935f7895dfc51729a46a6901a3"
+SRC_URI:append = " \
+ file://0001-fix-reproducibility.patch \
+ file://0001-Set-header-file-to-a-fixed-path-instead-of-a-host-pa.patch \
+"
+SRC_URI[archive.sha256sum] = "c2ed9f6b0410195863b84c7b5467c5bc1255e96d658741192b5e92568a3bebd0"
# gobject-introspection is mandatory and cannot be configured
REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker/0001-fix-reproducibility.patch b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker/0001-fix-reproducibility.patch
new file mode 100644
index 0000000000..4a11f8314b
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker/0001-fix-reproducibility.patch
@@ -0,0 +1,80 @@
+From e5acd475f796420b4887969f2b0057dbf67979b3 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Mon, 18 Sep 2023 02:47:55 +0200
+Subject: [PATCH] tracker: fix reproducibility issue
+
+Tracker's design seems to be strictly for non-cross builds and leaks buildpaths into the
+binaries at various places. Avoid this to improve binary reproducibility.
+
+todo: Some of these paths may need to be adjusted to make the test environment work
+
+Upstream-Status: Inappropriate [oe-specific]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ meson.build | 6 +++---
+ src/libtracker-common/meson.build | 4 ++--
+ src/libtracker-sparql/meson.build | 4 ++--
+ 3 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 8442a216f..82844d7fd 100644
+--- a/meson.build
++++ b/meson.build
+@@ -348,7 +348,7 @@ have_rtld_noload = cc.has_header_symbol('dlfcn.h', 'RTLD_NOLOAD')
+ conf.set('HAVE_RTLD_NOLOAD', have_rtld_noload)
+
+ # Config that goes in some other generated files (.desktop, .service, etc)
+-conf.set('abs_top_builddir', meson.current_build_dir())
++conf.set('abs_top_builddir', '/usr/src/debug/tracker')
+ conf.set('libexecdir', join_paths(get_option('prefix'), get_option('libexecdir')))
+
+ configure_file(input: 'config.h.meson.in',
+@@ -388,8 +388,8 @@ subdir('docs')
+ subdir('utils')
+
+ test_c_args = tracker_c_args + [
+- '-DTOP_BUILDDIR="@0@"'.format(build_root),
+- '-DTOP_SRCDIR="@0@"'.format(source_root),
++ '-DTOP_BUILDDIR="@0@/"'.format('/usr/src/debug/tracker'),
++ '-DTOP_SRCDIR="@0@/"'.format('/usr/src/debug/tracker'),
+ ]
+
+ tracker_uninstalled_cli_dir = join_paths(meson.current_build_dir(), 'src', 'tracker')
+diff --git a/src/libtracker-common/meson.build b/src/libtracker-common/meson.build
+index 9355d1c0d..cdbc05f28 100644
+--- a/src/libtracker-common/meson.build
++++ b/src/libtracker-common/meson.build
+@@ -51,10 +51,10 @@ libtracker_common = static_library('tracker-common',
+ dependencies: [tracker_common_dependencies, gmodule],
+ c_args: [
+ '-DPRIVATE_LIBDIR="@0@"'.format(tracker_internal_libs_dir),
+- '-DBUILD_LIBDIR="@0@"'.format(meson.current_build_dir()),
++ '-DBUILD_LIBDIR="@0@"'.format('/usr/src/debug/tracker'),
+ # Global build root is required to detect noinst situations (tests/introspection),
+ # event when built as a subproject
+- '-DBUILDROOT="@0@"'.format(meson.global_build_root()),
++ '-DBUILDROOT="@0@"'.format('/usr/src/debug/tracker'),
+ ] + tracker_c_args,
+ include_directories: [configinc, srcinc],
+ gnu_symbol_visibility: 'hidden',
+diff --git a/src/libtracker-sparql/meson.build b/src/libtracker-sparql/meson.build
+index 36288f5c3..61086a697 100644
+--- a/src/libtracker-sparql/meson.build
++++ b/src/libtracker-sparql/meson.build
+@@ -96,10 +96,10 @@ libtracker_sparql_private = static_library('tracker-sparql-private',
+ c_args: [
+ '-include', 'libtracker-sparql/tracker-private.h',
+ '-DPRIVATE_LIBDIR="@0@"'.format(tracker_internal_libs_dir),
+- '-DBUILD_LIBDIR="@0@"'.format(meson.current_build_dir()),
++ '-DBUILD_LIBDIR="@0@"'.format('/usr/src/debug/tracker'),
+ # Global build root is required to detect noinst situations (tests/introspection),
+ # event when built as a subproject
+- '-DBUILDROOT="@0@"'.format(meson.global_build_root()),
++ '-DBUILDROOT="@0@"'.format('/usr/src/debug/tracker'),
+ ] + tracker_c_args,
+
+ dependencies: [libtracker_sparql_dependencies, gvdb_dep],
+--
+2.41.0
+
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.5.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.6.0.bb
index 6dd8af2390..d2eb392a0f 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.5.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.6.0.bb
@@ -20,14 +20,10 @@ DEPENDS = " \
GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase gsettings gobject-introspection vala gtk-doc manpages bash-completion features_check python3native
+inherit gettext gnomebase gsettings gobject-introspection vala gtk-doc bash-completion python3native
-SRC_URI += "file://0001-meson-Do-not-define-TOP_SRCDIR.patch"
-SRC_URI[archive.sha256sum] = "f972d50ac7bafdccf113b1eb99dcae35404685a99e55bfef16f3ac83b4de974d"
-
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-GIR_MESON_OPTION = ""
+SRC_URI += "file://0001-fix-reproducibility.patch"
+SRC_URI[archive.sha256sum] = "52592cfe19baffd16dbe47475be7da750dbd0b6333fd7acb60faa9da5bc40df2"
# text search is not an option anymore and requires sqlite3 build with
# PACKAGECONFIG[fts5] set (default)
@@ -45,8 +41,17 @@ EXTRA_OEMESON = " \
-Dsystemd_user_services=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)} \
-Dsystemd_user_services_dir=${systemd_user_unitdir} \
-Dsoup=soup3 \
+ ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=enabled', '-Dvapi=disabled', d)} \
"
+do_install:prepend() {
+ sed -i -e 's|${B}/../${PN}-${PV}|/usr/src/debug/${PN}/${PV}-${PR}|g' ${B}/src/libtracker-sparql/tracker-sparql-enum-types.c
+ sed -i -e 's|${B}/../${PN}-${PV}|/usr/src/debug/${PN}/${PV}-${PR}|g' ${B}/src/libtracker-sparql/core/tracker-data-enum-types.c
+}
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+
FILES:${PN} += " \
${datadir}/dbus-1 \
${datadir}/tracker3 \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.44.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.44.2.bb
index 3548cc5bbe..a152e64059 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.44.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.44.2.bb
@@ -16,7 +16,7 @@ DEPENDS = " \
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-SRC_URI[archive.sha256sum] = "c15582301ed90b9d42ce521dbccf99a989f22f12041bdd5279c6636da99ebf65"
+SRC_URI[archive.sha256sum] = "3fb5b8b1044d3d129262d3c54cf220eb7f76bc21bd5ac6d96ec115cd3518300e"
SRC_URI += "file://0001-Harcode-shebang-to-avoid-pointing-to-build-system-s-.patch"
PACKAGECONFIG ?= "webkitgtk"
diff --git a/meta-openembedded/meta-gnome/recipes-support/libcloudproviders/libcloudproviders_0.3.2.bb b/meta-openembedded/meta-gnome/recipes-support/libcloudproviders/libcloudproviders_0.3.4.bb
index 401c83fcdc..36089238f6 100644
--- a/meta-openembedded/meta-gnome/recipes-support/libcloudproviders/libcloudproviders_0.3.2.bb
+++ b/meta-openembedded/meta-gnome/recipes-support/libcloudproviders/libcloudproviders_0.3.4.bb
@@ -8,4 +8,4 @@ DEPENDS = "glib-2.0"
inherit gnomebase gobject-introspection vala
-SRC_URI[archive.sha256sum] = "24a9f3fffaf49f1d9d45d6ec35ba9f9e59a5a1040b51ce7835611131966c6819"
+SRC_URI[archive.sha256sum] = "e3d7160c3e45fe3216c07c7988bb4fc81397c32d1fc6113af0edfe8632039f65"
diff --git a/meta-openembedded/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_44.1.bb b/meta-openembedded/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_45.0.bb
index a8e8c83de8..91469934dd 100644
--- a/meta-openembedded/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_44.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_45.0.bb
@@ -17,17 +17,14 @@ DEPENDS = " \
RDEPENDS:${PN} = "xdg-desktop-portal xdg-desktop-portal-gtk"
-inherit meson pkgconfig gsettings features_check
+GNOMEBASEBUILDCLASS = "meson"
+inherit gnomebase pkgconfig gsettings features_check
REQUIRED_DISTRO_FEATURES = "polkit"
-SRC_URI = "git://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome.git;protocol=https;branch=main"
-
-S = "${WORKDIR}/git"
-SRCREV = "89203bf3522556965fc225782d1a635afdac611e"
+SRC_URI[archive.sha256sum] = "949598861c80000febf18cc12b3721c95c1bb1d19371fc2156dc4f33def5aff0"
PACKAGECONFIG ?= "screenshot screencast ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)}"
-
PACKAGECONFIG[wayland] = ",,wayland-native"
PACKAGECONFIG[screenshot] = ",,,gnome-shell"
PACKAGECONFIG[screencast] = ",,,mutter"
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools/0001-build-Fix-wrap-file-syntax.patch b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools/0001-build-Fix-wrap-file-syntax.patch
new file mode 100644
index 0000000000..5c13ce0bd5
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools/0001-build-Fix-wrap-file-syntax.patch
@@ -0,0 +1,56 @@
+From 4c86f814fbe17eb5774055d69102408bbfc1cd63 Mon Sep 17 00:00:00 2001
+From: Jens Georg <mail@jensge.org>
+Date: Sun, 9 Jul 2023 21:47:48 +0200
+Subject: [PATCH] build: Fix wrap file syntax
+
+No idea why it worked in the first place
+
+Fixes #26
+
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gupnp-tools/-/commit/1372f9ebe45180d58cefb6c0475fafe77de37ef2]
+---
+ subprojects/gssdp-1.2.wrap | 4 ++--
+ subprojects/gupnp-1.2.wrap | 4 ++--
+ subprojects/gupnp-av-1.0.wrap | 4 ++--
+ 3 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/subprojects/gssdp-1.2.wrap b/subprojects/gssdp-1.2.wrap
+index 34d9b0b..f78d2fa 100644
+--- a/subprojects/gssdp-1.2.wrap
++++ b/subprojects/gssdp-1.2.wrap
+@@ -3,6 +3,6 @@ url = https://gitlab.gnome.org/GNOME/gssdp.git
+ revision = master
+ depth = 1
+
+-[provides]
+-dependency_name = gssdp-1.2
++[provide]
++dependency_names = gssdp-1.2
+
+diff --git a/subprojects/gupnp-1.2.wrap b/subprojects/gupnp-1.2.wrap
+index c345910..f92c055 100644
+--- a/subprojects/gupnp-1.2.wrap
++++ b/subprojects/gupnp-1.2.wrap
+@@ -3,6 +3,6 @@ url = https://gitlab.gnome.org/GNOME/gupnp.git
+ revision = master
+ depth = 1
+
+-[provides]
+-dependency_name = gupnp-1.2
++[provide]
++dependency_names = gupnp-1.2
+
+diff --git a/subprojects/gupnp-av-1.0.wrap b/subprojects/gupnp-av-1.0.wrap
+index 967e6d3..8c3b490 100644
+--- a/subprojects/gupnp-av-1.0.wrap
++++ b/subprojects/gupnp-av-1.0.wrap
+@@ -3,6 +3,6 @@ url = https://gitlab.gnome.org/GNOME/gupnp-av.git
+ revision = master
+ depth = 1
+
+-[provides]
+-dependency_name = gupnp-av-1.0
++[provide]
++dependency_names = gupnp-av-1.0
+
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.2.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.2.bb
index 20aced8329..9731ede274 100644
--- a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.2.bb
+++ b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.2.bb
@@ -9,7 +9,9 @@ inherit features_check meson pkgconfig gettext gtk-icon-cache
REQUIRED_DISTRO_FEATURES = "x11"
-SRC_URI = "http://download.gnome.org/sources/${BPN}/0.10/${BPN}-${PV}.tar.xz"
+SRC_URI = "http://download.gnome.org/sources/${BPN}/0.10/${BPN}-${PV}.tar.xz \
+ file://0001-build-Fix-wrap-file-syntax.patch \
+"
SRC_URI[sha256sum] = "6de49ef4b375b8a164f74b766168b1184e0d28196b6b07a4f5341f08dfd85d6c"
RRECOMMENDS:${PN} = "adwaita-icon-theme"
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp/0001-build-properly-spell-provide-in-.wrap-files.patch b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp/0001-build-properly-spell-provide-in-.wrap-files.patch
new file mode 100644
index 0000000000..66f07094c5
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp/0001-build-properly-spell-provide-in-.wrap-files.patch
@@ -0,0 +1,25 @@
+From 7a4515a356a3d5eb2af1f602c77a42a544e71efa Mon Sep 17 00:00:00 2001
+From: Jan Beich <jbeich@FreeBSD.org>
+Date: Sun, 9 Jul 2023 03:30:47 +0000
+Subject: [PATCH] build: properly spell [provide] in *.wrap files
+
+meson.build:1:0: ERROR: Unexpected "[provides]" section, did you mean "[provide]"?
+
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gupnp/-/commit/884639bd29323cbb8fbd36bc69d08097a2ae2cd1]
+---
+ subprojects/gssdp-1.2.wrap | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/subprojects/gssdp-1.2.wrap b/subprojects/gssdp-1.2.wrap
+index 469c75d..466b83b 100644
+--- a/subprojects/gssdp-1.2.wrap
++++ b/subprojects/gssdp-1.2.wrap
+@@ -3,6 +3,6 @@ url = https://gitlab.gnome.org/GNOME/gssdp.git
+ revision = gssdp-1.4
+ depth = 1
+
+-[provides]
++[provide]
+ dependency_name = gssdp-1.2
+
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb
index c21e7a05bf..efeb66f28f 100644
--- a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb
+++ b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb
@@ -9,6 +9,7 @@ inherit meson pkgconfig vala gobject-introspection
SRC_URI = "${GNOME_MIRROR}/${BPN}/1.4/${BPN}-${PV}.tar.xz \
file://0001-all-Drop-xmlRecoverMemory.patch \
+ file://0001-build-properly-spell-provide-in-.wrap-files.patch \
"
SRC_URI[sha256sum] = "899196b5e66f03b8e25f046a7a658cd2a6851becb83f2d55345ab3281655dc0c"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb
index c520653761..fddfd720da 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb
@@ -44,7 +44,7 @@ RDEPENDS:packagegroup-meta-multimedia = "\
bigbuckbunny-720p \
tearsofsteel-1080p \
pipewire \
- ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "projucer", "", d)} \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", bb.utils.contains("DISTRO_FEATURES", "x11", "projucer", "", d), "", d)} \
libcamera \
vorbis-tools \
libopenmpt \
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.79.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.80.bb
index 1304c0ac85..a134820daa 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.79.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.80.bb
@@ -13,7 +13,7 @@ LIC_FILES_CHKSUM = " \
DEPENDS = "dbus ncurses"
-SRCREV = "b5c3f217926f9066a1afbee7eb20967dd6896c56"
+SRCREV = "35cca08d2bef14248ac25ff2a1efb0bf274d0a6f"
SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https"
S = "${WORKDIR}/git"
@@ -35,7 +35,6 @@ SYSTEMD_PACKAGES = "${PN}"
# a specially prepared kernel, and is currently unavailable
# in Yocto.
#
-# Vulkan support is currently (as of version 0.3.44) not functional.
#
# manpage generation requires xmltoman, which is not available.
#
@@ -137,7 +136,7 @@ PACKAGECONFIG[udev] = "-Dudev=enabled,-Dudev=disabled,udev"
PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev"
PACKAGECONFIG[volume] = "-Dvolume=enabled,-Dvolume=disabled"
PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-headers vulkan-loader"
-PACKAGECONFIG[webrtc-echo-cancelling] = "-Decho-cancel-webrtc=enabled,-Decho-cancel-webrtc=disabled,webrtc-audio-processing"
+PACKAGECONFIG[webrtc-echo-cancelling] = "-Decho-cancel-webrtc=enabled,-Decho-cancel-webrtc=disabled,webrtc-audio-processing-1"
PACKAGECONFIG[wireplumber] = ",,,wireplumber,,media-session"
PACKAGESPLITFUNCS:prepend = " split_dynamic_packages "
@@ -265,6 +264,7 @@ FILES:${PN} = " \
${systemd_user_unitdir} \
${bindir}/pipewire \
${bindir}/pipewire-avb \
+ ${bindir}/pipewire-vulkan \
"
RRECOMMENDS:${PN}:class-target += " \
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0001-po-Fix-invalid-.oc-translation-format-string.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0001-po-Fix-invalid-.oc-translation-format-string.patch
new file mode 100644
index 0000000000..866ed03294
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0001-po-Fix-invalid-.oc-translation-format-string.patch
@@ -0,0 +1,44 @@
+From fc4bd86bea0b81da0b6fa5be0a352aecc8fa690a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 9 Sep 2023 20:13:55 -0700
+Subject: [PATCH] po: Fix invalid .oc translation format string
+
+gettext can validate format strings now [1] with 0.22 and newer release
+
+[1] https://savannah.gnu.org/bugs/index.php?64332#comment1
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ po/oc.po | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/po/oc.po b/po/oc.po
+index 667696cfe7..ddb1677d8a 100644
+--- a/po/oc.po
++++ b/po/oc.po
+@@ -5298,18 +5298,18 @@ msgstr "Comanda+"
+ #: src/misc/update.c:482
+ #, c-format
+ msgid "%.1f GiB"
+-msgstr "%.lf Gio"
++msgstr "%.1f Gio"
+
+ #: src/misc/update.c:484
+ #, c-format
+ msgid "%.1f MiB"
+-msgstr "%.lf Mio"
++msgstr "%.1f Mio"
+
+ #: src/misc/update.c:486 modules/gui/macosx/VLCPlaylistInfo.m:138
+ #: modules/gui/macosx/VLCPlaylistInfo.m:140
+ #, c-format
+ msgid "%.1f KiB"
+-msgstr "%.lf Kio"
++msgstr "%.1f Kio"
+
+ #: src/misc/update.c:488
+ #, c-format
+--
+2.42.0
+
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.18.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.18.bb
index 92f05544dd..12b32879a7 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.18.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.18.bb
@@ -23,6 +23,7 @@ SRC_URI = "git://github.com/videolan/vlc.git;protocol=https;branch=3.0.x \
file://0004-Use-packageconfig-to-detect-mmal-support.patch \
file://0005-ioctl-does-not-have-same-signature-between-glibc-and.patch \
file://0006-configure-Disable-incompatible-function-pointer-type.patch \
+ file://0001-po-Fix-invalid-.oc-translation-format-string.patch \
"
SRCREV = "e9eceaed4d838dbd84638bfb2e4bdd08294163b1"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-Fix-return-type-errors.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-Fix-return-type-errors.patch
new file mode 100644
index 0000000000..37b4db6894
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-Fix-return-type-errors.patch
@@ -0,0 +1,95 @@
+From b6ad4b7086a6487b36d626248322f4c9d5bf420a Mon Sep 17 00:00:00 2001
+From: "thomas.georgec" <thomas.georgec@lge.com>
+Date: Sun, 12 Mar 2023 14:28:50 +0530
+Subject: [PATCH] Fix return-type errors
+
+Fix "control reaches end of non-void function" in code when -Werror=return-type
+is used.
+
+ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc: In function 'float webrtc::{anonymous}::GetLevel(const webrtc::VadLevelAnalyzer::Result&, LevelEstimatorType)':
+ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc:45:1: error: control reaches end of non-void function [-Werror=return-type]
+ 45 | }
+ | ^
+ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/audio_processing_impl.cc: In function 'webrtc::GainControl::Mode webrtc::{anonymous}::Agc1ConfigModeToInterfaceMode(webrtc::AudioProcessing::Config::GainController1::Mode)':
+ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/audio_processing_impl.cc:117:1: error: control reaches end of non-void function [-Werror=return-type]
+ 117 | }
+ | ^
+ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/audio_processing_impl.cc: In lambda function:
+ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/audio_processing_impl.cc:1853:13: error: control reaches end of non-void function -Werror=return-type]
+ 1853 | default:
+ | ^~~~~~~
+
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+---
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/merge_requests/28]
+
+ .../audio_processing/agc2/adaptive_mode_level_estimator.cc | 2 ++
+ webrtc/modules/audio_processing/audio_processing_impl.cc | 3 +++
+ webrtc/modules/audio_processing/include/audio_processing.cc | 6 ++++++
+ 3 files changed, 11 insertions(+)
+
+diff --git a/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc b/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc
+index f09f63b..9cdf6ca 100644
+--- a/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc
++++ b/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc
+@@ -42,6 +42,8 @@ float GetLevel(const VadLevelAnalyzer::Result& vad_level,
+ return vad_level.peak_dbfs;
+ break;
+ }
++ RTC_NOTREACHED();
++ __builtin_unreachable ();
+ }
+
+ } // namespace
+diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc
+index 67208df..3b8262a 100644
+--- a/webrtc/modules/audio_processing/audio_processing_impl.cc
++++ b/webrtc/modules/audio_processing/audio_processing_impl.cc
+@@ -114,6 +114,8 @@ GainControl::Mode Agc1ConfigModeToInterfaceMode(
+ case Agc1Config::kFixedDigital:
+ return GainControl::kFixedDigital;
+ }
++ RTC_NOTREACHED();
++ __builtin_unreachable ();
+ }
+
+ // Maximum lengths that frame of samples being passed from the render side to
+@@ -1852,6 +1854,7 @@ void AudioProcessingImpl::InitializeNoiseSuppressor() {
+ return NsConfig::SuppressionLevel::k21dB;
+ default:
+ RTC_NOTREACHED();
++ __builtin_unreachable ();
+ }
+ };
+
+diff --git a/webrtc/modules/audio_processing/include/audio_processing.cc b/webrtc/modules/audio_processing/include/audio_processing.cc
+index 8854415..cc8752b 100644
+--- a/webrtc/modules/audio_processing/include/audio_processing.cc
++++ b/webrtc/modules/audio_processing/include/audio_processing.cc
+@@ -28,6 +28,8 @@ std::string NoiseSuppressionLevelToString(
+ case AudioProcessing::Config::NoiseSuppression::Level::kVeryHigh:
+ return "VeryHigh";
+ }
++ RTC_NOTREACHED();
++ __builtin_unreachable ();
+ }
+
+ std::string GainController1ModeToString(
+@@ -40,6 +42,8 @@ std::string GainController1ModeToString(
+ case AudioProcessing::Config::GainController1::Mode::kFixedDigital:
+ return "FixedDigital";
+ }
++ RTC_NOTREACHED();
++ __builtin_unreachable ();
+ }
+
+ std::string GainController2LevelEstimatorToString(
+@@ -50,6 +54,8 @@ std::string GainController2LevelEstimatorToString(
+ case AudioProcessing::Config::GainController2::LevelEstimator::kPeak:
+ return "Peak";
+ }
++ RTC_NOTREACHED();
++ __builtin_unreachable ();
+ }
+
+ int GetDefaultMaxInternalRate() {
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-add-missing-header-for-musl.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-add-missing-header-for-musl.patch
new file mode 100644
index 0000000000..ef1d454663
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-add-missing-header-for-musl.patch
@@ -0,0 +1,33 @@
+From 141fb5cbdaa6a883a61b5bf390c849159fc77605 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Thu, 14 Sep 2023 16:12:32 +0200
+Subject: [PATCH] file_wrapper.h: add missing include for musl
+
+this fixes:
+| In file included from ../webrtc-audio-processing-1.3/webrtc/rtc_base/system/file_wrapper.cc:11:
+| ../webrtc-audio-processing-1.3/webrtc/rtc_base/system/file_wrapper.h:86:21: error: 'int64_t' has not been declared
+
+if built with musl libc
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/merge_requests/37]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ webrtc/rtc_base/system/file_wrapper.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/webrtc/rtc_base/system/file_wrapper.h b/webrtc/rtc_base/system/file_wrapper.h
+index 42c463c..c34d366 100644
+--- a/webrtc/rtc_base/system/file_wrapper.h
++++ b/webrtc/rtc_base/system/file_wrapper.h
+@@ -13,6 +13,7 @@
+
+ #include <stddef.h>
+ #include <stdio.h>
++#include <cstdint>
+
+ #include <string>
+
+--
+2.41.0
+
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1_1.3.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1_1.3.bb
new file mode 100644
index 0000000000..c56ca53f89
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1_1.3.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Audio processing bits of the WebRTC reference implementation"
+HOMEPAGE = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing/"
+SECTION = "audio"
+
+DEPENDS = "abseil-cpp"
+DEPENDS:append:libc-musl = " libexecinfo"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=da08a38a32a340c5d91e13ee86a118f2"
+
+SRC_URI = " \
+ http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/webrtc-audio-processing-${PV}.tar.xz \
+ file://0001-add-missing-header-for-musl.patch \
+ file://0001-Fix-return-type-errors.patch \
+"
+SRC_URI[sha256sum] = "2365e93e778d7b61b5d6e02d21c47d97222e9c7deff9e1d0838ad6ec2e86f1b9"
+S = "${WORKDIR}/webrtc-audio-processing-${PV}"
+
+LDFLAGS:append:libc-musl = " -lexecinfo"
+
+inherit meson pkgconfig
diff --git a/meta-openembedded/meta-networking/conf/layer.conf b/meta-openembedded/meta-networking/conf/layer.conf
index 12ce08c8a1..2343179a62 100644
--- a/meta-openembedded/meta-networking/conf/layer.conf
+++ b/meta-openembedded/meta-networking/conf/layer.conf
@@ -22,6 +22,8 @@ LICENSE_PATH += "${LAYERDIR}/licenses"
SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
wireguard-tools->wireguard-module \
+ mdio-tools->mdio-netlink \
+ ot-br-posix->ipset \
"
BBFILES_DYNAMIC += " \
meta-python:${LAYERDIR}/dynamic-layers/meta-python/recipes-*/*/*.bb \
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/2894.patch b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/2894.patch
new file mode 100644
index 0000000000..7374cbd26f
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/2894.patch
@@ -0,0 +1,25 @@
+From: Joachim Zobel <jz-2017@heute-morgen.de>
+Date: Wed, 13 Sep 2023 09:55:34 +0200
+Subject: [PATCH] Link correctly with shared websockets library if needed see:
+ https://github.com/eclipse/mosquitto/pull/2751
+
+Patch contributed by Joachim Zobel <jz-2017@heute-morgen.de> and Daniel Engberg <daniel.engberg.lists@pyret.net>
+---
+Upstream-Status: Pending
+
+ src/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 9380a04..dce8313 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -200,7 +200,7 @@ if (WITH_WEBSOCKETS)
+ link_directories(${mosquitto_SOURCE_DIR})
+ endif (WIN32)
+ else (STATIC_WEBSOCKETS)
+- set (MOSQ_LIBS ${MOSQ_LIBS} websockets)
++ set (MOSQ_LIBS ${MOSQ_LIBS} websockets_shared)
+ endif (STATIC_WEBSOCKETS)
+ endif (WITH_WEBSOCKETS)
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/2895.patch b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/2895.patch
new file mode 100644
index 0000000000..853f881754
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/2895.patch
@@ -0,0 +1,27 @@
+From: Joachim Zobel <jz-2017@heute-morgen.de>
+Date: Wed, 13 Sep 2023 10:05:43 +0200
+Subject: [PATCH] Mosquitto now waits for network-online when starting
+ (Closes: #1036450)
+
+See: https://github.com/eclipse/mosquitto/issues/2878
+---
+Upstream-Status: Pending
+
+ service/systemd/mosquitto.service.simple | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/service/systemd/mosquitto.service.simple b/service/systemd/mosquitto.service.simple
+index 15ee0d6..c2a330b 100644
+--- a/service/systemd/mosquitto.service.simple
++++ b/service/systemd/mosquitto.service.simple
+@@ -1,8 +1,8 @@
+ [Unit]
+ Description=Mosquitto MQTT Broker
+ Documentation=man:mosquitto.conf(5) man:mosquitto(8)
+-After=network.target
+-Wants=network.target
++After=network-online.target
++Wants=network-online.target
+
+ [Service]
+ ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init
index 9d5963c418..d0da219d6d 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init
@@ -1,18 +1,18 @@
-#! /bin/sh
+#!/bin/sh
# Based on the Debian initscript for mosquitto
### BEGIN INIT INFO
-# Provides: mosquitto
-# Required-Start: $remote_fs $syslog
-# Required-Stop: $remote_fs $syslog
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: mosquitto MQTT message broker
-# Description:
-# This is a message broker that supports version 3.1/3.1.1 of the MQ Telemetry
+# Provides: mosquitto
+# Required-Start: $remote_fs $syslog
+# Required-Stop: $remote_fs $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: mosquitto MQTT 3.1/3.1.1 message broker
+# Description:
+# This is a message broker that supports version 3.1 of the MQ Telemetry
# Transport (MQTT) protocol.
-#
+#
# MQTT provides a method of carrying out messaging using a publish/subscribe
# model. It is lightweight, both in terms of bandwidth usage and ease of
# implementation. This makes it particularly useful at the edge of the network
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.15.bb b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.18.bb
index d06dd2d9ca..0c9ccc810d 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.15.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.18.bb
@@ -17,13 +17,15 @@ DEPENDS = "uthash cjson"
SRC_URI = "http://mosquitto.org/files/source/mosquitto-${PV}.tar.gz \
file://mosquitto.init \
file://1571.patch \
+ file://2894.patch \
+ file://2895.patch \
"
-SRC_URI[sha256sum] = "4735b1d32e3f91c7a8896741d88a3022e89730a1ee897946decfa0df27039ac6"
+SRC_URI[sha256sum] = "d665fe7d0032881b1371a47f34169ee4edab67903b2cd2b4c083822823f4448a"
inherit systemd update-rc.d useradd cmake pkgconfig
-PACKAGECONFIG ??= "ssl dlt websockets \
+PACKAGECONFIG ??= "ssl websockets \
${@bb.utils.filter('DISTRO_FEATURES','systemd', d)} \
"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0001-fix-ppp-2.5.0-build.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0001-fix-ppp-2.5.0-build.patch
index 0a568fa23c..2e84a334f0 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0001-fix-ppp-2.5.0-build.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0001-fix-ppp-2.5.0-build.patch
@@ -7,7 +7,7 @@ MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Upstream-Status: Accepted
+Upstream-Status: Backport
Signed-off-by: Eivind Næss <eivnaes@yahoo.com>
---
Makefile.am | 5 +-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0002-fix-ppp-2.5.0-build.patch b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0002-fix-ppp-2.5.0-build.patch
index 798a57b0da..6ac8f2b643 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0002-fix-ppp-2.5.0-build.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0002-fix-ppp-2.5.0-build.patch
@@ -6,7 +6,7 @@ MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Upstream-Status: Accepted
+Upstream-Status: Backport
Signed-off-by: Eivind Næss <eivnaes@yahoo.com>
---
configure.ac | 6 +-----
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd/0001-rtnl_flush-Error-on-failed-write.patch b/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd/0001-rtnl_flush-Error-on-failed-write.patch
deleted file mode 100644
index eaaf30460f..0000000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd/0001-rtnl_flush-Error-on-failed-write.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 2fa326b26dc479942367dc4283e2f87372403988 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 17 Jun 2017 09:32:04 -0700
-Subject: [PATCH] rtnl_flush: Error on failed write()
-
-Fixes
-route.c:45:2: error: ignoring return value of 'write', declared with attribute warn_unused_result [-Werror=unused-result]
-| write(fd, "-1", 2);
-| ^~~~~~~~~~~~~~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- route.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/route.c b/route.c
-index c552d1f..fc5c31e 100644
---- a/route.c
-+++ b/route.c
-@@ -42,7 +42,8 @@ static void rtnl_flush(void)
- if (fd < 0)
- return;
-
-- write(fd, "-1", 2);
-+ if (write(fd, "-1", 2) < 0 )
-+ perror("write");
- close(fd);
- }
-
---
-2.13.1
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb b/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb
index 1da18d7ca0..79e1743fdf 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb
@@ -5,11 +5,9 @@ LIC_FILES_CHKSUM = "file://main.c;endline=17;md5=86aad799085683e0a2e1c2684a20bab
DEPENDS = "libubox"
-SRC_URI = "git://git.openwrt.org/project/relayd.git;branch=master \
- file://0001-rtnl_flush-Error-on-failed-write.patch \
-"
+SRC_URI = "git://git.openwrt.org/project/relayd.git;branch=master"
-SRCREV = "f4d759be54ceb37714e9a6ca320d5b50c95e9ce9"
+SRCREV = "f646ba40489371e69f624f2dee2fc4e19ceec00e"
PV = "0.0.1+git${SRCPV}"
UPSTREAM_CHECK_COMMITS = "1"
@@ -17,3 +15,5 @@ UPSTREAM_CHECK_COMMITS = "1"
S = "${WORKDIR}/git"
inherit cmake
+
+CFLAGS:append:toolchain-clang = " -Wno-error=gnu-variable-sized-type-not-at-end"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived/0001-layer4-Change-order-of-include-files.patch b/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived/0001-layer4-Change-order-of-include-files.patch
deleted file mode 100644
index 678a208ac3..0000000000
--- a/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived/0001-layer4-Change-order-of-include-files.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From a85ca79143a87286f793957e803ee3daf03c2b57 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 6 Jul 2021 14:06:44 -0700
-Subject: [PATCH] layer4: Change order of include files
-
-curent order to include standard headers first is causing an isue with
-glibc 2.34 + kernel-headers 5.13+ where order of including netinet/in.h
-and linux/in.h matters and it does not define __UAPI_DEF_IN_IPPROTO
-before including linux/in.h and then later includes netinet/in.h which
-then means lot of definitions will be defined twice and compile would
-fail. Re-ordering the local headers to appear first solves the issue
-amicably, and I think this is right order too
-
-Upsteam-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- keepalived/core/layer4.c | 21 ++++++++++-----------
- 1 file changed, 10 insertions(+), 11 deletions(-)
-
-diff --git a/keepalived/core/layer4.c b/keepalived/core/layer4.c
-index 90cdc84..c122c29 100644
---- a/keepalived/core/layer4.c
-+++ b/keepalived/core/layer4.c
-@@ -23,6 +23,16 @@
-
- #include "config.h"
-
-+#include "layer4.h"
-+#include "logger.h"
-+#include "scheduler.h"
-+#ifdef _WITH_LVS_
-+#include "check_api.h"
-+#endif
-+#include "bitops.h"
-+#include "utils.h"
-+#include "align.h"
-+
- #include <stdio.h>
- #include <errno.h>
- #include <unistd.h>
-@@ -33,17 +43,6 @@
- #include <sys/time.h>
- #endif
- #include <linux/errqueue.h>
--#include <netinet/in.h>
--
--#include "layer4.h"
--#include "logger.h"
--#include "scheduler.h"
--#ifdef _WITH_LVS_
--#include "check_api.h"
--#endif
--#include "bitops.h"
--#include "utils.h"
--#include "align.h"
-
- // #define ICMP_DEBUG 1
-
diff --git a/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_2.2.2.bb b/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_2.2.8.bb
index 204d2fd116..dd193b12fc 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_2.2.2.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/keepalived/keepalived_2.2.8.bb
@@ -11,9 +11,8 @@ LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "http://www.keepalived.org/software/${BP}.tar.gz \
- file://0001-layer4-Change-order-of-include-files.patch \
"
-SRC_URI[sha256sum] = "103692bd5345a4ed9f4581632ea636214fdf53e45682e200aab122c4fa674ece"
+SRC_URI[sha256sum] = "85882eb62974f395d4c631be990a41a839594a7e62fbfebcb5649a937a7a1bb6"
UPSTREAM_CHECK_URI = "https://github.com/acassen/keepalived/releases"
DEPENDS = "libnfnetlink openssl"
@@ -29,6 +28,8 @@ PACKAGECONFIG[systemd] = "--with-init=systemd --with-systemdsystemunitdir=${syst
EXTRA_OEMAKE = "initdir=${sysconfdir}/init.d"
+export EXTRA_CFLAGS = "${CFLAGS}"
+
do_install:append() {
if [ -f ${D}${sysconfdir}/init.d/${BPN} ]; then
chmod 0755 ${D}${sysconfdir}/init.d/${BPN}
diff --git a/meta-openembedded/meta-networking/recipes-devtools/libcoap/libcoap_4.3.1.bb b/meta-openembedded/meta-networking/recipes-devtools/libcoap/libcoap_4.3.3.bb
index efea3fab74..6e5bc07c59 100644
--- a/meta-openembedded/meta-networking/recipes-devtools/libcoap/libcoap_4.3.1.bb
+++ b/meta-openembedded/meta-networking/recipes-devtools/libcoap/libcoap_4.3.3.bb
@@ -4,13 +4,13 @@ devices that are constrained their resources such as computing power, \
RF range, memory, bandwith, or network packet sizes."
HOMEPAGE ="https://libcoap.net/"
-LICENSE = "BSD-2-Clause & BSD-1-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0fbe4435d52b2d27a16f980ffc8ffc80"
+LICENSE = "BSD-2-Clause & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1978dbc41673ab1c20e64b287c8317bc"
SRC_URI = "git://github.com/obgm/libcoap.git;branch=main;protocol=https \
file://run-ptest \
"
-SRCREV = "02b76470ab9168947152c78ad50835bf043d7c84"
+SRCREV = "9cde7cdee171e3f47486c6e70d479fdf49f3d2d6"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/CVE-2022-39028.patch b/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/CVE-2022-39028.patch
new file mode 100644
index 0000000000..e8c3f1d84b
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/CVE-2022-39028.patch
@@ -0,0 +1,53 @@
+From 4133a888aa256312186962ab70d4a36eed5920c1 Mon Sep 17 00:00:00 2001
+From: Brooks Davis <brooks@FreeBSD.org>
+Date: Mon, 26 Sep 2022 18:56:51 +0100
+Subject: [PATCH] telnetd: fix two-byte input crash
+
+Move initialization of the slc table earlier so it doesn't get
+accessed before that happens.
+
+For details on the issue, see:
+https://pierrekim.github.io/blog/2022-08-24-2-byte-dos-freebsd-netbsd-telnetd-netkit-telnetd-inetutils-telnetd-kerberos-telnetd.html
+
+Reviewed by: cy
+Obtained from: NetBSD via cy
+Differential Revision: https://reviews.freebsd.org/D36680
+
+CVE: CVE-2022-39028
+Upstream-Status: Backport [https://cgit.freebsd.org/src/commit/?id=6914ffef4e23]
+
+(cherry picked from commit 6914ffef4e2318ca1d0ead28eafb6f06055ce0f8)
+Signed-off-by: Sanjay Chitroda <sanjay.chitroda@einfochips.com>
+
+---
+ telnetd/telnetd.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/telnetd/telnetd.c b/telnetd/telnetd.c
+index f36f505..efa0fe1 100644
+--- a/telnetd/telnetd.c
++++ b/telnetd/telnetd.c
+@@ -615,6 +615,11 @@ doit(struct sockaddr_in *who)
+ int level;
+ char user_name[256];
+
++ /*
++ * Initialize the slc mapping table.
++ */
++ get_slc_defaults();
++
+ /*
+ * Find an available pty to use.
+ */
+@@ -698,11 +703,6 @@ void telnet(int f, int p)
+ char *HE;
+ const char *IM;
+
+- /*
+- * Initialize the slc mapping table.
+- */
+- get_slc_defaults();
+-
+ /*
+ * Do some tests where it is desireable to wait for a response.
+ * Rather than doing them slowly, one at a time, do them all
diff --git a/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb b/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb
index e28eeae491..d3de038d16 100644
--- a/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb
+++ b/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb
@@ -16,6 +16,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-telnet/netkit-telnet_${PV}.orig.tar.gz
file://0001-telnetd-utility.c-Fix-buffer-overflow-in-netoprintf.patch \
file://0001-utility-Include-time.h-form-time-and-strftime-protot.patch \
file://0001-Drop-using-register-keyword.patch \
+ file://CVE-2022-39028.patch \
"
UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/n/netkit-telnet/"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/frr/frr/0001-m4-ax_python.m4-check-for-python-x.y-emded.pc-not-py.patch b/meta-openembedded/meta-networking/recipes-protocols/frr/frr/0001-m4-ax_python.m4-check-for-python-x.y-emded.pc-not-py.patch
deleted file mode 100644
index 872a67c784..0000000000
--- a/meta-openembedded/meta-networking/recipes-protocols/frr/frr/0001-m4-ax_python.m4-check-for-python-x.y-emded.pc-not-py.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From a82d704b1ec6ece47b01d12e0e067d4b62b10894 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Wed, 9 Nov 2022 20:24:45 +0100
-Subject: [PATCH] m4/ax_python.m4: check for python-x.y-emded.pc, not
- python-x.y.pc
-
-Only the embed version includes necessary linker flags to link
-with libpython.
-
-Upstream-Status: Backport
-[https://github.com/FRRouting/frr/commit/a82d704b1ec6ece47b01d12e0e067d4b62b10894]
-
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- m4/ax_python.m4 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/m4/ax_python.m4 b/m4/ax_python.m4
-index 91d12b99b..f5e603b96 100644
---- a/m4/ax_python.m4
-+++ b/m4/ax_python.m4
-@@ -206,7 +206,7 @@ AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
- AC_MSG_CHECKING([whether pkg-config python-${tryver} is available])
- unset PYTHON_CFLAGS
- unset PYTHON_LIBS
-- pkg="python-${tryver}"
-+ pkg="python-${tryver}-embed"
- pkg="${pkg%-}"
- _PKG_CONFIG([PYTHON_CFLAGS], [cflags], [${pkg}])
- _PKG_CONFIG([PYTHON_LIBS], [libs], [${pkg}])
---
-2.25.1
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/frr/frr/0001-tools-make-quiet-actually-suppress-output.patch b/meta-openembedded/meta-networking/recipes-protocols/frr/frr/0001-tools-make-quiet-actually-suppress-output.patch
new file mode 100644
index 0000000000..3e93cf3c47
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-protocols/frr/frr/0001-tools-make-quiet-actually-suppress-output.patch
@@ -0,0 +1,58 @@
+From 312d5ee1592f8c5b616d330233d1de2643f759e2 Mon Sep 17 00:00:00 2001
+From: Jonas Gorski <jonas.gorski@bisdn.de>
+Date: Thu, 14 Sep 2023 17:04:16 +0200
+Subject: [PATCH] tools: make --quiet actually suppress output
+
+When calling daemon_stop() with --quiet and e.g. the pidfile is empty,
+it won't return early since while "$fail" is set, "$2" is "--quiet", so
+the if condition isn't met and it will continue executing, resulting
+in error messages in the log:
+
+> Sep 14 14:48:33 localhost watchfrr[2085]: [YFT0P-5Q5YX] Forked background command [pid 2086]: /usr/lib/frr/watchfrr.sh restart all
+> Sep 14 14:48:33 localhost frrinit.sh[2075]: /usr/lib/frr/frrcommon.sh: line 216: kill: `': not a pid or valid job spec
+> Sep 14 14:48:33 localhost frrinit.sh[2075]: /usr/lib/frr/frrcommon.sh: line 216: kill: `': not a pid or valid job spec
+> Sep 14 14:48:33 localhost frrinit.sh[2075]: /usr/lib/frr/frrcommon.sh: line 216: kill: `': not a pid or valid job spec
+
+Fix this by moving the --quiet check into the block to log_failure_msg(),
+and also add the check to all other invocations of log_*_msg() to make
+--quiet properly suppress output.
+
+Fixes: 19a99d89f088 ("tools: suppress unuseful warnings during restarting frr")
+Signed-off-by: Jonas Gorski <jonas.gorski@bisdn.de>
+Upstream-Status: Backport [https://github.com/FRRouting/frr/commit/312d5ee1592f8c5b616d330233d1de2643f759e2]
+---
+ tools/frrcommon.sh.in | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/tools/frrcommon.sh.in b/tools/frrcommon.sh.in
+index f1f70119097e..00b63a78e2bc 100755
+--- a/tools/frrcommon.sh.in
++++ b/tools/frrcommon.sh.in
+@@ -207,8 +207,8 @@ daemon_stop() {
+ [ -z "$fail" -a -z "$pid" ] && fail="pid file is empty"
+ [ -n "$fail" ] || kill -0 "$pid" 2>/dev/null || fail="pid $pid not running"
+
+- if [ -n "$fail" ] && [ "$2" != "--quiet" ]; then
+- log_failure_msg "Cannot stop $dmninst: $fail"
++ if [ -n "$fail" ]; then
++ [ "$2" = "--quiet" ] || log_failure_msg "Cannot stop $dmninst: $fail"
+ return 1
+ fi
+
+@@ -220,11 +220,11 @@ daemon_stop() {
+ [ $(( cnt -= 1 )) -gt 0 ] || break
+ done
+ if kill -0 "$pid" 2>/dev/null; then
+- log_failure_msg "Failed to stop $dmninst, pid $pid still running"
++ [ "$2" = "--quiet" ] || log_failure_msg "Failed to stop $dmninst, pid $pid still running"
+ still_running=1
+ return 1
+ else
+- log_success_msg "Stopped $dmninst"
++ [ "$2" = "--quiet" ] || log_success_msg "Stopped $dmninst"
+ rm -f "$pidfile"
+ return 0
+ fi
+--
+2.42.0
+
diff --git a/meta-openembedded/meta-networking/recipes-protocols/frr/frr/CVE-2023-3748.patch b/meta-openembedded/meta-networking/recipes-protocols/frr/frr/CVE-2023-3748.patch
deleted file mode 100644
index 4a8a7e1afd..0000000000
--- a/meta-openembedded/meta-networking/recipes-protocols/frr/frr/CVE-2023-3748.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From e61593f2ded104c4c7f01eb93e2b404e93e0c560 Mon Sep 17 00:00:00 2001
-From: harryreps <harryreps@gmail.com>
-Date: Fri, 3 Mar 2023 23:17:14 +0000
-Subject: [PATCH] babeld: fix #11808 to avoid infinite loops
-
-Replacing continue in loops to goto done so that index of packet buffer
-increases.
-
-Signed-off-by: harryreps <harryreps@gmail.com>
-
-CVE: CVE-2023-3748
-
-Upstream-Status: Backport
-[https://github.com/FRRouting/frr/commit/ae1e0e1fed77716bc06f181ad68c4433fb5523d0]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- babeld/message.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/babeld/message.c b/babeld/message.c
-index 7d45d91bf..2bf233796 100644
---- a/babeld/message.c
-+++ b/babeld/message.c
-@@ -439,7 +439,7 @@ parse_packet(const unsigned char *from, struct interface *ifp,
- debugf(BABEL_DEBUG_COMMON,
- "Received Hello from %s on %s that does not have all 0's in the unused section of flags, ignoring",
- format_address(from), ifp->name);
-- continue;
-+ goto done;
- }
-
- /*
-@@ -451,7 +451,7 @@ parse_packet(const unsigned char *from, struct interface *ifp,
- debugf(BABEL_DEBUG_COMMON,
- "Received Unicast Hello from %s on %s that FRR is not prepared to understand yet",
- format_address(from), ifp->name);
-- continue;
-+ goto done;
- }
-
- DO_NTOHS(seqno, message + 4);
-@@ -469,7 +469,7 @@ parse_packet(const unsigned char *from, struct interface *ifp,
- debugf(BABEL_DEBUG_COMMON,
- "Received hello from %s on %s should be ignored as that this version of FRR does not know how to properly handle interval == 0",
- format_address(from), ifp->name);
-- continue;
-+ goto done;
- }
-
- changed = update_neighbour(neigh, seqno, interval);
---
-2.25.1
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/frr/frr/CVE-2023-41358.patch b/meta-openembedded/meta-networking/recipes-protocols/frr/frr/CVE-2023-41358.patch
deleted file mode 100644
index 59633ef699..0000000000
--- a/meta-openembedded/meta-networking/recipes-protocols/frr/frr/CVE-2023-41358.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-From 9efd9a47db4f13ebf88c2ffe14301d7441bcb40d Mon Sep 17 00:00:00 2001
-From: Donatas Abraitis <donatas@opensourcerouting.org>
-Date: Tue, 22 Aug 2023 22:52:04 +0300
-Subject: [PATCH 1/2] bgpd: Do not process NLRIs if the attribute length is
- zero
-
-```
-3 0x00007f423aa42476 in __GI_raise (sig=sig@entry=11) at ../sysdeps/posix/raise.c:26
-4 0x00007f423aef9740 in core_handler (signo=11, siginfo=0x7fffc414deb0, context=<optimized out>) at lib/sigevent.c:246
-5 <signal handler called>
-6 0x0000564dea2fc71e in route_set_aspath_prepend (rule=0x564debd66d50, prefix=0x7fffc414ea30, object=0x7fffc414e400)
- at bgpd/bgp_routemap.c:2258
-7 0x00007f423aeec7e0 in route_map_apply_ext (map=<optimized out>, prefix=prefix@entry=0x7fffc414ea30,
- match_object=match_object@entry=0x7fffc414e400, set_object=set_object@entry=0x7fffc414e400, pref=pref@entry=0x0) at lib/routemap.c:2690
-8 0x0000564dea2d277e in bgp_input_modifier (peer=peer@entry=0x7f4238f59010, p=p@entry=0x7fffc414ea30, attr=attr@entry=0x7fffc414e770,
- afi=afi@entry=AFI_IP, safi=safi@entry=SAFI_UNICAST, rmap_name=rmap_name@entry=0x0, label=0x0, num_labels=0, dest=0x564debdd5130)
- at bgpd/bgp_route.c:1772
-9 0x0000564dea2df762 in bgp_update (peer=peer@entry=0x7f4238f59010, p=p@entry=0x7fffc414ea30, addpath_id=addpath_id@entry=0,
- attr=0x7fffc414eb50, afi=afi@entry=AFI_IP, safi=<optimized out>, safi@entry=SAFI_UNICAST, type=9, sub_type=0, prd=0x0, label=0x0,
- num_labels=0, soft_reconfig=0, evpn=0x0) at bgpd/bgp_route.c:4374
-10 0x0000564dea2e2047 in bgp_nlri_parse_ip (peer=0x7f4238f59010, attr=attr@entry=0x7fffc414eb50, packet=0x7fffc414eaf0)
- at bgpd/bgp_route.c:6249
-11 0x0000564dea2c5a58 in bgp_nlri_parse (peer=peer@entry=0x7f4238f59010, attr=attr@entry=0x7fffc414eb50,
- packet=packet@entry=0x7fffc414eaf0, mp_withdraw=mp_withdraw@entry=false) at bgpd/bgp_packet.c:339
-12 0x0000564dea2c5d66 in bgp_update_receive (peer=peer@entry=0x7f4238f59010, size=size@entry=109) at bgpd/bgp_packet.c:2024
-13 0x0000564dea2c901d in bgp_process_packet (thread=<optimized out>) at bgpd/bgp_packet.c:2933
-14 0x00007f423af0bf71 in event_call (thread=thread@entry=0x7fffc414ee40) at lib/event.c:1995
-15 0x00007f423aebb198 in frr_run (master=0x564deb73c670) at lib/libfrr.c:1213
-16 0x0000564dea261b83 in main (argc=<optimized out>, argv=<optimized out>) at bgpd/bgp_main.c:505
-```
-
-With the configuration:
-
-```
-frr version 9.1-dev-MyOwnFRRVersion
-frr defaults traditional
-hostname ip-172-31-13-140
-log file /tmp/debug.log
-log syslog
-service integrated-vtysh-config
-!
-debug bgp keepalives
-debug bgp neighbor-events
-debug bgp updates in
-debug bgp updates out
-!
-router bgp 100
- bgp router-id 9.9.9.9
- no bgp ebgp-requires-policy
- bgp bestpath aigp
- neighbor 172.31.2.47 remote-as 200
- !
- address-family ipv4 unicast
- neighbor 172.31.2.47 default-originate
- neighbor 172.31.2.47 route-map RM_IN in
- exit-address-family
-exit
-!
-route-map RM_IN permit 10
- set as-path prepend 200
-exit
-!
-```
-
-The issue is that we try to process NLRIs even if the attribute length is 0.
-
-Later bgp_update() will handle route-maps and a crash occurs because all the
-attributes are NULL, including aspath, where we dereference.
-
-According to the RFC 4271:
-
-A value of 0 indicates that neither the Network Layer
- Reachability Information field nor the Path Attribute field is
- present in this UPDATE message.
-
-But with a fuzzed UPDATE message this can be faked. I think it's reasonable
-to skip processing NLRIs if both update_len and attribute_len are 0.
-
-Reported-by: Iggy Frankovic <iggyfran@amazon.com>
-Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
-
-Upstream-Status: Backport [https://github.com/FRRouting/frr/commit/28ccc24d38df1d51ed8a563507e5d6f6171fdd38]
-
-CVE: CVE-2023-41358
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- bgpd/bgp_packet.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c
-index ec54943f3..3c2e73c59 100644
---- a/bgpd/bgp_packet.c
-+++ b/bgpd/bgp_packet.c
-@@ -1951,7 +1951,7 @@ static int bgp_update_receive(struct peer *peer, bgp_size_t size)
- /* Network Layer Reachability Information. */
- update_len = end - stream_pnt(s);
-
-- if (update_len) {
-+ if (update_len && attribute_len) {
- /* Set NLRI portion to structure. */
- nlris[NLRI_UPDATE].afi = AFI_IP;
- nlris[NLRI_UPDATE].safi = SAFI_UNICAST;
---
-2.35.5
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/frr/frr/CVE-2023-41360.patch b/meta-openembedded/meta-networking/recipes-protocols/frr/frr/CVE-2023-41360.patch
deleted file mode 100644
index 8ee3985b42..0000000000
--- a/meta-openembedded/meta-networking/recipes-protocols/frr/frr/CVE-2023-41360.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 9ecacf2176d2bac4b90e17d49facb8712c1b467a Mon Sep 17 00:00:00 2001
-From: Donatas Abraitis <donatas@opensourcerouting.org>
-Date: Sun, 20 Aug 2023 22:15:27 +0300
-Subject: [PATCH 2/2] bgpd: Don't read the first byte of ORF header if we are
- ahead of stream
-
-Reported-by: Iggy Frankovic iggyfran@amazon.com
-Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
-
-Upstream-Status: Backport [https://github.com/FRRouting/frr/commit/9b855a692e68e0d16467e190b466b4ecb6853702]
-
-CVE: CVE-2023-41360
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- bgpd/bgp_packet.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c
-index 3c2e73c59..f1d0e54c0 100644
---- a/bgpd/bgp_packet.c
-+++ b/bgpd/bgp_packet.c
-@@ -2375,7 +2375,8 @@ static int bgp_route_refresh_receive(struct peer *peer, bgp_size_t size)
- * and 7 bytes of ORF Address-filter entry from
- * the stream
- */
-- if (*p_pnt & ORF_COMMON_PART_REMOVE_ALL) {
-+ if (p_pnt < p_end &&
-+ *p_pnt & ORF_COMMON_PART_REMOVE_ALL) {
- if (bgp_debug_neighbor_events(peer))
- zlog_debug(
- "%pBP rcvd Remove-All pfxlist ORF request",
---
-2.35.5
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/frr/frr_8.4.4.bb b/meta-openembedded/meta-networking/recipes-protocols/frr/frr_9.0.1.bb
index 826b687806..bddc08aebb 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/frr/frr_8.4.4.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/frr/frr_9.0.1.bb
@@ -6,18 +6,15 @@ HOMEPAGE = "https://frrouting.org/"
SECTION = "net"
LICENSE = "GPL-2.0-only & LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING-LGPLv2.1;md5=4fbd65380cdd255951079008b364516c"
+LIC_FILES_CHKSUM = "file://doc/licenses/GPL-2.0;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://doc/licenses/LGPL-2.1;md5=4fbd65380cdd255951079008b364516c"
-SRC_URI = "git://github.com/FRRouting/frr.git;protocol=https;branch=stable/8.4 \
+SRC_URI = "git://github.com/FRRouting/frr.git;protocol=https;branch=stable/9.0 \
file://frr.pam \
- file://0001-m4-ax_python.m4-check-for-python-x.y-emded.pc-not-py.patch \
- file://CVE-2023-3748.patch \
- file://CVE-2023-41358.patch \
- file://CVE-2023-41360.patch \
+ file://0001-tools-make-quiet-actually-suppress-output.patch \
"
-SRCREV = "45e36c0c00a517ad1606135b18c5753e210cfc0d"
+SRCREV = "31ed3dd753d62b5d8916998bc32814007e91364b"
UPSTREAM_CHECK_GITTAGREGEX = "frr-(?P<pver>\d+(\.\d+)+)$"
@@ -28,7 +25,7 @@ S = "${WORKDIR}/git"
inherit autotools-brokensep python3native pkgconfig useradd systemd
DEPENDS:class-native = "bison-native elfutils-native"
-DEPENDS:class-target = "bison-native json-c readline c-ares libyang frr-native"
+DEPENDS:class-target = "bison-native json-c readline c-ares libyang frr-native protobuf-c-native protobuf-c"
RDEPENDS:${PN}:class-target = "iproute2 python3-core bash"
@@ -64,6 +61,9 @@ EXTRA_OECONF:class-target = "--sbindir=${libdir}/frr \
CACHED_CONFIGUREVARS += "ac_cv_path_PERL='/usr/bin/env perl'"
+# https://github.com/FRRouting/frr/issues/14469
+DEBUG_PREFIX_MAP:remove = "-fcanon-prefix-map"
+
LDFLAGS:append:mips = " -latomic"
LDFLAGS:append:mipsel = " -latomic"
LDFLAGS:append:powerpc = " -latomic"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns/0001-Handle-interface-without-ifa_addr.patch b/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns/0001-Handle-interface-without-ifa_addr.patch
new file mode 100644
index 0000000000..daee318ae4
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns/0001-Handle-interface-without-ifa_addr.patch
@@ -0,0 +1,38 @@
+From 1cc54320306e07c1fc0eed98e7fbcbb07a2f3b28 Mon Sep 17 00:00:00 2001
+From: Stefan Agner <stefan@agner.ch>
+Date: Fri, 23 Jun 2023 10:10:00 +0200
+Subject: [PATCH] Handle interface without `ifa_addr`
+
+It seems that certain interface types may have `ifa_addr` set to null.
+Handle this case gracefully.
+
+Upstream-Status: Submitted [https://github.com/apple-oss-distributions/mDNSResponder/pull/2/commits/11b410d4d683c90e693c40315997bb3e8ec90e9a]
+
+Signed-off-by: Stefan Agner <stefan@agner.ch>
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ mDNSPosix/mDNSPosix.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
+index d7f31cc4d5cf..f10301253f58 100644
+--- a/mDNSPosix/mDNSPosix.c
++++ b/mDNSPosix/mDNSPosix.c
+@@ -1895,6 +1895,7 @@ mDNSlocal void InterfaceChangeCallback(int fd, void *context)
+ continue;
+
+ if ((ifa_loop4 == NULL) &&
++ ((*ifi)->ifa_addr != NULL) &&
+ ((*ifi)->ifa_addr->sa_family == AF_INET) &&
+ ((*ifi)->ifa_flags & IFF_UP) &&
+ ((*ifi)->ifa_flags & IFF_LOOPBACK))
+@@ -1903,7 +1904,8 @@ mDNSlocal void InterfaceChangeCallback(int fd, void *context)
+ continue;
+ }
+
+- if ( (((*ifi)->ifa_addr->sa_family == AF_INET)
++ if ( ((*ifi)->ifa_addr != NULL) &&
++ (((*ifi)->ifa_addr->sa_family == AF_INET)
+ #if HAVE_IPV6
+ || ((*ifi)->ifa_addr->sa_family == AF_INET6)
+ #endif
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns/0003-mDNSShared-Drop-MacOS-specific-__block-qualifier.patch b/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns/0003-mDNSShared-Drop-MacOS-specific-__block-qualifier.patch
deleted file mode 100644
index 0ac0bb6a45..0000000000
--- a/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns/0003-mDNSShared-Drop-MacOS-specific-__block-qualifier.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 4c0954f77ba05d77192ee1519929a39fbc978321 Mon Sep 17 00:00:00 2001
-From: Alex Kiernan <alex.kiernan@gmail.com>
-Date: Mon, 5 Dec 2022 15:14:22 +0000
-Subject: [PATCH 3/6] mDNSShared: Drop MacOS specific __block qualifier
-
-Support for this extension only exists in MacOS/Clang, also it's not
-actually used here, so we can just drop it.
-
-Upstream-Status: Pending
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
----
- mDNSShared/uds_daemon.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mDNSShared/uds_daemon.c b/mDNSShared/uds_daemon.c
-index 9ae5f78542d6..8c006b71a4ea 100644
---- a/mDNSShared/uds_daemon.c
-+++ b/mDNSShared/uds_daemon.c
-@@ -2912,7 +2912,7 @@ exit:
- mDNSlocal mStatus add_domain_to_browser(request_state *info, const domainname *d)
- {
- browser_t *b, *p;
-- __block mStatus err;
-+ mStatus err;
-
- for (p = info->u.browser.browsers; p; p = p->next)
- {
---
-2.35.1
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns/0005-mDNSCore-Fix-broken-debug-parameter.patch b/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns/0005-mDNSCore-Fix-broken-debug-parameter.patch
index 39e67cdf48..4cda71bdb1 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns/0005-mDNSCore-Fix-broken-debug-parameter.patch
+++ b/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns/0005-mDNSCore-Fix-broken-debug-parameter.patch
@@ -1,28 +1,25 @@
-From 60533a8947af714cc593bae6b20d47f3a4828589 Mon Sep 17 00:00:00 2001
+From 764b6202402e9e5687ff873330e5ad6be6f69df7 Mon Sep 17 00:00:00 2001
From: Alex Kiernan <alex.kiernan@gmail.com>
Date: Mon, 5 Dec 2022 22:49:49 +0000
-Subject: [PATCH 5/6] mDNSCore: Fix broken debug parameter
+Subject: [PATCH] mDNSCore: Fix broken debug parameter
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
----
Upstream-Status: Pending
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
mDNSCore/mDNS.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mDNSCore/mDNS.c b/mDNSCore/mDNS.c
-index 66979587ee82..e0a982fa1762 100644
+index eecd7daa724e..1e843c081938 100644
--- a/mDNSCore/mDNS.c
+++ b/mDNSCore/mDNS.c
-@@ -9831,7 +9831,7 @@ mDNSlocal void mDNSCoreReceiveNoUnicastAnswers(mDNS *const m, const DNSMessage *
+@@ -10210,7 +10210,7 @@ mDNSlocal void mDNSCoreReceiveNoUnicastAnswers(mDNS *const m, const DNSMessage *
#else
const DNSServRef dnsserv = qptr->qDNSServer;
#endif
-- debugf("mDNSCoreReceiveNoUnicastAnswers making negative cache entry TTL %d for %##s (%s)", negttl, name->c, DNSTypeName(q.qtype));
+- debugf("mDNSCoreReceiveNoUnicastAnswers making negative cache entry TTL %d for %##s (%s)", negttl, currentQName, DNSTypeName(q.qtype));
+ debugf("mDNSCoreReceiveNoUnicastAnswers making negative cache entry TTL %d for %##s (%s)", negttl, currentQName->c, DNSTypeName(q.qtype));
// Create a negative record for the current name in the CNAME chain.
MakeNegativeCacheRecord(m, &m->rec.r, currentQName, currentQNameHash, q.qtype, q.qclass, negttl, mDNSInterface_Any,
dnsserv, response->h.flags);
---
-2.35.1
-
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns/0015-Add-missing-limits.h.patch b/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns/0015-Add-missing-limits.h.patch
new file mode 100644
index 0000000000..9fe721ff07
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns/0015-Add-missing-limits.h.patch
@@ -0,0 +1,23 @@
+From 9fc45a2cf3b78573a568abf538a6e6f4bd30b2d7 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Wed, 27 Sep 2023 11:45:26 +0100
+Subject: [PATCH] Add missing limits.h
+
+Upstream-Status: Pending
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ mDNSShared/PlatformCommon.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/mDNSShared/PlatformCommon.c b/mDNSShared/PlatformCommon.c
+index 9ce15468e217..c308af3e8b0e 100644
+--- a/mDNSShared/PlatformCommon.c
++++ b/mDNSShared/PlatformCommon.c
+@@ -32,6 +32,7 @@
+ #include <time.h>
+ #include <sys/time.h> // Needed for #include <sys/time.h>().
+ #include <assert.h>
++#include <limits.h>
+
+
+ #include "mDNSEmbeddedAPI.h" // Defines the interface provided to the client layer above
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_1790.80.10.bb b/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_2200.0.8.bb
index aff7954f50..8370ed50c0 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_1790.80.10.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_2200.0.8.bb
@@ -6,10 +6,9 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=31c50371921e0fb731003bbc665f29bf"
DEPENDS:append:libc-musl = " musl-nscd"
-SRC_URI = "git://github.com/apple-oss-distributions/mDNSResponder;protocol=https;branch=rel/mDNSResponder-1790 \
+SRC_URI = "git://github.com/apple-oss-distributions/mDNSResponder;protocol=https;branch=main \
file://0001-dns-sd-Include-missing-headers.patch \
file://0002-make-Set-libdns_sd.so-soname-correctly.patch \
- file://0003-mDNSShared-Drop-MacOS-specific-__block-qualifier.patch \
file://0004-make-Separate-TLS-targets-from-libraries.patch \
file://0005-mDNSCore-Fix-broken-debug-parameter.patch \
file://0006-make-Add-top-level-Makefile.patch \
@@ -23,8 +22,10 @@ SRC_URI = "git://github.com/apple-oss-distributions/mDNSResponder;protocol=https
file://0008-Handle-errors-from-socket-calls.patch \
file://0009-remove-unneeded-headers.patch \
file://mdns.service \
+ file://0015-Add-missing-limits.h.patch \
+ file://0001-Handle-interface-without-ifa_addr.patch \
"
-SRCREV = "8769ab51605e465425d33d757f602ce5905ca639"
+SRCREV = "d5029b5dff8aa59d1fc07ed796e994106ef58dee"
# We install a stub Makefile in the top directory so that the various checks
# in base.bbclass pass their tests for a Makefile, this ensures (that amongst
diff --git a/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.3.20.bb b/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.3.21.bb
index e41dd93f5d..17fbd789b6 100644
--- a/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.3.20.bb
+++ b/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.3.21.bb
@@ -12,7 +12,7 @@ SRC_URI = "http://dovecot.org/releases/2.3/dovecot-${PV}.tar.gz \
file://0001-not-check-pandoc.patch \
file://0001-m4-Check-for-libunwind-instead-of-libunwind-generic.patch \
"
-SRC_URI[sha256sum] = "caa832eb968148abdf35ee9d0f534b779fa732c0ce4a913d9ab8c3469b218552"
+SRC_URI[sha256sum] = "05b11093a71c237c2ef309ad587510721cc93bbee6828251549fc1586c36502d"
DEPENDS = "openssl xz zlib bzip2 libcap icu libtirpc bison-native"
CFLAGS += "-I${STAGING_INCDIR}/tirpc"
diff --git a/meta-openembedded/meta-networking/recipes-support/libesmtp/libesmtp/0001-Add-build-option-for-NTLM-support.patch b/meta-openembedded/meta-networking/recipes-support/libesmtp/libesmtp/0001-Add-build-option-for-NTLM-support.patch
index 64938a4820..dbdd644830 100644
--- a/meta-openembedded/meta-networking/recipes-support/libesmtp/libesmtp/0001-Add-build-option-for-NTLM-support.patch
+++ b/meta-openembedded/meta-networking/recipes-support/libesmtp/libesmtp/0001-Add-build-option-for-NTLM-support.patch
@@ -11,7 +11,7 @@ disabled by default.
Like 1.0.6, it will check openssl MD4 algorithm support as MD4 is
insecure and modern systems may drop MD4 support.
-Upstream-Status: Accepted [https://github.com/libesmtp/libESMTP/commit/1c304e7886a08fb56485e41614ff3f8685afb59d]
+Upstream-Status: Backport [https://github.com/libesmtp/libESMTP/commit/1c304e7886a08fb56485e41614ff3f8685afb59d]
Signed-off-by: Jiaqing Zhao <jiaqing.zhao@intel.com>
---
meson.build | 13 ++++++++++---
diff --git a/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec_1.2.2.bb b/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec_1.2.2a.bb
index d11ada67ee..af41d4989d 100644
--- a/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec_1.2.2.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ntpsec/ntpsec_1.2.2a.bb
@@ -17,7 +17,7 @@ SRC_URI = "https://ftp.ntpsec.org/pub/releases/ntpsec-${PV}.tar.gz \
file://0001-wscript-Add-BISONFLAGS-support.patch \
"
-SRC_URI[sha256sum] = "2f2848760b915dfe185b9217f777738b36ceeb78a7fc208b7e74e039dec22df5"
+SRC_URI[sha256sum] = "e0ce93af222a0a9860e6f5a51aadba9bb5ca601d80b2aea118a62f0a3226950e"
UPSTREAM_CHECK_URI = "ftp://ftp.ntpsec.org/pub/releases/"
diff --git a/meta-openembedded/meta-oe/conf/include/ptest-packagelists-meta-oe.inc b/meta-openembedded/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
index 06f3e16054..81094bf9a5 100644
--- a/meta-openembedded/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
+++ b/meta-openembedded/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
@@ -24,7 +24,6 @@ PTESTS_FAST_META_OE = "\
libssh \
libtinyxml2 \
libxml++-5.0 \
- libxmlb \
libyang \
lmdb \
minicoredumper \
@@ -49,6 +48,7 @@ PTESTS_SLOW_META_OE = "\
fftw \
libusb-compat \
rsyslog \
+ mariadb \
"
PTESTS_PROBLEMS_META_OE ="\
diff --git a/meta-openembedded/meta-oe/conf/layer.conf b/meta-openembedded/meta-oe/conf/layer.conf
index e5970cf251..b0e48dea72 100644
--- a/meta-openembedded/meta-oe/conf/layer.conf
+++ b/meta-openembedded/meta-oe/conf/layer.conf
@@ -85,6 +85,7 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
ttf-dejavu->fontconfig \
ttf-droid->fontconfig \
ttf-gentium->fontconfig \
+ ttf-google-fira->fontconfig \
ttf-hunkyfonts->fontconfig \
ttf-inconsolata->fontconfig \
ttf-ipa->fontconfig \
diff --git a/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/7_6.diff b/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/7_6.diff
index 8ab5386dc1..cdb29f24dc 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/7_6.diff
+++ b/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/7_6.diff
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
=== modified file 'openbox-xdgmenu.c'
--- openbox-xdgmenu.c 2011-09-03 20:13:39 +0000
+++ openbox-xdgmenu.c 2013-12-28 17:41:04 +0000
diff --git a/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/fix-menu-generation.patch b/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/fix-menu-generation.patch
index 03b357263f..3def090eb1 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/fix-menu-generation.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/fix-menu-generation.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: openbox-xdgmenu-0.3/openbox-xdgmenu.c
===================================================================
--- openbox-xdgmenu-0.3.orig/openbox-xdgmenu.c
diff --git a/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/port-gnome-menus3.patch b/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/port-gnome-menus3.patch
index 3fcc319164..6d123482e8 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/port-gnome-menus3.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/port-gnome-menus3.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: openbox-xdgmenu-0.3/openbox-xdgmenu.c
===================================================================
--- openbox-xdgmenu-0.3.orig/openbox-xdgmenu.c
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
index 0e38f7d8ec..d4c8a3d7fc 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
@@ -10,6 +10,8 @@ input.h [1]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
plugins/devinput.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Makefile.am-do-not-clobber-PYTHONPATH-from-build-env.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Makefile.am-do-not-clobber-PYTHONPATH-from-build-env.patch
index 089ed23c73..11f6485b27 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Makefile.am-do-not-clobber-PYTHONPATH-from-build-env.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Makefile.am-do-not-clobber-PYTHONPATH-from-build-env.patch
@@ -8,6 +8,8 @@ and so lirc's variable has to be named something else.
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
+Upstream-Status: Pending
+
Makefile.am | 2 +-
pylint.mak | 2 +-
tools/Makefile.am | 2 +-
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Unbolt-ubuntu-hack.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Unbolt-ubuntu-hack.patch
index e58a93b6f6..73bacc9139 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Unbolt-ubuntu-hack.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Unbolt-ubuntu-hack.patch
@@ -7,7 +7,7 @@ This bites during cross compiling where the target is different than
build host and build host might be ubuntu but that does not matter in
cross compilation case. This fails builds when usrmerge feature is used
-Upstream-Status: Inappropriates [ Cross-compile specific ]
+Upstream-Status: Inappropriate [ Cross-compile specific ]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
configure.ac | 2 +-
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/fix_build_errors.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/fix_build_errors.patch
index 41353dbbdc..ed840cd098 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/fix_build_errors.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/fix_build_errors.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff --git a/configure.ac b/configure.ac
index 58347d8..8c7fca2 100644
--- a/configure.ac
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch
index 8779c251a5..0bd7f80c26 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] don't fail if GLOB_BRACE is not defined
Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
src/util.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-build-on-32bit.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-build-on-32bit.patch
new file mode 100644
index 0000000000..4abc044151
--- /dev/null
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-build-on-32bit.patch
@@ -0,0 +1,38 @@
+From b172ebe7e709b10338c1b260310dacc15c557cff Mon Sep 17 00:00:00 2001
+From: Martin Jansa <martin.jansa@gmail.com>
+Date: Fri, 22 Sep 2023 15:37:29 +0200
+Subject: [PATCH] Fix build on 32bit
+
+* fixes:
+ src/mongo/util/net/http_client_curl.cpp: In function 'size_t mongo::{anonymous}::ReadMemoryCallback(char*, size_t, size_t, void*)':
+ src/mongo/util/net/http_client_curl.cpp:172:21: error: no matching function for call to 'min(size_t, long unsigned int)'
+ 172 | std::min(size * nitems, static_cast<unsigned long>(bufReader->remaining()));
+ | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+* reported in:
+ https://jira.mongodb.org/browse/SERVER-73007
+ but will probably get closed like:
+ mongodb/0001-Fix-type-mismatch-on-32bit-arches.patch
+ submitted in:
+ https://jira.mongodb.org/browse/SERVER-74633
+ as they don't support 32bit builds
+
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+Upstream-Status: Pending
+---
+ src/mongo/util/net/http_client_curl.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/mongo/util/net/http_client_curl.cpp b/src/mongo/util/net/http_client_curl.cpp
+index 57290d0f8ed..f251fe2a550 100644
+--- a/src/mongo/util/net/http_client_curl.cpp
++++ b/src/mongo/util/net/http_client_curl.cpp
+@@ -169,7 +169,7 @@ size_t ReadMemoryCallback(char* buffer, size_t size, size_t nitems, void* instre
+
+ if (bufReader->remaining() > 0) {
+ size_t readSize =
+- std::min(size * nitems, static_cast<unsigned long>(bufReader->remaining()));
++ std::min(size * nitems, static_cast<size_t>(bufReader->remaining()));
+ auto buf = bufReader->readBytes(readSize);
+ memcpy(buffer, buf.rawData(), readSize);
+ ret = readSize;
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
index e636adc556..500e76bc2f 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
@@ -13,6 +13,8 @@ typedef int wchar_t;
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+
+Upstream-Status: Pending
---
src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
index b8a325295d..4d84d3d15b 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
@@ -6,6 +6,8 @@ Subject: [PATCH 01/10] Tell scons to use build settings from environment
Signed-off-by: Sven Ebenfeld <sven.ebenfeld@gmail.com>
Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+
+Upstream-Status: Pending
---
SConstruct | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
index 8d82be1b57..cfbcbd9aa2 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 03/10] Use __GLIBC__ to control use of gnu_get_libc_version
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+
+Upstream-Status: Pending
---
src/mongo/util/processinfo_linux.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
index 958e09c3dc..310301d57b 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
@@ -9,6 +9,8 @@ since this function expects long long as parameter and not int64_t
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+
+Upstream-Status: Pending
---
src/mongo/util/procparser.cpp | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch
index e726933f56..ad944e4666 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 10/10] asio: Dont use experimental with clang
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+
+Upstream-Status: Pending
---
src/third_party/asio-master/asio/include/asio/detail/string_view.hpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-free_mon-Include-missing-cstdint.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-free_mon-Include-missing-cstdint.patch
index 1373d1a794..8cee14889f 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-free_mon-Include-missing-cstdint.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-free_mon-Include-missing-cstdint.patch
@@ -10,6 +10,8 @@ for uintXX_t.
[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
---
src/mongo/db/free_mon/free_mon_options.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
index 57f4168f5a..d1e662f291 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
@@ -7,6 +7,8 @@ It depends on the native arch's word size.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+
+Upstream-Status: Pending
---
src/mongo/util/stacktrace_posix.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch
index 910ef0b5f4..d2ba6eb805 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: git/SConstruct
===================================================================
--- git.orig/SConstruct
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
index 2cea9bc31f..45051e103d 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
@@ -4,6 +4,8 @@ Date: Sat, 2 Sep 2017 13:13:15 -0700
Subject: [PATCH 09/10] wiredtiger: Disable strtouq on musl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
---
src/third_party/wiredtiger/build_linux/wiredtiger_config.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch
index e4ae30776b..9259f96be8 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch
@@ -1,4 +1,3 @@
-Upstream-Status: submitted https://github.com/mongodb/mongo/pull/1296
From 362be06fc16a5ad0f9e9aa90cc763c5242e8e35c Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Sat, 9 Feb 2019 12:41:45 +0100
@@ -14,6 +13,8 @@ src/mongo/util/net/ssl_manager.cpp: In static member function 'static mongo::Sta
src/mongo/util/net/ssl_manager.cpp:575:79: error: invalid conversion from 'size_t* {aka unsigned int*}' to 'long unsigned int*' [-fpermissive]
if (mongoUnsignedAddOverflow64(tagAndLengthByteCount, derLength, outLength) ||
+Upstream-Status: Submitted [https://github.com/mongodb/mongo/pull/1296]
+
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
---
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/PTHREAD_STACK_MIN.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/PTHREAD_STACK_MIN.patch
deleted file mode 100644
index f08177d7b4..0000000000
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/PTHREAD_STACK_MIN.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-PTHREAD_STACK_MIN is no longer a compile time define in glibc 2.34+ and since
-we only care for glibc and musl where PTHREAD_STACK_MIN is always defined there
-is no need to check for constant called PTHREAD_STACK_MIN since its already defined
-this fix may not work for wider audience but for OE needs its sufficient
-
-Upstream-Status: Inappropriate [OE-only fix]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/src/third_party/boost-1.70.0/boost/thread/pthread/thread_data.hpp
-+++ b/src/third_party/boost-1.70.0/boost/thread/pthread/thread_data.hpp
-@@ -57,9 +57,7 @@ namespace boost
- #else
- std::size_t page_size = ::sysconf( _SC_PAGESIZE);
- #endif
--#if PTHREAD_STACK_MIN > 0
- if (size<PTHREAD_STACK_MIN) size=PTHREAD_STACK_MIN;
--#endif
- size = ((size+page_size-1)/page_size)*page_size;
- int res = pthread_attr_setstacksize(&val_, size);
- BOOST_VERIFY(!res && "pthread_attr_setstacksize failed");
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch
index 1a7bf0fc52..24b0ad58b6 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 05/10] Add alises for arm64 which is same as aarch64
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+
+Upstream-Status: Pending
---
SConstruct | 1 +
src/third_party/IntelRDFPMathLib20U1/SConscript | 2 +-
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb
index 21c3b10148..037d58cf17 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb
@@ -11,9 +11,9 @@ DEPENDS = "openssl libpcap zlib boost curl python3 \
inherit scons dos2unix siteinfo python3native systemd useradd
-PV = "4.4.19"
-#v4.4.18
-SRCREV = "9a996e0ad993148b9650dc402e6d3b1804ad3b8a"
+PV = "4.4.24"
+#v4.4.24
+SRCREV = "0b86b9b7b42ad9970c5f818c527dd86c0634243a"
SRC_URI = "git://github.com/mongodb/mongo.git;branch=v4.4;protocol=https \
file://0001-Tell-scons-to-use-build-settings-from-environment-va.patch \
file://0001-Use-long-long-instead-of-int64_t.patch \
@@ -29,13 +29,13 @@ SRC_URI = "git://github.com/mongodb/mongo.git;branch=v4.4;protocol=https \
file://0001-include-needed-c-header.patch \
file://disable_runtime_check.patch \
file://ppc64_ARCH_BITS.patch \
- file://PTHREAD_STACK_MIN.patch \
file://0001-add-explict-static_cast-size_t-to-maxMemoryUsageByte.patch \
file://0001-server-Adjust-the-cache-alignment-assumptions.patch \
file://0001-The-std-lib-unary-binary_function-base-classes-are-d.patch \
file://0001-free_mon-Include-missing-cstdint.patch \
file://0001-apply-msvc-workaround-for-clang-16.patch \
file://0001-Fix-type-mismatch-on-32bit-arches.patch \
+ file://0001-Fix-build-on-32bit.patch \
"
SRC_URI:append:libc-musl ="\
file://0001-Mark-one-of-strerror_r-implementation-glibc-specific.patch \
@@ -143,3 +143,5 @@ CONFFILES:${PN} = "${sysconfdir}/mongod.conf"
SYSTEMD_SERVICE:${PN} = "mongod.service"
FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
+
+RDEPENDS:${PN} += "tzdata-core"
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-Fixes-for-yocto-build.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-Fixes-for-yocto-build.patch
index dcf27d805e..1d18d47ec3 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-Fixes-for-yocto-build.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-Fixes-for-yocto-build.patch
@@ -8,6 +8,8 @@ Signed-off-by: JJ Robertson <jrobertson@snapchat.com>
Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
---
+Upstream-Status: Pending
+
system/core/adb/daemon/file_sync_service.cpp | 4 ++--
system/core/adb/daemon/framebuffer_service.h | 2 --
system/core/adb/daemon/main.cpp | 5 +++--
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0002-android-tools-modifications-to-make-it-build-in-yoct.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0002-android-tools-modifications-to-make-it-build-in-yoct.patch
index 2b95ad2b0a..e749366bb6 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0002-android-tools-modifications-to-make-it-build-in-yoct.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0002-android-tools-modifications-to-make-it-build-in-yoct.patch
@@ -13,6 +13,8 @@ Subject: [PATCH] android-tools: modifications to make it build in yocto
Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
---
+Upstream-Status: Pending
+
debian/external/boringssl/libcrypto.mk | 1 +
debian/system/core/append2simg.mk | 2 +-
debian/system/core/fastboot.mk | 2 +-
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0003-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0003-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch
index 7ea040c68a..ea934f44d8 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0003-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0003-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch
@@ -37,6 +37,8 @@ Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
---
+Upstream-Status: Pending
+
system/core/adb/client/usb_linux.cpp | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0004-adb-Fix-build-on-big-endian-systems.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0004-adb-Fix-build-on-big-endian-systems.patch
index 83fe4475c3..c82423908f 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0004-adb-Fix-build-on-big-endian-systems.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0004-adb-Fix-build-on-big-endian-systems.patch
@@ -21,6 +21,8 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
---
+Upstream-Status: Pending
+
system/core/adb/daemon/usb_ffs.cpp | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0005-adb-Allow-adbd-to-be-run-as-root.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0005-adb-Allow-adbd-to-be-run-as-root.patch
index 3fbdcd4bac..dfbdc2af66 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0005-adb-Allow-adbd-to-be-run-as-root.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0005-adb-Allow-adbd-to-be-run-as-root.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] adb: Allow adbd to be run as root
Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
---
+Upstream-Status: Pending
+
system/core/adb/daemon/main.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Add-riscv64-support.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Add-riscv64-support.patch
index 4669f89d07..9fd0fa792c 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Add-riscv64-support.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Add-riscv64-support.patch
@@ -24,6 +24,8 @@ Signed-off-by: Lifang Xia <lifang_xia@linux.alibaba.com>
Signed-off-by: Mao Han <han_mao@linux.alibaba.com>
Change-Id: Ib21ddf23cc83f332af202df7bffcaceec16063e0
---
+Upstream-Status: Pending
+
system/core/libunwindstack/Android.bp | 1 +
system/core/libunwindstack/Elf.cpp | 2 +
system/core/libunwindstack/Regs.cpp | 10 ++
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Added-missing-headers.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Added-missing-headers.patch
index c07e93660f..d827d7d3c2 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Added-missing-headers.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Added-missing-headers.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Added missing headers causing compile errors
Author: Umang Parmar <umangjparmar@gmail.com>
Forwarded: not-needed
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Nonnull.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Nonnull.patch
index 8d1408a48e..54bd52c61a 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Nonnull.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Nonnull.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Bring Clang's _Nonnull keyword to GCC
Author: Kai-Chung Yan
Forwarded: not-needed
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Vector-cast.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Vector-cast.patch
index b32d5f6f54..b2881e0213 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Vector-cast.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Vector-cast.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Fix the weird error by GCC7 that fails to match the correct parent method.
Author: Kai-Chung Yan
Forwarded: not-needed
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/add-missing-headers.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/add-missing-headers.patch
index 49d3ecefbb..681d2c6553 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/add-missing-headers.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/add-missing-headers.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Forwarded: not-needed
--- a/system/core/fs_mgr/liblp/reader.cpp
+++ b/system/core/fs_mgr/liblp/reader.cpp
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/20150704-CVE-2015-3239_dwarf_i.h.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/20150704-CVE-2015-3239_dwarf_i.h.patch
index b926eddcdf..e8e216161e 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/20150704-CVE-2015-3239_dwarf_i.h.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/20150704-CVE-2015-3239_dwarf_i.h.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Off-by-one error in the dwarf_to_unw_regnum function in include/dwarf_i.h in
libunwind 1.1 allows local users to have unspecified impact via invalid dwarf opcodes.
--- a/external/libunwind/include/dwarf_i.h
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/legacy_built-in_sync_functions.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/legacy_built-in_sync_functions.patch
index ce1d4e52eb..a04a887c68 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/legacy_built-in_sync_functions.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/legacy_built-in_sync_functions.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Replace the legacy __sync built-in functions with __atomic ones
libunwind uses the built-in __sync_* functions which are deprecated by GCC and
should be replaced by __atomic_* ones. See the official manuals [1].
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/user_pt_regs.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/user_pt_regs.patch
index 600471f126..35df944d1c 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/user_pt_regs.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/user_pt_regs.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Author: Kai-Chung Yan <seamlikok@gmail.com>
Last-Update: 2016-08-24
Description: Manual definition of struct user_pt_regs
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-attribute-issue-with-gcc.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-attribute-issue-with-gcc.patch
index e0b4275579..441031f536 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-attribute-issue-with-gcc.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-attribute-issue-with-gcc.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: remove clang-ism
Forwarded: not-needed
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-build-on-non-x86.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-build-on-non-x86.patch
index 98a5078244..b1caa60c4a 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-build-on-non-x86.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-build-on-non-x86.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: non-x86 arches do not have PAGE_SIZE
Forwarded: not-needed
--- a/system/core/base/cmsg.cpp
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-gettid-exception-declaration.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-gettid-exception-declaration.patch
index 7fd228bff6..5f24d0b4a0 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-gettid-exception-declaration.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-gettid-exception-declaration.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: get libcutils building
Forwarded: not-needed
--- a/system/core/libcutils/include/cutils/threads.h
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-standard-namespace-errors.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-standard-namespace-errors.patch
index e41a3576ae..4380308f13 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-standard-namespace-errors.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-standard-namespace-errors.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Add missing 'std::' scope identifiers.
Forwarded: not-needed
--- a/system/core/libunwindstack/include/unwindstack/DwarfMemory.h
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/hard-code-build-number.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/hard-code-build-number.patch
index 2a332eb689..4d7323bd2f 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/hard-code-build-number.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/hard-code-build-number.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: just hard code rather than deal with circular deps
Forwarded: not-needed
--- a/system/core/adb/adb.cpp
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/libusb-header-path.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/libusb-header-path.patch
index 1663aae465..122bd70e7d 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/libusb-header-path.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/libusb-header-path.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: libusb.h comes from different location
Author: Umang Parmar <umangjparmar@gmail.com>
Forwarded: not-needed
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/move-log-file-to-proper-dir.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/move-log-file-to-proper-dir.patch
index 006564b024..e8494ab433 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/move-log-file-to-proper-dir.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/move-log-file-to-proper-dir.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Update log file directory.
Author: Umang Parmar <umangjparmar@gmail.com>
Last Updated: 2018-05-17
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/simg_dump-python3.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/simg_dump-python3.patch
index e6933ef145..6664dc2aa5 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/simg_dump-python3.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/simg_dump-python3.patch
@@ -5,6 +5,8 @@ Last-Update: 2019-01-05
Origin: https://bugs.debian.org/945646
---
+Upstream-Status: Pending
+
Index: android-platform-tools/system/core/libsparse/simg_dump.py
===================================================================
--- android-platform-tools.orig/system/core/libsparse/simg_dump.py
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stdatomic.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stdatomic.patch
index ea3711dfa2..e11f3cc783 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stdatomic.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stdatomic.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Fix incompatibility between <stdatomic.h> and <atomic>
This 2 headers combined will cause errors for both GCC and Clang. This patch
makes sure only one of them is present at any time.
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stub-out-fastdeploy.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stub-out-fastdeploy.patch
index d2426a781d..d86ef230f7 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stub-out-fastdeploy.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stub-out-fastdeploy.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Defer packaging fastdeploy with adb for 29.x.x tags.
Forwarded: not-needed
--- a/system/core/adb/client/commandline.cpp
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Add-riscv64-support.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Add-riscv64-support.patch
index 4669f89d07..9fd0fa792c 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Add-riscv64-support.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Add-riscv64-support.patch
@@ -24,6 +24,8 @@ Signed-off-by: Lifang Xia <lifang_xia@linux.alibaba.com>
Signed-off-by: Mao Han <han_mao@linux.alibaba.com>
Change-Id: Ib21ddf23cc83f332af202df7bffcaceec16063e0
---
+Upstream-Status: Pending
+
system/core/libunwindstack/Android.bp | 1 +
system/core/libunwindstack/Elf.cpp | 2 +
system/core/libunwindstack/Regs.cpp | 10 ++
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Added-missing-headers.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Added-missing-headers.patch
index c07e93660f..d827d7d3c2 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Added-missing-headers.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Added-missing-headers.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Added missing headers causing compile errors
Author: Umang Parmar <umangjparmar@gmail.com>
Forwarded: not-needed
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Nonnull.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Nonnull.patch
index 8d1408a48e..54bd52c61a 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Nonnull.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Nonnull.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Bring Clang's _Nonnull keyword to GCC
Author: Kai-Chung Yan
Forwarded: not-needed
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Vector-cast.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Vector-cast.patch
index b32d5f6f54..b2881e0213 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Vector-cast.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Vector-cast.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Fix the weird error by GCC7 that fails to match the correct parent method.
Author: Kai-Chung Yan
Forwarded: not-needed
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/add-missing-headers.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/add-missing-headers.patch
index 49d3ecefbb..681d2c6553 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/add-missing-headers.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/add-missing-headers.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Forwarded: not-needed
--- a/system/core/fs_mgr/liblp/reader.cpp
+++ b/system/core/fs_mgr/liblp/reader.cpp
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-attribute-issue-with-gcc.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-attribute-issue-with-gcc.patch
index e0b4275579..441031f536 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-attribute-issue-with-gcc.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-attribute-issue-with-gcc.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: remove clang-ism
Forwarded: not-needed
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-build-on-non-x86.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-build-on-non-x86.patch
index 98a5078244..b1caa60c4a 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-build-on-non-x86.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-build-on-non-x86.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: non-x86 arches do not have PAGE_SIZE
Forwarded: not-needed
--- a/system/core/base/cmsg.cpp
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-gettid-exception-declaration.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-gettid-exception-declaration.patch
index 7fd228bff6..5f24d0b4a0 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-gettid-exception-declaration.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-gettid-exception-declaration.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: get libcutils building
Forwarded: not-needed
--- a/system/core/libcutils/include/cutils/threads.h
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-standard-namespace-errors.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-standard-namespace-errors.patch
index e41a3576ae..4380308f13 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-standard-namespace-errors.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-standard-namespace-errors.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Add missing 'std::' scope identifiers.
Forwarded: not-needed
--- a/system/core/libunwindstack/include/unwindstack/DwarfMemory.h
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/hard-code-build-number.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/hard-code-build-number.patch
index 2a332eb689..4d7323bd2f 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/hard-code-build-number.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/hard-code-build-number.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: just hard code rather than deal with circular deps
Forwarded: not-needed
--- a/system/core/adb/adb.cpp
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/libusb-header-path.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/libusb-header-path.patch
index 1663aae465..122bd70e7d 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/libusb-header-path.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/libusb-header-path.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: libusb.h comes from different location
Author: Umang Parmar <umangjparmar@gmail.com>
Forwarded: not-needed
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/move-log-file-to-proper-dir.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/move-log-file-to-proper-dir.patch
index 006564b024..e8494ab433 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/move-log-file-to-proper-dir.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/move-log-file-to-proper-dir.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Update log file directory.
Author: Umang Parmar <umangjparmar@gmail.com>
Last Updated: 2018-05-17
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/simg_dump-python3.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/simg_dump-python3.patch
index e6933ef145..6664dc2aa5 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/simg_dump-python3.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/simg_dump-python3.patch
@@ -5,6 +5,8 @@ Last-Update: 2019-01-05
Origin: https://bugs.debian.org/945646
---
+Upstream-Status: Pending
+
Index: android-platform-tools/system/core/libsparse/simg_dump.py
===================================================================
--- android-platform-tools.orig/system/core/libsparse/simg_dump.py
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stdatomic.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stdatomic.patch
index ea3711dfa2..e11f3cc783 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stdatomic.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stdatomic.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Fix incompatibility between <stdatomic.h> and <atomic>
This 2 headers combined will cause errors for both GCC and Clang. This patch
makes sure only one of them is present at any time.
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stub-out-fastdeploy.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stub-out-fastdeploy.patch
index d2426a781d..d86ef230f7 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stub-out-fastdeploy.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stub-out-fastdeploy.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Defer packaging fastdeploy with adb for 29.x.x tags.
Forwarded: not-needed
--- a/system/core/adb/client/commandline.cpp
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/throw-exception-on-unknown-os.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/throw-exception-on-unknown-os.patch
index 6b07f17bfc..70e732131f 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/throw-exception-on-unknown-os.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/throw-exception-on-unknown-os.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Turn #error into exceptions
So the library can be built on non-Linux platforms too, although can't
guarauntee its functionality regarding that piece of code.
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/throw-exception-on-unknown-os.patch b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/throw-exception-on-unknown-os.patch
index 6b07f17bfc..70e732131f 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/throw-exception-on-unknown-os.patch
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/throw-exception-on-unknown-os.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Turn #error into exceptions
So the library can be built on non-Linux platforms too, although can't
guarauntee its functionality regarding that piece of code.
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.14.bb b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.15.bb
index 13f620f633..156bb5a3e4 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.14.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.15.bb
@@ -17,7 +17,7 @@ SRC_URI = "git://github.com/esnet/iperf.git;branch=master;protocol=https \
file://0001-configure.ac-check-for-CPP-prog.patch \
"
-SRCREV = "a0be85934144bc04712a6695b14ea6e45c379e1d"
+SRCREV = "917d2f02188f6f4cdc443df7923a4bde72017d92"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-bsp/bolt/bolt_0.9.5.bb b/meta-openembedded/meta-oe/recipes-bsp/bolt/bolt_0.9.5.bb
index b6ad6337ce..583cc6378a 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/bolt/bolt_0.9.5.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/bolt/bolt_0.9.5.bb
@@ -12,6 +12,8 @@ SRCREV = "5a8a5866a847561566499847d46a97c612b4e6dd"
S = "${WORKDIR}/git"
+CVE_CHECK_SKIP_RECIPE = "${PN}"
+
inherit cmake pkgconfig meson features_check
FILES:${PN} += "${datadir}/dbus-1/* \
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.7.5.bb b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.7.6.bb
index 00053c8ee2..21b9f3f3bf 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.7.5.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.7.6.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
"
-SRCREV = "ecfc538d516cee1d2c7904a645cb74bba48b6514"
+SRCREV = "7a26bcec16453d01790b41d9d5495f40cc668bb6"
SRC_URI = "git://github.com/cminyard/gensio;protocol=https;branch=master"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.4.2.bb b/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.4.4.bb
index 455561f613..52de589dd8 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.4.2.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.4.4.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=55fdc1113306167d6ea2561404ce02f8"
DEPENDS = "glib-2.0 ncurses openssl"
SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz"
-SRC_URI[sha256sum] = "79a4765d2dfe153c440a1775b074d5d0682b96814c7cf92325b5e15ce50e26a8"
+SRC_URI[sha256sum] = "fefe9ec8c7b1475449945c934a2360ab12693454892be47a6d288c63eb107ead"
UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libnfs/libnfs_5.0.2.bb b/meta-openembedded/meta-oe/recipes-connectivity/libnfs/libnfs_5.0.2.bb
index e0df18a50c..afec2753cb 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libnfs/libnfs_5.0.2.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libnfs/libnfs_5.0.2.bb
@@ -3,10 +3,15 @@ HOMEPAGE = "https://github.com/sahlberg/libnfs"
LICENSE = "LGPL-2.1-only & BSD-2-Clause & GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=825301ba17efc9d188ee0abd4b924ada"
-SRC_URI = "git://github.com/sahlberg/libnfs.git;protocol=https;branch=master \
- file://0001-CMakeLists.txt-respect-CMAKE_INSTALL_LIBDIR-for-mult.patch \
+SRC_URI = " \
+ git://github.com/sahlberg/libnfs.git;protocol=https;branch=master \
+ file://0001-CMakeLists.txt-respect-CMAKE_INSTALL_LIBDIR-for-mult.patch \
"
SRCREV = "40348f45d6beb8a8f50b6b63414a98fc1a061b7d"
S = "${WORKDIR}/git"
inherit cmake
+
+do_install:append() {
+ rm -f ${D}${libdir}/cmake/libnfs/libnfs-config.cmake
+}
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh/0001-configure.ac-add-support-of-protobuf-4.22.x.patch b/meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh/0001-configure.ac-add-support-of-protobuf-4.22.x.patch
new file mode 100644
index 0000000000..088124391c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh/0001-configure.ac-add-support-of-protobuf-4.22.x.patch
@@ -0,0 +1,63 @@
+From d9a1a6aac5a3b270449d09ec0d2a556807ab9287 Mon Sep 17 00:00:00 2001
+From: Xiangyu Chen <xiangyu.chen@windriver.com>
+Date: Wed, 29 Mar 2023 13:53:44 +0800
+Subject: [PATCH] configure.ac: add support of protobuf 4.22.x
+
+the protobuf 4.22x is using c++14 as default, this caused the mosh cannot compile anymore and report following error:
+
+....
+/usr/include/google/protobuf/port_def.inc:200:15: error: static assertion failed: Protobuf only supports C++14 and newer.
+| 200 | static_assert(PROTOBUF_CPLUSPLUS_MIN(201402L), "Protobuf only supports C++14 and newer.");
+| | ^~~~~~~~~~~~~~~~~~~~~~
+....
+
+Upstream-Status: Pending [https://github.com/mobile-shell/mosh/pull/1266]
+
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+---
+ configure.ac | 8 ++++++++
+ src/frontend/Makefile.am | 2 +-
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index ee70c7b..5457009 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -26,6 +26,10 @@ m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
+ AS_IF([pkg-config --atleast-version 3.6.0 protobuf],
+ [AX_CXX_COMPILE_STDCXX([11])])
+
++# If current protobuf 4.22+ update the requires to C++14.
++AS_IF([pkg-config --atleast-version 4.22.0 protobuf],
++ [AX_CXX_COMPILE_STDCXX([14])])
++
+ WARNING_CXXFLAGS=""
+ PICKY_CXXFLAGS=""
+ DISTCHECK_CXXFLAGS=""
+@@ -311,6 +315,10 @@ AC_CHECK_FUNCS(m4_normalize([
+ pledge
+ ]))
+
++AS_IF([pkg-config --atleast-version 4.22.0 protobuf],
++ [PKG_CHECK_MODULES([ABSL_LOG_INTERNAL_CHECK_OP], [absl_log_internal_check_op],[],
++ [AC_MSG_ERROR([Missing abseil-cpp library.])])])
++
+ # Start by trying to find the needed tinfo parts by pkg-config
+ PKG_CHECK_MODULES([TINFO], [tinfo],
+ [AC_DEFINE([HAVE_CURSES_H], [1], [Define to 1 if <curses.h> is present])],
+diff --git a/src/frontend/Makefile.am b/src/frontend/Makefile.am
+index 1aa83fd..399ecd6 100644
+--- a/src/frontend/Makefile.am
++++ b/src/frontend/Makefile.am
+@@ -1,7 +1,7 @@
+ AM_CPPFLAGS = -I$(srcdir)/../statesync -I$(srcdir)/../terminal -I$(srcdir)/../network -I$(srcdir)/../crypto -I../protobufs -I$(srcdir)/../util $(TINFO_CFLAGS) $(protobuf_CFLAGS) $(CRYPTO_CFLAGS)
+ AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) $(MISC_CXXFLAGS) $(CODE_COVERAGE_CXXFLAGS)
+ AM_LDFLAGS = $(HARDEN_LDFLAGS) $(CODE_COVERAGE_LIBS)
+-LDADD = ../crypto/libmoshcrypto.a ../network/libmoshnetwork.a ../statesync/libmoshstatesync.a ../terminal/libmoshterminal.a ../util/libmoshutil.a ../protobufs/libmoshprotos.a -lm $(TINFO_LIBS) $(protobuf_LIBS) $(CRYPTO_LIBS)
++LDADD = ../crypto/libmoshcrypto.a ../network/libmoshnetwork.a ../statesync/libmoshstatesync.a ../terminal/libmoshterminal.a ../util/libmoshutil.a ../protobufs/libmoshprotos.a -lm $(TINFO_LIBS) $(protobuf_LIBS) $(CRYPTO_LIBS) $(ABSL_LOG_INTERNAL_CHECK_OP_LIBS)
+
+ mosh_server_LDADD = $(LDADD)
+
+--
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh_1.4.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh_1.4.0.bb
index 2869e06336..0ee050da99 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh_1.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh_1.4.0.bb
@@ -12,9 +12,12 @@ HOMEPAGE = "http://mosh.mit.edu"
LICENSE = "GPL-3.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-DEPENDS = "protobuf-native protobuf ncurses zlib libio-pty-perl openssl libutempter"
+DEPENDS = "protobuf-native protobuf ncurses zlib libio-pty-perl openssl libutempter abseil-cpp"
+
+SRC_URI = "https://mosh.org/${BP}.tar.gz \
+ file://0001-configure.ac-add-support-of-protobuf-4.22.x.patch \
+ "
-SRC_URI = "https://mosh.org/${BP}.tar.gz"
SRC_URI[sha256sum] = "872e4b134e5df29c8933dff12350785054d2fd2839b5ae6b5587b14db1465ddd"
inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-core/images/meta-oe-ptest-image.bb b/meta-openembedded/meta-oe/recipes-core/images/meta-oe-ptest-image.bb
index 951d91f821..613da02977 100644
--- a/meta-openembedded/meta-oe/recipes-core/images/meta-oe-ptest-image.bb
+++ b/meta-openembedded/meta-oe/recipes-core/images/meta-oe-ptest-image.bb
@@ -23,6 +23,7 @@ IMAGE_OVERHEAD_FACTOR = "1.0"
IMAGE_ROOTFS_EXTRA_SPACE = "324288"
# If a particular ptest needs more space, it can be customized:
#IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-<pn> = "1024288"
+IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-poco = "1024288"
# ptests need more memory than standard to avoid the OOM killer
QB_MEM = "-m 1024"
diff --git a/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
index c58047977c..639388dece 100644
--- a/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
+++ b/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
@@ -468,7 +468,6 @@ RDEPENDS:packagegroup-meta-oe-gnome ="\
pyxdg \
vte9 \
gnome-theme-adwaita \
- libxmlb \
"
RDEPENDS:packagegroup-meta-oe-graphics ="\
diff --git a/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc b/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc
index 39269d7a0f..90a5017af9 100644
--- a/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc
+++ b/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc
@@ -3,9 +3,7 @@
# from Cargo.lock
SRC_URI += " \
crate://crates.io/adler/1.0.2 \
- crate://crates.io/ahash/0.7.6 \
- crate://crates.io/aho-corasick/0.7.19 \
- crate://crates.io/aho-corasick/1.0.1 \
+ crate://crates.io/aho-corasick/1.0.4 \
crate://crates.io/android-tzdata/0.1.1 \
crate://crates.io/android_system_properties/0.1.5 \
crate://crates.io/anstream/0.3.2 \
@@ -20,6 +18,7 @@ SRC_URI += " \
crate://crates.io/binary-heap-plus/0.5.0 \
crate://crates.io/bindgen/0.63.0 \
crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/bitflags/2.3.3 \
crate://crates.io/blake2b_simd/1.0.1 \
crate://crates.io/blake3/1.4.0 \
crate://crates.io/block-buffer/0.10.3 \
@@ -30,10 +29,10 @@ SRC_URI += " \
crate://crates.io/cc/1.0.79 \
crate://crates.io/cexpr/0.6.0 \
crate://crates.io/cfg-if/1.0.0 \
- crate://crates.io/chrono/0.4.26 \
+ crate://crates.io/chrono/0.4.28 \
crate://crates.io/clang-sys/1.4.0 \
- crate://crates.io/clap/4.3.0 \
- crate://crates.io/clap_builder/4.3.0 \
+ crate://crates.io/clap/4.3.21 \
+ crate://crates.io/clap_builder/4.3.21 \
crate://crates.io/clap_complete/4.3.0 \
crate://crates.io/clap_lex/0.5.0 \
crate://crates.io/clap_mangen/0.2.9 \
@@ -46,18 +45,18 @@ SRC_URI += " \
crate://crates.io/conv/0.3.3 \
crate://crates.io/core-foundation-sys/0.8.3 \
crate://crates.io/coz/0.1.3 \
- crate://crates.io/cpp/0.5.7 \
- crate://crates.io/cpp_build/0.5.7 \
- crate://crates.io/cpp_common/0.5.7 \
- crate://crates.io/cpp_macros/0.5.7 \
+ crate://crates.io/cpp/0.5.9 \
+ crate://crates.io/cpp_build/0.5.9 \
+ crate://crates.io/cpp_common/0.5.9 \
+ crate://crates.io/cpp_macros/0.5.9 \
crate://crates.io/cpufeatures/0.2.5 \
crate://crates.io/crc32fast/1.3.2 \
crate://crates.io/crossbeam-channel/0.5.8 \
crate://crates.io/crossbeam-deque/0.8.2 \
crate://crates.io/crossbeam-epoch/0.9.14 \
crate://crates.io/crossbeam-utils/0.8.15 \
- crate://crates.io/crossterm/0.26.1 \
- crate://crates.io/crossterm_winapi/0.9.0 \
+ crate://crates.io/crossterm/0.27.0 \
+ crate://crates.io/crossterm_winapi/0.9.1 \
crate://crates.io/crunchy/0.2.2 \
crate://crates.io/crypto-common/0.1.6 \
crate://crates.io/ctrlc/3.4.0 \
@@ -76,32 +75,31 @@ SRC_URI += " \
crate://crates.io/errno/0.3.1 \
crate://crates.io/errno-dragonfly/0.1.2 \
crate://crates.io/exacl/0.10.0 \
- crate://crates.io/fastrand/1.8.0 \
+ crate://crates.io/fastrand/2.0.0 \
crate://crates.io/file_diff/1.0.0 \
- crate://crates.io/filetime/0.2.20 \
+ crate://crates.io/filetime/0.2.22 \
crate://crates.io/flate2/1.0.24 \
crate://crates.io/fnv/1.0.7 \
crate://crates.io/fs_extra/1.3.0 \
crate://crates.io/fsevent-sys/4.1.0 \
crate://crates.io/fts-sys/0.2.4 \
- crate://crates.io/fundu/1.2.0 \
- crate://crates.io/fundu-core/0.2.0 \
- crate://crates.io/futures/0.3.25 \
- crate://crates.io/futures-channel/0.3.25 \
- crate://crates.io/futures-core/0.3.25 \
- crate://crates.io/futures-executor/0.3.25 \
- crate://crates.io/futures-io/0.3.25 \
- crate://crates.io/futures-macro/0.3.25 \
- crate://crates.io/futures-sink/0.3.25 \
- crate://crates.io/futures-task/0.3.25 \
+ crate://crates.io/fundu/2.0.0 \
+ crate://crates.io/fundu-core/0.3.0 \
+ crate://crates.io/futures/0.3.28 \
+ crate://crates.io/futures-channel/0.3.28 \
+ crate://crates.io/futures-core/0.3.28 \
+ crate://crates.io/futures-executor/0.3.28 \
+ crate://crates.io/futures-io/0.3.28 \
+ crate://crates.io/futures-macro/0.3.28 \
+ crate://crates.io/futures-sink/0.3.28 \
+ crate://crates.io/futures-task/0.3.28 \
crate://crates.io/futures-timer/3.0.2 \
- crate://crates.io/futures-util/0.3.25 \
+ crate://crates.io/futures-util/0.3.28 \
crate://crates.io/gcd/2.3.0 \
crate://crates.io/generic-array/0.14.6 \
crate://crates.io/getrandom/0.2.9 \
crate://crates.io/glob/0.3.1 \
crate://crates.io/half/2.2.1 \
- crate://crates.io/hashbrown/0.12.3 \
crate://crates.io/hashbrown/0.13.2 \
crate://crates.io/hermit-abi/0.3.2 \
crate://crates.io/hex/0.4.3 \
@@ -112,12 +110,11 @@ SRC_URI += " \
crate://crates.io/indicatif/0.17.3 \
crate://crates.io/inotify/0.9.6 \
crate://crates.io/inotify-sys/0.1.5 \
- crate://crates.io/instant/0.1.12 \
crate://crates.io/io-lifetimes/1.0.11 \
- crate://crates.io/is-terminal/0.4.7 \
+ crate://crates.io/is-terminal/0.4.9 \
crate://crates.io/itertools/0.11.0 \
crate://crates.io/itoa/1.0.4 \
- crate://crates.io/js-sys/0.3.60 \
+ crate://crates.io/js-sys/0.3.64 \
crate://crates.io/keccak/0.1.4 \
crate://crates.io/kqueue/1.0.7 \
crate://crates.io/kqueue-sys/1.0.3 \
@@ -128,12 +125,13 @@ SRC_URI += " \
crate://crates.io/libm/0.2.7 \
crate://crates.io/linux-raw-sys/0.1.4 \
crate://crates.io/linux-raw-sys/0.3.8 \
+ crate://crates.io/linux-raw-sys/0.4.5 \
crate://crates.io/lock_api/0.4.9 \
crate://crates.io/log/0.4.17 \
- crate://crates.io/lscolors/0.14.0 \
+ crate://crates.io/lscolors/0.15.0 \
crate://crates.io/match_cfg/0.1.0 \
crate://crates.io/md-5/0.10.5 \
- crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/memchr/2.6.2 \
crate://crates.io/memmap2/0.7.0 \
crate://crates.io/memoffset/0.8.0 \
crate://crates.io/minimal-lexical/0.2.1 \
@@ -142,10 +140,10 @@ SRC_URI += " \
crate://crates.io/nix/0.26.2 \
crate://crates.io/nom/7.1.3 \
crate://crates.io/notify/6.0.1 \
- crate://crates.io/nu-ansi-term/0.47.0 \
- crate://crates.io/num-bigint/0.4.3 \
+ crate://crates.io/nu-ansi-term/0.49.0 \
+ crate://crates.io/num-bigint/0.4.4 \
crate://crates.io/num-integer/0.1.45 \
- crate://crates.io/num-traits/0.2.15 \
+ crate://crates.io/num-traits/0.2.16 \
crate://crates.io/num_cpus/1.16.0 \
crate://crates.io/num_threads/0.1.6 \
crate://crates.io/number_prefix/0.4.0 \
@@ -155,7 +153,7 @@ SRC_URI += " \
crate://crates.io/ordered-multimap/0.6.0 \
crate://crates.io/os_display/0.1.3 \
crate://crates.io/parking_lot/0.12.1 \
- crate://crates.io/parking_lot_core/0.9.7 \
+ crate://crates.io/parking_lot_core/0.9.8 \
crate://crates.io/parse_datetime/0.4.0 \
crate://crates.io/peeking_take_while/0.1.2 \
crate://crates.io/phf/0.11.2 \
@@ -181,22 +179,22 @@ SRC_URI += " \
crate://crates.io/rand_pcg/0.3.1 \
crate://crates.io/rayon/1.7.0 \
crate://crates.io/rayon-core/1.11.0 \
- crate://crates.io/redox_syscall/0.2.16 \
crate://crates.io/redox_syscall/0.3.5 \
crate://crates.io/reference-counted-singleton/0.1.2 \
- crate://crates.io/regex/1.9.1 \
- crate://crates.io/regex-automata/0.3.1 \
- crate://crates.io/regex-syntax/0.7.3 \
+ crate://crates.io/regex/1.9.5 \
+ crate://crates.io/regex-automata/0.3.8 \
+ crate://crates.io/regex-syntax/0.7.5 \
crate://crates.io/relative-path/1.8.0 \
- crate://crates.io/rlimit/0.10.0 \
+ crate://crates.io/rlimit/0.10.1 \
crate://crates.io/roff/0.2.1 \
- crate://crates.io/rstest/0.18.1 \
- crate://crates.io/rstest_macros/0.18.1 \
+ crate://crates.io/rstest/0.18.2 \
+ crate://crates.io/rstest_macros/0.18.2 \
crate://crates.io/rust-ini/0.19.0 \
crate://crates.io/rustc-hash/1.1.0 \
crate://crates.io/rustc_version/0.4.0 \
- crate://crates.io/rustix/0.36.14 \
- crate://crates.io/rustix/0.37.19 \
+ crate://crates.io/rustix/0.36.15 \
+ crate://crates.io/rustix/0.37.23 \
+ crate://crates.io/rustix/0.38.8 \
crate://crates.io/same-file/1.0.6 \
crate://crates.io/scopeguard/1.1.0 \
crate://crates.io/self_cell/1.0.1 \
@@ -208,7 +206,7 @@ SRC_URI += " \
crate://crates.io/sha2/0.10.7 \
crate://crates.io/sha3/0.10.8 \
crate://crates.io/shlex/1.1.0 \
- crate://crates.io/signal-hook/0.3.15 \
+ crate://crates.io/signal-hook/0.3.17 \
crate://crates.io/signal-hook-mio/0.2.3 \
crate://crates.io/signal-hook-registry/1.4.0 \
crate://crates.io/siphasher/0.3.10 \
@@ -222,7 +220,7 @@ SRC_URI += " \
crate://crates.io/subtle/2.4.1 \
crate://crates.io/syn/1.0.109 \
crate://crates.io/syn/2.0.23 \
- crate://crates.io/tempfile/3.6.0 \
+ crate://crates.io/tempfile/3.8.0 \
crate://crates.io/term_grid/0.1.7 \
crate://crates.io/terminal_size/0.2.6 \
crate://crates.io/textwrap/0.16.0 \
@@ -234,7 +232,7 @@ SRC_URI += " \
crate://crates.io/tiny-keccak/2.0.2 \
crate://crates.io/typenum/1.15.0 \
crate://crates.io/unicode-ident/1.0.5 \
- crate://crates.io/unicode-linebreak/0.1.4 \
+ crate://crates.io/unicode-linebreak/0.1.5 \
crate://crates.io/unicode-segmentation/1.10.1 \
crate://crates.io/unicode-width/0.1.10 \
crate://crates.io/unicode-xid/0.2.4 \
@@ -244,11 +242,11 @@ SRC_URI += " \
crate://crates.io/version_check/0.9.4 \
crate://crates.io/walkdir/2.3.2 \
crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
- crate://crates.io/wasm-bindgen/0.2.83 \
- crate://crates.io/wasm-bindgen-backend/0.2.83 \
- crate://crates.io/wasm-bindgen-macro/0.2.83 \
- crate://crates.io/wasm-bindgen-macro-support/0.2.83 \
- crate://crates.io/wasm-bindgen-shared/0.2.83 \
+ crate://crates.io/wasm-bindgen/0.2.87 \
+ crate://crates.io/wasm-bindgen-backend/0.2.87 \
+ crate://crates.io/wasm-bindgen-macro/0.2.87 \
+ crate://crates.io/wasm-bindgen-macro-support/0.2.87 \
+ crate://crates.io/wasm-bindgen-shared/0.2.87 \
crate://crates.io/which/4.3.0 \
crate://crates.io/wild/2.1.0 \
crate://crates.io/winapi/0.3.9 \
@@ -273,16 +271,14 @@ SRC_URI += " \
crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
crate://crates.io/windows_x86_64_msvc/0.42.2 \
crate://crates.io/windows_x86_64_msvc/0.48.0 \
- crate://crates.io/xattr/1.0.0 \
+ crate://crates.io/xattr/1.0.1 \
crate://crates.io/yansi/0.5.1 \
crate://crates.io/z85/3.0.5 \
crate://crates.io/zip/0.6.6 \
"
SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-SRC_URI[ahash-0.7.6.sha256sum] = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
-SRC_URI[aho-corasick-0.7.19.sha256sum] = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e"
-SRC_URI[aho-corasick-1.0.1.sha256sum] = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
+SRC_URI[aho-corasick-1.0.4.sha256sum] = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a"
SRC_URI[android-tzdata-0.1.1.sha256sum] = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
SRC_URI[android_system_properties-0.1.5.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
@@ -297,6 +293,7 @@ SRC_URI[bigdecimal-0.4.0.sha256sum] = "5274a6b6e0ee020148397245b973e30163b7bffbc
SRC_URI[binary-heap-plus-0.5.0.sha256sum] = "e4551d8382e911ecc0d0f0ffb602777988669be09447d536ff4388d1def11296"
SRC_URI[bindgen-0.63.0.sha256sum] = "36d860121800b2a9a94f9b5604b332d5cffb234ce17609ea479d723dbc9d3885"
SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.3.3.sha256sum] = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
SRC_URI[blake2b_simd-1.0.1.sha256sum] = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc"
SRC_URI[blake3-1.4.0.sha256sum] = "729b71f35bd3fa1a4c86b85d32c8b9069ea7fe14f7a53cfabb65f62d4265b888"
SRC_URI[block-buffer-0.10.3.sha256sum] = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
@@ -307,10 +304,10 @@ SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b333
SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
SRC_URI[cexpr-0.6.0.sha256sum] = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-SRC_URI[chrono-0.4.26.sha256sum] = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
+SRC_URI[chrono-0.4.28.sha256sum] = "95ed24df0632f708f5f6d8082675bef2596f7084dee3dd55f632290bf35bfe0f"
SRC_URI[clang-sys-1.4.0.sha256sum] = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3"
-SRC_URI[clap-4.3.0.sha256sum] = "93aae7a4192245f70fe75dd9157fc7b4a5bf53e88d30bd4396f7d8f9284d5acc"
-SRC_URI[clap_builder-4.3.0.sha256sum] = "4f423e341edefb78c9caba2d9c7f7687d0e72e89df3ce3394554754393ac3990"
+SRC_URI[clap-4.3.21.sha256sum] = "c27cdf28c0f604ba3f512b0c9a409f8de8513e4816705deb0498b627e7c3a3fd"
+SRC_URI[clap_builder-4.3.21.sha256sum] = "08a9f1ab5e9f01a9b81f202e8562eb9a10de70abf9eaeac1be465c28b75aa4aa"
SRC_URI[clap_complete-4.3.0.sha256sum] = "a04ddfaacc3bc9e6ea67d024575fafc2a813027cf374b8f24f7bc233c6b6be12"
SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
SRC_URI[clap_mangen-0.2.9.sha256sum] = "bb0f09a0ca8f0dd8ac92c546b426f466ef19828185c6d504c80c48c9c2768ed9"
@@ -323,18 +320,18 @@ SRC_URI[constant_time_eq-0.2.4.sha256sum] = "f3ad85c1f65dc7b37604eb0e89748faf0b9
SRC_URI[conv-0.3.3.sha256sum] = "78ff10625fd0ac447827aa30ea8b861fead473bb60aeb73af6c1c58caf0d1299"
SRC_URI[core-foundation-sys-0.8.3.sha256sum] = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
SRC_URI[coz-0.1.3.sha256sum] = "cef55b3fe2f5477d59e12bc792e8b3c95a25bd099eadcfae006ecea136de76e2"
-SRC_URI[cpp-0.5.7.sha256sum] = "dec5e86d4f6547f0218ad923d9508244a71ef83b763196e6698b4f70f3595185"
-SRC_URI[cpp_build-0.5.7.sha256sum] = "16f4d303b8ec35fb3afd7e963e2c898117f1e49930becb703e4a7ac528ad2dd0"
-SRC_URI[cpp_common-0.5.7.sha256sum] = "76071bb9c8c4dd2b5eb209907deab7b031323cf1be3dfdc6ec5d37f4f187d8a1"
-SRC_URI[cpp_macros-0.5.7.sha256sum] = "7fdaa01904c12a8989dbfa110b41ef27efc432ac9934f691b9732f01cb64dc01"
+SRC_URI[cpp-0.5.9.sha256sum] = "bfa65869ef853e45c60e9828aa08cdd1398cb6e13f3911d9cb2a079b144fcd64"
+SRC_URI[cpp_build-0.5.9.sha256sum] = "0e361fae2caf9758164b24da3eedd7f7d7451be30d90d8e7b5d2be29a2f0cf5b"
+SRC_URI[cpp_common-0.5.9.sha256sum] = "3e1a2532e4ed4ea13031c13bc7bc0dbca4aae32df48e9d77f0d1e743179f2ea1"
+SRC_URI[cpp_macros-0.5.9.sha256sum] = "47ec9cc90633446f779ef481a9ce5a0077107dd5b87016440448d908625a83fd"
SRC_URI[cpufeatures-0.2.5.sha256sum] = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
SRC_URI[crossbeam-channel-0.5.8.sha256sum] = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
SRC_URI[crossbeam-deque-0.8.2.sha256sum] = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
SRC_URI[crossbeam-epoch-0.9.14.sha256sum] = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
SRC_URI[crossbeam-utils-0.8.15.sha256sum] = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
-SRC_URI[crossterm-0.26.1.sha256sum] = "a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13"
-SRC_URI[crossterm_winapi-0.9.0.sha256sum] = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c"
+SRC_URI[crossterm-0.27.0.sha256sum] = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
+SRC_URI[crossterm_winapi-0.9.1.sha256sum] = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
SRC_URI[crunchy-0.2.2.sha256sum] = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
SRC_URI[ctrlc-3.4.0.sha256sum] = "2a011bbe2c35ce9c1f143b7af6f94f29a167beb4cd1d29e6740ce836f723120e"
@@ -353,32 +350,31 @@ SRC_URI[env_logger-0.8.4.sha256sum] = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9
SRC_URI[errno-0.3.1.sha256sum] = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
SRC_URI[exacl-0.10.0.sha256sum] = "1cfeb22a59deb24c3262c43ffcafd1eb807180f371f9fcc99098d181b5d639be"
-SRC_URI[fastrand-1.8.0.sha256sum] = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
+SRC_URI[fastrand-2.0.0.sha256sum] = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
SRC_URI[file_diff-1.0.0.sha256sum] = "31a7a908b8f32538a2143e59a6e4e2508988832d5d4d6f7c156b3cbc762643a5"
-SRC_URI[filetime-0.2.20.sha256sum] = "8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412"
+SRC_URI[filetime-0.2.22.sha256sum] = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
SRC_URI[flate2-1.0.24.sha256sum] = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6"
SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
SRC_URI[fs_extra-1.3.0.sha256sum] = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
SRC_URI[fsevent-sys-4.1.0.sha256sum] = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
SRC_URI[fts-sys-0.2.4.sha256sum] = "9a66c0a21e344f20c87b4ca12643cf4f40a7018f132c98d344e989b959f49dd1"
-SRC_URI[fundu-1.2.0.sha256sum] = "34804ed59f10b3a630c79822ebf7370b562b7281028369e9baa40547c17f8bdc"
-SRC_URI[fundu-core-0.2.0.sha256sum] = "71a99190954ca83bade03ba054799b17a158ea948a6855c6bb8121adb6b49d9f"
-SRC_URI[futures-0.3.25.sha256sum] = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0"
-SRC_URI[futures-channel-0.3.25.sha256sum] = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed"
-SRC_URI[futures-core-0.3.25.sha256sum] = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac"
-SRC_URI[futures-executor-0.3.25.sha256sum] = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2"
-SRC_URI[futures-io-0.3.25.sha256sum] = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb"
-SRC_URI[futures-macro-0.3.25.sha256sum] = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d"
-SRC_URI[futures-sink-0.3.25.sha256sum] = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9"
-SRC_URI[futures-task-0.3.25.sha256sum] = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea"
+SRC_URI[fundu-2.0.0.sha256sum] = "6c04cb831a8dccadfe3774b07cba4574a1ec24974d761510e65d8a543c2d7cb4"
+SRC_URI[fundu-core-0.3.0.sha256sum] = "76a889e633afd839fb5b04fe53adfd588cefe518e71ec8d3c929698c6daf2acd"
+SRC_URI[futures-0.3.28.sha256sum] = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+SRC_URI[futures-channel-0.3.28.sha256sum] = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+SRC_URI[futures-core-0.3.28.sha256sum] = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+SRC_URI[futures-executor-0.3.28.sha256sum] = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+SRC_URI[futures-io-0.3.28.sha256sum] = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+SRC_URI[futures-macro-0.3.28.sha256sum] = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+SRC_URI[futures-sink-0.3.28.sha256sum] = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+SRC_URI[futures-task-0.3.28.sha256sum] = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
SRC_URI[futures-timer-3.0.2.sha256sum] = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
-SRC_URI[futures-util-0.3.25.sha256sum] = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6"
+SRC_URI[futures-util-0.3.28.sha256sum] = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
SRC_URI[gcd-2.3.0.sha256sum] = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a"
SRC_URI[generic-array-0.14.6.sha256sum] = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
SRC_URI[getrandom-0.2.9.sha256sum] = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
SRC_URI[half-2.2.1.sha256sum] = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0"
-SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
SRC_URI[hashbrown-0.13.2.sha256sum] = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
SRC_URI[hermit-abi-0.3.2.sha256sum] = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
@@ -389,12 +385,11 @@ SRC_URI[iana-time-zone-haiku-0.1.2.sha256sum] = "f31827a206f56af32e590ba56d5d2d0
SRC_URI[indicatif-0.17.3.sha256sum] = "cef509aa9bc73864d6756f0d34d35504af3cf0844373afe9b8669a5b8005a729"
SRC_URI[inotify-0.9.6.sha256sum] = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
SRC_URI[inotify-sys-0.1.5.sha256sum] = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
-SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
-SRC_URI[is-terminal-0.4.7.sha256sum] = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
+SRC_URI[is-terminal-0.4.9.sha256sum] = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
SRC_URI[itertools-0.11.0.sha256sum] = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
SRC_URI[itoa-1.0.4.sha256sum] = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
-SRC_URI[js-sys-0.3.60.sha256sum] = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
+SRC_URI[js-sys-0.3.64.sha256sum] = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
SRC_URI[keccak-0.1.4.sha256sum] = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940"
SRC_URI[kqueue-1.0.7.sha256sum] = "2c8fc60ba15bf51257aa9807a48a61013db043fcf3a78cb0d916e8e396dcad98"
SRC_URI[kqueue-sys-1.0.3.sha256sum] = "8367585489f01bc55dd27404dcf56b95e6da061a256a666ab23be9ba96a2e587"
@@ -405,12 +400,13 @@ SRC_URI[libloading-0.7.4.sha256sum] = "b67380fd3b2fbe7527a606e18729d21c6f3951633
SRC_URI[libm-0.2.7.sha256sum] = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
SRC_URI[linux-raw-sys-0.1.4.sha256sum] = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+SRC_URI[linux-raw-sys-0.4.5.sha256sum] = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503"
SRC_URI[lock_api-0.4.9.sha256sum] = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-SRC_URI[lscolors-0.14.0.sha256sum] = "18a9df1d1fb6d9e92fa043e9eb9a3ecf6892c7b542bae5137cd1e419e40aa8bf"
+SRC_URI[lscolors-0.15.0.sha256sum] = "bf7015a04103ad78abb77e4b79ed151e767922d1cfde5f62640471c629a2320d"
SRC_URI[match_cfg-0.1.0.sha256sum] = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
SRC_URI[md-5-0.10.5.sha256sum] = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca"
-SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[memchr-2.6.2.sha256sum] = "5486aed0026218e61b8a01d5fbd5a0a134649abb71a0e53b7bc088529dced86e"
SRC_URI[memmap2-0.7.0.sha256sum] = "180d4b35be83d33392d1d1bfbd2ae1eca7ff5de1a94d3fc87faaa99a069e7cbd"
SRC_URI[memoffset-0.8.0.sha256sum] = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
@@ -419,10 +415,10 @@ SRC_URI[mio-0.8.6.sha256sum] = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4
SRC_URI[nix-0.26.2.sha256sum] = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
SRC_URI[notify-6.0.1.sha256sum] = "5738a2795d57ea20abec2d6d76c6081186709c0024187cd5977265eda6598b51"
-SRC_URI[nu-ansi-term-0.47.0.sha256sum] = "1df031e117bca634c262e9bd3173776844b6c17a90b3741c9163663b4385af76"
-SRC_URI[num-bigint-0.4.3.sha256sum] = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+SRC_URI[nu-ansi-term-0.49.0.sha256sum] = "c073d3c1930d0751774acf49e66653acecb416c3a54c6ec095a9b11caddb5a68"
+SRC_URI[num-bigint-0.4.4.sha256sum] = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+SRC_URI[num-traits-0.2.16.sha256sum] = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
SRC_URI[num_cpus-1.16.0.sha256sum] = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
SRC_URI[num_threads-0.1.6.sha256sum] = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
SRC_URI[number_prefix-0.4.0.sha256sum] = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
@@ -432,7 +428,7 @@ SRC_URI[onig_sys-69.8.1.sha256sum] = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acd
SRC_URI[ordered-multimap-0.6.0.sha256sum] = "4ed8acf08e98e744e5384c8bc63ceb0364e68a6854187221c18df61c4797690e"
SRC_URI[os_display-0.1.3.sha256sum] = "7a6229bad892b46b0dcfaaeb18ad0d2e56400f5aaea05b768bde96e73676cf75"
SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
-SRC_URI[parking_lot_core-0.9.7.sha256sum] = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
+SRC_URI[parking_lot_core-0.9.8.sha256sum] = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
SRC_URI[parse_datetime-0.4.0.sha256sum] = "fecceaede7767a9a98058687a321bc91742eff7670167a34104afb30fc8757df"
SRC_URI[peeking_take_while-0.1.2.sha256sum] = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
SRC_URI[phf-0.11.2.sha256sum] = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
@@ -458,22 +454,22 @@ SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a
SRC_URI[rand_pcg-0.3.1.sha256sum] = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e"
SRC_URI[rayon-1.7.0.sha256sum] = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
SRC_URI[rayon-core-1.11.0.sha256sum] = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
-SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
SRC_URI[reference-counted-singleton-0.1.2.sha256sum] = "f1bfbf25d7eb88ddcbb1ec3d755d0634da8f7657b2cb8b74089121409ab8228f"
-SRC_URI[regex-1.9.1.sha256sum] = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
-SRC_URI[regex-automata-0.3.1.sha256sum] = "e9aaecc05d5c4b5f7da074b9a0d1a0867e71fd36e7fc0482d8bcfe8e8fc56290"
-SRC_URI[regex-syntax-0.7.3.sha256sum] = "2ab07dc67230e4a4718e70fd5c20055a4334b121f1f9db8fe63ef39ce9b8c846"
+SRC_URI[regex-1.9.5.sha256sum] = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
+SRC_URI[regex-automata-0.3.8.sha256sum] = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
+SRC_URI[regex-syntax-0.7.5.sha256sum] = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
SRC_URI[relative-path-1.8.0.sha256sum] = "4bf2521270932c3c7bed1a59151222bd7643c79310f2916f01925e1e16255698"
-SRC_URI[rlimit-0.10.0.sha256sum] = "9b5b8be0bc0ef630d24f8fa836b3a3463479b2343b29f9a8fa905c71a8c7b69b"
+SRC_URI[rlimit-0.10.1.sha256sum] = "3560f70f30a0f16d11d01ed078a07740fe6b489667abc7c7b029155d9f21c3d8"
SRC_URI[roff-0.2.1.sha256sum] = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316"
-SRC_URI[rstest-0.18.1.sha256sum] = "2b96577ca10cb3eade7b337eb46520108a67ca2818a24d0b63f41fd62bc9651c"
-SRC_URI[rstest_macros-0.18.1.sha256sum] = "225e674cf31712b8bb15fdbca3ec0c1b9d825c5a24407ff2b7e005fb6a29ba03"
+SRC_URI[rstest-0.18.2.sha256sum] = "97eeab2f3c0a199bc4be135c36c924b6590b88c377d416494288c14f2db30199"
+SRC_URI[rstest_macros-0.18.2.sha256sum] = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605"
SRC_URI[rust-ini-0.19.0.sha256sum] = "7e2a3bcec1f113553ef1c88aae6c020a369d03d55b58de9869a0908930385091"
SRC_URI[rustc-hash-1.1.0.sha256sum] = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
SRC_URI[rustc_version-0.4.0.sha256sum] = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
-SRC_URI[rustix-0.36.14.sha256sum] = "14e4d67015953998ad0eb82887a0eb0129e18a7e2f3b7b0f6c422fddcd503d62"
-SRC_URI[rustix-0.37.19.sha256sum] = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d"
+SRC_URI[rustix-0.36.15.sha256sum] = "c37f1bd5ef1b5422177b7646cba67430579cfe2ace80f284fee876bca52ad941"
+SRC_URI[rustix-0.37.23.sha256sum] = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
+SRC_URI[rustix-0.38.8.sha256sum] = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f"
SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
SRC_URI[self_cell-1.0.1.sha256sum] = "4c309e515543e67811222dbc9e3dd7e1056279b782e1dacffe4242b718734fb6"
@@ -485,7 +481,7 @@ SRC_URI[sha1-0.10.5.sha256sum] = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d340
SRC_URI[sha2-0.10.7.sha256sum] = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
SRC_URI[sha3-0.10.8.sha256sum] = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60"
SRC_URI[shlex-1.1.0.sha256sum] = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
-SRC_URI[signal-hook-0.3.15.sha256sum] = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9"
+SRC_URI[signal-hook-0.3.17.sha256sum] = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
SRC_URI[signal-hook-mio-0.2.3.sha256sum] = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
SRC_URI[signal-hook-registry-1.4.0.sha256sum] = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
SRC_URI[siphasher-0.3.10.sha256sum] = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
@@ -499,7 +495,7 @@ SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20ee
SRC_URI[subtle-2.4.1.sha256sum] = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
SRC_URI[syn-2.0.23.sha256sum] = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
-SRC_URI[tempfile-3.6.0.sha256sum] = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+SRC_URI[tempfile-3.8.0.sha256sum] = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
SRC_URI[term_grid-0.1.7.sha256sum] = "230d3e804faaed5a39b08319efb797783df2fd9671b39b7596490cb486d702cf"
SRC_URI[terminal_size-0.2.6.sha256sum] = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
SRC_URI[textwrap-0.16.0.sha256sum] = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
@@ -511,7 +507,7 @@ SRC_URI[time-macros-0.2.8.sha256sum] = "fd80a657e71da814b8e5d60d3374fc6d35045062
SRC_URI[tiny-keccak-2.0.2.sha256sum] = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
SRC_URI[typenum-1.15.0.sha256sum] = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
SRC_URI[unicode-ident-1.0.5.sha256sum] = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
-SRC_URI[unicode-linebreak-0.1.4.sha256sum] = "c5faade31a542b8b35855fff6e8def199853b2da8da256da52f52f1316ee3137"
+SRC_URI[unicode-linebreak-0.1.5.sha256sum] = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
SRC_URI[unicode-segmentation-1.10.1.sha256sum] = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
SRC_URI[unicode-width-0.1.10.sha256sum] = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
SRC_URI[unicode-xid-0.2.4.sha256sum] = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
@@ -521,11 +517,11 @@ SRC_URI[uuid-1.2.2.sha256sum] = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd2
SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
SRC_URI[walkdir-2.3.2.sha256sum] = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-SRC_URI[wasm-bindgen-0.2.83.sha256sum] = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
-SRC_URI[wasm-bindgen-backend-0.2.83.sha256sum] = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
-SRC_URI[wasm-bindgen-macro-0.2.83.sha256sum] = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
-SRC_URI[wasm-bindgen-macro-support-0.2.83.sha256sum] = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
-SRC_URI[wasm-bindgen-shared-0.2.83.sha256sum] = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
+SRC_URI[wasm-bindgen-0.2.87.sha256sum] = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+SRC_URI[wasm-bindgen-backend-0.2.87.sha256sum] = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+SRC_URI[wasm-bindgen-macro-0.2.87.sha256sum] = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+SRC_URI[wasm-bindgen-macro-support-0.2.87.sha256sum] = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+SRC_URI[wasm-bindgen-shared-0.2.87.sha256sum] = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
SRC_URI[which-4.3.0.sha256sum] = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b"
SRC_URI[wild-2.1.0.sha256sum] = "05b116685a6be0c52f5a103334cbff26db643826c7b3735fc0a3ba9871310a74"
SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
@@ -550,7 +546,7 @@ SRC_URI[windows_x86_64_gnullvm-0.42.2.sha256sum] = "26d41b46a36d453748aedef1486d
SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
SRC_URI[windows_x86_64_msvc-0.42.2.sha256sum] = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
-SRC_URI[xattr-1.0.0.sha256sum] = "ea263437ca03c1522846a4ddafbca2542d0ad5ed9b784909d4b27b76f62bc34a"
+SRC_URI[xattr-1.0.1.sha256sum] = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985"
SRC_URI[yansi-0.5.1.sha256sum] = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
SRC_URI[z85-3.0.5.sha256sum] = "2a599daf1b507819c1121f0bf87fa37eb19daac6aff3aefefd4e6e2e0f2020fc"
SRC_URI[zip-0.6.6.sha256sum] = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
diff --git a/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.20.bb b/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.21.bb
index 1121e9a4c9..a070fe780b 100644
--- a/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.20.bb
+++ b/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.21.bb
@@ -11,7 +11,7 @@ SRC_URI += "git://github.com/uutils/coreutils.git;protocol=https;branch=main"
# so src/uucore/src/lib/features.rs disables utmpx when targetting musl.
COMPATIBLE_HOST:libc-musl = "null"
-SRCREV = "8093d81dac0fb87ff3984ba9fe22ab171e630443"
+SRCREV = "7c7a6083d90af031ed14b585a9c60fa3b79422a0"
S = "${WORKDIR}/git"
require ${BPN}-crates.inc
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch
index 12fbd75976..f8ccb998be 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch
@@ -15,7 +15,8 @@ Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h | 1 +
.../rocksdb/rocksdb/table/block_based/data_block_hash_index.h | 1 +
storage/rocksdb/rocksdb/util/slice.cc | 1 +
- 4 files changed, 4 insertions(+)
+ storage/rocksdb/rocksdb/util/string_util.h | 1 +
+ 5 files changed, 5 insertions(+)
diff --git a/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h b/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h
index 963c1d8e..73487edd 100644
@@ -65,6 +66,19 @@ index 6db11cc9..c26b6a21 100644
#include "rocksdb/slice_transform.h"
#include "rocksdb/slice.h"
#include "util/string_util.h"
+
+diff --git a/util/string_util.h b/util/string_util.h
+index 55d106fff02..11178fd1d7b 100644
+--- a/storage/rocksdb/rocksdb/util/string_util.h
++++ b/storage/rocksdb/rocksdb/util/string_util.h
+@@ -6,6 +6,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <sstream>
+ #include <string>
+ #include <unordered_map>
--
2.25.1
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/run-ptest b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/run-ptest
new file mode 100644
index 0000000000..2f905cd379
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/run-ptest
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# test case test-connect is excluded. Becasue this test case need following steps before running.
+# Without these steps, test case test-connect will fail.
+# 1. Disable 'skip-networking' in /etc/my.cnf
+# $ sed -i '/skip-networking/s/^/#/g' /etc/my.cnf
+# 2. Restart mysqld.service
+# $ systemctl restart mysqld
+# 3. Set password for MySQL user "root"
+# $ mysql -u root
+# MariaDB [(none)]> SET PASSWORD FOR "root"@"localhost" = PASSWORD("myReallyStrongPwd");
+# MariaDB [(none)]> FLUSH PRIVILEGES;
+
+# If test-connect is included, please uncomment these lines.
+#export MASTER_MYPORT=3306
+#export MYSQL_TEST_HOST=127.0.0.1
+#export MYSQL_TEST_USER=root
+#export MYSQL_TEST_PASSWD=myReallyStrongPwd
+
+ctest --force-new-ctest-process -E test-connect | sed -u 's/\*\*\*/ /g' | awk '/Test +#/{gsub(/Passed/,"PASS"); gsub(/Failed/,"FAIL"); gsub(/Skipped/,"SKIP"); print $6": "$4; fflush();}'
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.11.5.bb b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.11.5.bb
index 87faabfa27..a4498fa44e 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.11.5.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.11.5.bb
@@ -1,5 +1,36 @@
require mariadb.inc
+inherit ptest
+SRC_URI += "${@bb.utils.contains('PTEST_ENABLED', '1', 'file://run-ptest', '', d)}"
+DEPENDS += "${@bb.utils.contains('PTEST_ENABLED', '1', 'rsync-native', '', d)}"
+RDEPENDS:${PN}-ptest += "cmake sed perl-module-test-more"
+
+do_install_ptest () {
+ rsync -a ${B}/unittest ${B}/dbug ${D}${PTEST_PATH} \
+ --exclude CMakeFiles \
+ --exclude cmake_install.cmake \
+ --exclude Makefile \
+ --exclude=*.a \
+ --exclude=*.h \
+ --exclude=*.o \
+ --exclude=*.so \
+ --exclude=*.d \
+ --exclude=*.txt
+ install -m 0755 -d ${D}${PTEST_PATH}/storage
+ rsync -a ${B}/storage/maria ${B}/storage/perfschema ${B}/storage/innobase ${D}${PTEST_PATH}/storage \
+ --exclude CMakeFiles \
+ --exclude cmake_install.cmake \
+ --exclude Makefile \
+ --exclude=*.a \
+ --exclude=*.h \
+ --exclude=*.o \
+ --exclude=*.so \
+ --exclude=*.d \
+ --exclude=*.txt
+ cp -r ${B}/CTestTestfile.cmake ${D}${PTEST_PATH}
+ sed -i -e 's#${WORKDIR}##g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+}
+
DEPENDS += "mariadb-native bison-native boost libpcre2 curl ncurses \
zlib libaio libedit libevent libxml2 gnutls fmt lzo zstd"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/psqlodbc_15.00.0000.bb b/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/psqlodbc_16.00.0000.bb
index be79caef0b..97333f679d 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/psqlodbc_15.00.0000.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/psqlodbc_16.00.0000.bb
@@ -26,7 +26,7 @@ SRC_URI = "http://ftp.postgresql.org/pub/odbc/versions/src/${BPN}-${PV}.tar.gz \
file://run-ptest \
"
-SRC_URI[sha256sum] = "ca57d6349532ea7fb4fae17bbfc107abe5a155ca2f43446315f9e23764b3f8ec"
+SRC_URI[sha256sum] = "afd892f89d2ecee8d3f3b2314f1bd5bf2d02201872c6e3431e5c31096eca4c8b"
DEPENDS += "postgresql unixodbc"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230827.0.bb b/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230917.0.bb
index 7d25e2e870..02afbfbbba 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230827.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230917.0.bb
@@ -14,7 +14,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
inherit autotools-brokensep pkgconfig manpages
-SRCREV = "713c557bd30e729be54af12edafd90dc041ce534"
+SRCREV = "481ad1b36daca1d40060dd32b0d825cddc97e9cb"
SRC_URI = "git://github.com/universal-ctags/ctags;branch=master;protocol=https"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch
deleted file mode 100644
index b245ad8657..0000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From dc593958e556dd496b774f35c5992285510d6859 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Tue, 19 Oct 2021 17:09:55 +0200
-Subject: [PATCH] Revert "Changed GRPCPP_ABSEIL_SYNC to GPR_ABSEIL_SYNC
- (#25681)"
-
-This reverts commit 931f91b745cd5b2864a0d1787815871d0bd844ae.
-
-Fixes sysdig from meta-oe and other recipes (like com.webos.service.tts
-libgoogleassistant from meta-webosose) failing with:
-
-| FAILED: userspace/sysdig/sysdig
-| : && /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/x86_64-oe-linux-g++ -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-sec
-urity --sysroot=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -f
-debug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot= -fdebug-prefix-map=/OE/bu
-ild/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/OE/build
-/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot -Wall -ggdb -std=c++0x -O3 -fno-strict-aliasing -DNDEBUG -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security
---sysroot=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-p
-refix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/oe-
-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/OE/build/oe-cor
-e/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-cor
-e/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-
-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native= -Wl,-z,relro,-z,now -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/
-oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/
-core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native= -Wl,-z,relro,-z,now -rdynamic userspace/sysdig/CMakeFiles/sysdig.dir/fields_info.cpp.o userspace/sysdig/CMakeFiles/sysdig.dir/sysdig.cpp.o -o userspace/sysdig/sysdig userspace/libsinsp/libsinsp.a userspace/libscap/libscap.a
- -lelf -lz -lcurl -ljsoncpp -ltbb -lcares -lgrpc++_unsecure -lgrpc_unsecure -lprotobuf -lcares -lgrpc++_unsecure -lgrpc_unsecure -lprotobuf -ljq -lb64 -lrt -lanl -lssl -lcrypto -lluajit-5.1 -ldl -lpthread && :
-| /usr/include/grpcpp/impl/codegen/completion_queue.h:121: error: undefined reference to 'absl::lts_20210324::Mutex::~Mutex()'
-| /usr/include/grpcpp/impl/codegen/completion_queue.h:121: error: undefined reference to 'absl::lts_20210324::Mutex::~Mutex()'
-| /usr/include/grpcpp/impl/codegen/completion_queue.h:121: error: undefined reference to 'absl::lts_20210324::Mutex::~Mutex()'
-| /usr/include/grpcpp/impl/codegen/completion_queue.h:259: error: undefined reference to 'absl::lts_20210324::Mutex::~Mutex()'
-| collect2: error: ld returned 1 exit status
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-
----
-Upstream-Status: Pending
-
- include/grpcpp/impl/codegen/sync.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/include/grpcpp/impl/codegen/sync.h b/include/grpcpp/impl/codegen/sync.h
-index 4cb8133c7c..3d10d9a3a0 100644
---- a/include/grpcpp/impl/codegen/sync.h
-+++ b/include/grpcpp/impl/codegen/sync.h
-@@ -47,7 +47,7 @@
- namespace grpc {
- namespace internal {
-
--#ifdef GPR_ABSEIL_SYNC
-+#ifdef GRPCPP_ABSEIL_SYNC
-
- using Mutex = absl::Mutex;
- using MutexLock = absl::MutexLock;
-@@ -142,7 +142,7 @@ class CondVar {
- gpr_cv cv_;
- };
-
--#endif // GPR_ABSEIL_SYNC
-+#endif // GRPCPP_ABSEIL_SYNC
-
- template <typename Predicate>
- GRPC_DEPRECATED("incompatible with thread safety analysis")
diff --git a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-add-separate-export-for-plugin-targets.patch b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-add-separate-export-for-plugin-targets.patch
deleted file mode 100644
index 679bd38829..0000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-add-separate-export-for-plugin-targets.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 3150cb043363e05588062dd392b940be25594713 Mon Sep 17 00:00:00 2001
-From: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
-Date: Tue, 18 Feb 2020 14:17:07 +0100
-Subject: [PATCH] cmake: add separate export for plugin targets
-
-Upstream-Status: Submitted [https://github.com/grpc/grpc/pull/29328]
-
-
----
- CMakeLists.txt | 18 +++++++++++-------
- 1 file changed, 11 insertions(+), 7 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index efdaf8936d..6608b1b00c 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -10935,7 +10935,7 @@ target_link_libraries(grpc_cpp_plugin
-
-
- if(gRPC_INSTALL)
-- install(TARGETS grpc_cpp_plugin EXPORT gRPCTargets
-+ install(TARGETS grpc_cpp_plugin EXPORT gRPCPluginTargets
- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
- BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
-@@ -10975,7 +10975,7 @@ target_link_libraries(grpc_csharp_plugin
-
-
- if(gRPC_INSTALL)
-- install(TARGETS grpc_csharp_plugin EXPORT gRPCTargets
-+ install(TARGETS grpc_csharp_plugin EXPORT gRPCPluginTargets
- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
- BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
-@@ -11015,7 +11015,7 @@ target_link_libraries(grpc_node_plugin
-
-
- if(gRPC_INSTALL)
-- install(TARGETS grpc_node_plugin EXPORT gRPCTargets
-+ install(TARGETS grpc_node_plugin EXPORT gRPCPluginTargets
- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
- BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
-@@ -11055,7 +11055,7 @@ target_link_libraries(grpc_objective_c_plugin
-
-
- if(gRPC_INSTALL)
-- install(TARGETS grpc_objective_c_plugin EXPORT gRPCTargets
-+ install(TARGETS grpc_objective_c_plugin EXPORT gRPCPluginTargets
- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
- BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
-@@ -11095,7 +11095,7 @@ target_link_libraries(grpc_php_plugin
-
-
- if(gRPC_INSTALL)
-- install(TARGETS grpc_php_plugin EXPORT gRPCTargets
-+ install(TARGETS grpc_php_plugin EXPORT gRPCPluginTargets
- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
- BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
-@@ -11135,7 +11135,7 @@ target_link_libraries(grpc_python_plugin
-
-
- if(gRPC_INSTALL)
-- install(TARGETS grpc_python_plugin EXPORT gRPCTargets
-+ install(TARGETS grpc_python_plugin EXPORT gRPCPluginTargets
- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
- BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
-@@ -11175,7 +11175,7 @@ target_link_libraries(grpc_ruby_plugin
-
-
- if(gRPC_INSTALL)
-- install(TARGETS grpc_ruby_plugin EXPORT gRPCTargets
-+ install(TARGETS grpc_ruby_plugin EXPORT gRPCPluginTargets
- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
- BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
-@@ -17349,6 +17349,10 @@ if(gRPC_INSTALL)
- DESTINATION ${gRPC_INSTALL_CMAKEDIR}
- NAMESPACE gRPC::
- )
-+ install(EXPORT gRPCPluginTargets
-+ DESTINATION ${gRPC_INSTALL_CMAKEDIR}
-+ NAMESPACE gRPC::
-+ )
- endif()
-
- include(CMakePackageConfigHelpers)
---
-2.30.2
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-fix-CVE-2023-32732.patch b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-fix-CVE-2023-32732.patch
deleted file mode 100644
index ab46897b12..0000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-fix-CVE-2023-32732.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From d39489045b5aa73e27713e3cbacb8832c1140ec8 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Wed, 9 Aug 2023 13:33:45 +0800
-Subject: [PATCH] fix CVE-2023-32732
-
-CVE: CVE-2023-32732
-
-Upstream-Status: Backport [https://github.com/grpc/grpc/pull/32309/commits/6a7850ef4f042ac26559854266dddc79bfbc75b2]
-The original patch is adjusted to fit the current 1.50.1 version.
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- .../ext/transport/chttp2/transport/hpack_parser.cc | 10 +++++++---
- src/core/ext/transport/chttp2/transport/internal.h | 2 --
- src/core/ext/transport/chttp2/transport/parsing.cc | 6 ++----
- 3 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/src/core/ext/transport/chttp2/transport/hpack_parser.cc b/src/core/ext/transport/chttp2/transport/hpack_parser.cc
-index f2e49022dc3..cd459d15238 100644
---- a/src/core/ext/transport/chttp2/transport/hpack_parser.cc
-+++ b/src/core/ext/transport/chttp2/transport/hpack_parser.cc
-@@ -1211,12 +1211,16 @@ class HPackParser::Parser {
- "). GRPC_ARG_MAX_METADATA_SIZE can be set to increase this limit.",
- *frame_length_, metadata_size_limit_);
- if (metadata_buffer_ != nullptr) metadata_buffer_->Clear();
-+ // StreamId is used as a signal to skip this stream but keep the connection
-+ // alive
- return input_->MaybeSetErrorAndReturn(
- [] {
- return grpc_error_set_int(
-- GRPC_ERROR_CREATE_FROM_STATIC_STRING(
-- "received initial metadata size exceeds limit"),
-- GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_RESOURCE_EXHAUSTED);
-+ grpc_error_set_int(
-+ GRPC_ERROR_CREATE_FROM_STATIC_STRING(
-+ "received initial metadata size exceeds limit"),
-+ GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_RESOURCE_EXHAUSTED),
-+ GRPC_ERROR_INT_STREAM_ID, 0);
- },
- false);
- }
-diff --git a/src/core/ext/transport/chttp2/transport/internal.h b/src/core/ext/transport/chttp2/transport/internal.h
-index 4a2f4261d83..f8b544d9583 100644
---- a/src/core/ext/transport/chttp2/transport/internal.h
-+++ b/src/core/ext/transport/chttp2/transport/internal.h
-@@ -542,8 +542,6 @@ struct grpc_chttp2_stream {
-
- grpc_core::Timestamp deadline = grpc_core::Timestamp::InfFuture();
-
-- /** saw some stream level error */
-- grpc_error_handle forced_close_error = GRPC_ERROR_NONE;
- /** how many header frames have we received? */
- uint8_t header_frames_received = 0;
- /** number of bytes received - reset at end of parse thread execution */
-diff --git a/src/core/ext/transport/chttp2/transport/parsing.cc b/src/core/ext/transport/chttp2/transport/parsing.cc
-index 980f13543f6..afe6da190b6 100644
---- a/src/core/ext/transport/chttp2/transport/parsing.cc
-+++ b/src/core/ext/transport/chttp2/transport/parsing.cc
-@@ -22,6 +22,7 @@
- #include <string.h>
-
- #include <string>
-+#include <utility>
-
- #include "absl/base/attributes.h"
- #include "absl/status/status.h"
-@@ -719,10 +720,7 @@ static grpc_error_handle parse_frame_slice(grpc_chttp2_transport* t,
- }
- grpc_chttp2_parsing_become_skip_parser(t);
- if (s) {
-- s->forced_close_error = err;
-- grpc_chttp2_add_rst_stream_to_next_write(t, t->incoming_stream_id,
-- GRPC_HTTP2_PROTOCOL_ERROR,
-- &s->stats.outgoing);
-+ grpc_chttp2_cancel_stream(t, s, std::exchange(err, absl::OkStatus()));
- } else {
- GRPC_ERROR_UNREF(err);
- }
---
-2.34.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.50.1.bb b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.56.2.bb
index 45bfcb8570..c4dd6b9857 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.50.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.56.2.bb
@@ -20,13 +20,10 @@ RDEPENDS:${PN}-dev:append:class-native = " ${PN}-compiler"
# RDEPENDS:${PN}-dev += "${PN}-compiler"
S = "${WORKDIR}/git"
-SRCREV_grpc = "90ccf24d22b6fc909a1021ebd89fd8c838467d26"
-BRANCH = "v1.50.x"
+SRCREV_grpc = "c0d1c393d9365664d47df41746e992ae97b651ef"
+BRANCH = "v1.56.x"
SRC_URI = "gitsm://github.com/grpc/grpc.git;protocol=https;name=grpc;branch=${BRANCH} \
- file://0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch \
- file://0001-cmake-add-separate-export-for-plugin-targets.patch \
file://0001-cmake-Link-with-libatomic-on-rv32-rv64.patch \
- file://0001-fix-CVE-2023-32732.patch \
"
# Fixes build with older compilers 4.8 especially on ubuntu 14.04
CXXFLAGS:append:class-native = " -Wl,--no-as-needed"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/jq/jq/0001-configure-Pass-_XOPEN_SOURCE-when-checking-for-strpt.patch b/meta-openembedded/meta-oe/recipes-devtools/jq/jq/0001-configure-Pass-_XOPEN_SOURCE-when-checking-for-strpt.patch
deleted file mode 100644
index e4d6ebb45b..0000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/jq/jq/0001-configure-Pass-_XOPEN_SOURCE-when-checking-for-strpt.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 40bbd419ad8d1bd9cbe8b17063c323f8a40ab327 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 6 Sep 2022 09:59:31 -0700
-Subject: [PATCH 1/2] configure: Pass _XOPEN_SOURCE when checking for strptime
-
-Include sys/time.h for gettimeofday since thats where its in glibc
-
-Upstream-Status: Submitted [https://github.com/stedolan/jq/pull/2480]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index a2cd99e..95afe06 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -139,7 +139,10 @@ AC_FUNC_ALLOCA
-
- AC_FIND_FUNC([isatty], [c], [#include <unistd.h>], [0])
- AC_FIND_FUNC([_isatty], [c], [#include <io.h>], [0])
-+OLD_CFLAGS=$CFLAGS
-+CFLAGS="$CFLAGS -D_XOPEN_SOURCE"
- AC_FIND_FUNC([strptime], [c], [#include <time.h>], [0, 0, 0])
-+CFLAGS=$OLD_CFLAGS
- AC_FIND_FUNC([strftime], [c], [#include <time.h>], [0, 0, 0, 0])
- AC_FIND_FUNC([setenv], [c], [#include <stdlib.h>], [0, 0, 0])
- AC_FIND_FUNC([timegm], [c], [#include <time.h>], [0])
-@@ -147,7 +150,7 @@ AC_FIND_FUNC([gmtime_r], [c], [#include <time.h>], [0, 0])
- AC_FIND_FUNC([gmtime], [c], [#include <time.h>], [0])
- AC_FIND_FUNC([localtime_r], [c], [#include <time.h>], [0, 0])
- AC_FIND_FUNC([localtime], [c], [#include <time.h>], [0])
--AC_FIND_FUNC([gettimeofday], [c], [#include <time.h>], [0, 0])
-+AC_FIND_FUNC([gettimeofday], [c], [#include <sys/time.h>], [0, 0])
- AC_CHECK_MEMBER([struct tm.tm_gmtoff], [AC_DEFINE([HAVE_TM_TM_GMT_OFF],1,[Define to 1 if the system has the tm_gmt_off field in struct tm])],
- [], [[#include <time.h>]])
- AC_CHECK_MEMBER([struct tm.__tm_gmtoff], [AC_DEFINE([HAVE_TM___TM_GMT_OFF],1,[Define to 1 if the system has the __tm_gmt_off field in struct tm])],
---
-2.37.3
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/jq/jq/0002-builtin-Replace-_BSD_SOURCE-with-_DEFAULT_SOURCE.patch b/meta-openembedded/meta-oe/recipes-devtools/jq/jq/0002-builtin-Replace-_BSD_SOURCE-with-_DEFAULT_SOURCE.patch
deleted file mode 100644
index e849436578..0000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/jq/jq/0002-builtin-Replace-_BSD_SOURCE-with-_DEFAULT_SOURCE.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From cda1734bed3b048c01452c798877d05b8c2f4c15 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 6 Sep 2022 10:00:59 -0700
-Subject: [PATCH 2/2] builtin: Replace _BSD_SOURCE with _DEFAULT_SOURCE
-
-newer glibc has remove _BSD_SOURCE and wants it to be replaced with _DEFAULT_SOURCE
-
-Fixes
-/usr/include/features.h:194:3: warning: "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-W#warnings]
-warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
-
-Uptream-Status: Submitted [https://github.com/stedolan/jq/pull/2480]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- src/builtin.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/builtin.c b/src/builtin.c
-index 1c6b08c..2a31496 100644
---- a/src/builtin.c
-+++ b/src/builtin.c
-@@ -1,4 +1,4 @@
--#define _BSD_SOURCE
-+#define _DEFAULT_SOURCE
- #define _GNU_SOURCE
- #ifndef __sun__
- # define _XOPEN_SOURCE
---
-2.37.3
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/jq/jq_git.bb b/meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.7.bb
index 4fa98aa44f..5c2e3aae8f 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/jq/jq_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.7.bb
@@ -2,22 +2,21 @@ SUMMARY = "Lightweight and flexible command-line JSON processor"
DESCRIPTION = "jq is like sed for JSON data, you can use it to slice and \
filter and map and transform structured data with the same \
ease that sed, awk, grep and friends let you play with text."
-HOMEPAGE = "https://stedolan.github.io/jq/"
-BUGTRACKER = "https://github.com/stedolan/jq/issues"
+HOMEPAGE = "https://jqlang.github.io/jq/"
+BUGTRACKER = "https://github.com/jqlang/jq/issues"
SECTION = "utils"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2814b59e00e7918c864fa3b6bbe049b4"
+LIC_FILES_CHKSUM = "file://COPYING;md5=488f4e0b04c0456337fb70d1ac1758ba"
-PV = "1.6+git${SRCPV}"
-SRC_URI = "git://github.com/stedolan/jq;protocol=https;branch=master \
- file://0001-configure-Pass-_XOPEN_SOURCE-when-checking-for-strpt.patch \
- file://0002-builtin-Replace-_BSD_SOURCE-with-_DEFAULT_SOURCE.patch \
+GITHUB_BASE_URI = "https://github.com/jqlang/${BPN}/releases/"
+SRC_URI = "${GITHUB_BASE_URI}/download/${BPN}-${PV}/${BPN}-${PV}.tar.gz \
file://run-ptest \
"
-SRCREV = "cff5336ec71b6fee396a95bb0e4bea365e0cd1e8"
-S = "${WORKDIR}/git"
+SRC_URI[sha256sum] = "402a0d6975d946e6f4e484d1a84320414a0ff8eb6cf49d2c11d144d4d344db62"
-inherit autotools-brokensep ptest
+inherit autotools github-releases ptest
+
+UPSTREAM_CHECK_REGEX = "releases/tag/${BPN}-(?P<pver>\d+(\.\d+)+)"
PACKAGECONFIG ?= "oniguruma"
@@ -27,8 +26,12 @@ PACKAGECONFIG[oniguruma] = "--with-oniguruma,--without-oniguruma,onig"
# enable if you want ptest running under valgrind
PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind"
+do_configure:append() {
+ sed -i -e "/^ac_cs_config=/ s:${WORKDIR}::g" ${B}/config.status
+}
+
do_install_ptest() {
- cp -rf ${B}/tests ${D}${PTEST_PATH}
+ cp -rf ${S}/tests ${D}${PTEST_PATH}
cp -rf ${B}/.libs ${D}${PTEST_PATH}
# libjq.so.* is packaged in the main jq component, so remove it from ptest
rm -f ${D}${PTEST_PATH}/.libs/libjq.so.*
diff --git a/meta-openembedded/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0002-Fix-assumed-signed-char.patch b/meta-openembedded/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0002-Fix-assumed-signed-char.patch
index 2ee0a39126..1c4b871bb6 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0002-Fix-assumed-signed-char.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0002-Fix-assumed-signed-char.patch
@@ -11,7 +11,7 @@ GCC treats char as unsigned resulting in compile errors:
Fix this by specifying signed char.
-Upstream-Status: Accepted [https://github.com/pboettch/json-schema-validator/commit/491ac44026e08f31790f5cacffa62e168bb35e32]
+Upstream-Status: Backport [https://github.com/pboettch/json-schema-validator/commit/491ac44026e08f31790f5cacffa62e168bb35e32]
Signed-off-by: Parian Golchin <Parian.Golchin@iris-sensing.com>
---
diff --git a/meta-openembedded/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0003-For-root-value-use-empty-pointer.patch b/meta-openembedded/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0003-For-root-value-use-empty-pointer.patch
index e0d0cf8ce9..eac997ae58 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0003-For-root-value-use-empty-pointer.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0003-For-root-value-use-empty-pointer.patch
@@ -3,7 +3,7 @@ From: Sven Fink <sven.fink@wipotec.com>
Date: Fri, 13 Jan 2023 09:15:42 +0100
Subject: [PATCH 3/3] For root value, use empty pointer
-Upstream-Status: Accepted [https://github.com/pboettch/json-schema-validator/commit/59c9d6200bf3cd54b4fc717ec1660c91eddb4d1a]
+Upstream-Status: Backport [https://github.com/pboettch/json-schema-validator/commit/59c9d6200bf3cd54b4fc717ec1660c91eddb4d1a]
Signed-off-by: Parian Golchin <Parian.Golchin@iris-sensing.com>
---
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-18.17/oe-npm-cache b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-20.5/oe-npm-cache
index f596207648..f596207648 100755
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-18.17/oe-npm-cache
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-20.5/oe-npm-cache
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_18.17.bb b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_20.5.bb
index a61dd5018f..a61dd5018f 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_18.17.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_20.5.bb
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch
index 66e10a0d00..0178cec777 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch
@@ -12,7 +12,7 @@ https://git.openembedded.org/meta-openembedded/commit/?id=feeb172d1a8bf010490d22
Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
---
- node.gyp | 1 +
+ node.gyp | 3 +
tools/v8_gypfiles/v8.gyp | 5 +++++
2 files changed, 6 insertions(+)
@@ -28,6 +28,23 @@ index e8e1d9f9..e60ccc10 100644
'<(node_mksnapshot_exec)',
'<(node_snapshot_main)',
],
+@@ -935,6 +935,7 @@
+ 'action_name': 'node_js2c',
+ 'process_outputs_as_sources': 1,
+ 'inputs': [
++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
+ '<(node_js2c_exec)',
+ '<@(library_files)',
+ '<@(deps_files)',
+@@ -944,6 +945,7 @@
+ '<(SHARED_INTERMEDIATE_DIR)/node_javascript.cc',
+ ],
+ 'action': [
++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
+ '<(node_js2c_exec)',
+ '<@(_outputs)',
+ 'lib',
+
diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp
index 42e26cd9..bc721991 100644
--- a/tools/v8_gypfiles/v8.gyp
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch
index c9a522d2e2..5af87d866e 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch
@@ -1,6 +1,6 @@
From dc3652c0abcdf8573fd044907b19d8eda7ca1124 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 20 Oct 2021 12:49:58 -0700
+Date: Mon, 3 Jul 2023 12:33:16 +0000
Subject: [PATCH] [liftoff] Correct function signatures
Fixes builds on mips where clang reports an error
@@ -13,16 +13,15 @@ Upstream-Status: Submitted [https://chromium-review.googlesource.com/c/v8/v8/+/3
Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
---
deps/v8/src/wasm/baseline/liftoff-assembler.h | 6 +++---
- deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h | 2 +-
deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h | 2 +-
- .../src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h | 2 +-
- 4 files changed, 6 insertions(+), 6 deletions(-)
+ deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64.h | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/deps/v8/src/wasm/baseline/liftoff-assembler.h b/deps/v8/src/wasm/baseline/liftoff-assembler.h
-index 22c7f73a..db4cb168 100644
+index aef63c64..f2a11b01 100644
--- a/deps/v8/src/wasm/baseline/liftoff-assembler.h
+++ b/deps/v8/src/wasm/baseline/liftoff-assembler.h
-@@ -646,7 +646,7 @@ class LiftoffAssembler : public TurboAssembler {
+@@ -717,7 +717,7 @@ class LiftoffAssembler : public MacroAssembler {
void FinishCall(const ValueKindSig*, compiler::CallDescriptor*);
// Move {src} into {dst}. {src} and {dst} must be different.
@@ -31,7 +30,7 @@ index 22c7f73a..db4cb168 100644
// Parallel register move: For a list of tuples <dst, src, kind>, move the
// {src} register of kind {kind} into {dst}. If {src} equals {dst}, ignore
-@@ -795,8 +795,8 @@ class LiftoffAssembler : public TurboAssembler {
+@@ -884,8 +884,8 @@ class LiftoffAssembler : public MacroAssembler {
inline void MoveStackValue(uint32_t dst_offset, uint32_t src_offset,
ValueKind);
@@ -42,24 +41,11 @@ index 22c7f73a..db4cb168 100644
inline void Spill(int offset, LiftoffRegister, ValueKind);
inline void Spill(int offset, WasmValue);
-diff --git a/deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h b/deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h
-index c76fd2f4..0fffe231 100644
---- a/deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h
-+++ b/deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h
-@@ -661,7 +661,7 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
- pinned = pinned | LiftoffRegList{dst_op.rm(), src};
- LiftoffRegister tmp = GetUnusedRegister(src.reg_class(), pinned);
- // Save original value.
-- Move(tmp, src, type.value_type());
-+ Move(tmp, src, type.value_type().kind());
-
- src = tmp;
- pinned.set(tmp);
diff --git a/deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h b/deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h
-index 36413545..48207337 100644
+index 96cba24c..53e1842d 100644
--- a/deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h
+++ b/deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h
-@@ -593,7 +593,7 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
+@@ -592,7 +592,7 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
pinned.set(dst_op.rm());
LiftoffRegister tmp = GetUnusedRegister(src.reg_class(), pinned);
// Save original value.
@@ -68,11 +54,11 @@ index 36413545..48207337 100644
src = tmp;
pinned.set(tmp);
-diff --git a/deps/v8/src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h b/deps/v8/src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h
-index 642a7d2a..56ffcc2a 100644
---- a/deps/v8/src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h
-+++ b/deps/v8/src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h
-@@ -589,7 +589,7 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
+diff --git a/deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64.h b/deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64.h
+index 1d6ae09e..397e82b2 100644
+--- a/deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64.h
++++ b/deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64.h
+@@ -286,7 +286,7 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
pinned.set(dst_op.rm());
LiftoffRegister tmp = GetUnusedRegister(src.reg_class(), pinned);
// Save original value.
@@ -82,4 +68,4 @@ index 642a7d2a..56ffcc2a 100644
src = tmp;
pinned.set(tmp);
--
-2.34.1
+2.40.0
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-mips-Use-32bit-cast-for-operand-on-mips32.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-mips-Use-32bit-cast-for-operand-on-mips32.patch
deleted file mode 100644
index a0242d8e18..0000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-mips-Use-32bit-cast-for-operand-on-mips32.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From e65dde8db17da5acddeef7eb9316199c4e5e0811 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 19 Apr 2022 12:40:25 -0700
-Subject: [PATCH] mips: Use 32bit cast for operand on mips32
-
-Fixes
-deps/v8/src/compiler/backend/mips/code-generator-mips.cc: In member function 'void v8::internal::compiler::CodeGenerator::AssembleReturn(v8::internal::compiler::InstructionOperand*)':
-../deps/v8/src/compiler/backend/mips/code-generator-mips.cc:4233:48: error: call of overloaded 'Operand(int64_t)' is ambiguous
- 4233 | Operand(static_cast<int64_t>(0)));
- | ^
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- deps/v8/src/compiler/backend/mips/code-generator-mips.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/deps/v8/src/compiler/backend/mips/code-generator-mips.cc b/deps/v8/src/compiler/backend/mips/code-generator-mips.cc
-index 2b8197e..b226140 100644
---- a/deps/v8/src/compiler/backend/mips/code-generator-mips.cc
-+++ b/deps/v8/src/compiler/backend/mips/code-generator-mips.cc
-@@ -4230,7 +4230,7 @@ void CodeGenerator::AssembleReturn(InstructionOperand* additional_pop_count) {
- } else if (FLAG_debug_code) {
- __ Assert(eq, AbortReason::kUnexpectedAdditionalPopValue,
- g.ToRegister(additional_pop_count),
-- Operand(static_cast<int64_t>(0)));
-+ Operand(static_cast<int32_t>(0)));
- }
- }
- // Functions with JS linkage have at least one parameter (the receiver).
---
-2.36.0
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch
deleted file mode 100644
index 529381842f..0000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-
-https://github.com/v8/v8/commit/878ccb33bd3cf0e6dc018ff8d15843f585ac07be
-
-did some automated cleanups but it missed big-endian code.
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/deps/v8/src/runtime/runtime-utils.h
-+++ b/deps/v8/src/runtime/runtime-utils.h
-@@ -126,7 +126,7 @@ static inline ObjectPair MakePair(Object
- #if defined(V8_TARGET_LITTLE_ENDIAN)
- return x.ptr() | (static_cast<ObjectPair>(y.ptr()) << 32);
- #elif defined(V8_TARGET_BIG_ENDIAN)
-- return y->ptr() | (static_cast<ObjectPair>(x->ptr()) << 32);
-+ return y.ptr() | (static_cast<ObjectPair>(x.ptr()) << 32);
- #else
- #error Unknown endianness
- #endif
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/mips-less-memory.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/mips-less-memory.patch
deleted file mode 100644
index 16776cb762..0000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/mips-less-memory.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Description: mksnapshot uses too much memory on 32-bit mipsel
-Author: Jérémy Lal <kapouer@melix.org>
-Last-Update: 2020-06-03
-Forwarded: https://bugs.chromium.org/p/v8/issues/detail?id=10586
-
-This ensures that we reserve 500M instead of 2G range for codegen
-ensures that qemu-mips can allocate such large ranges
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Imported from debian https://salsa.debian.org/js-team/nodejs/-/blob/master-12.x/debian/patches/mips-less-memory.patch
-https://buildd.debian.org/status/fetch.php?pkg=nodejs&arch=mipsel&ver=12.17.0~dfsg-2&stamp=1591050388&raw=0
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/deps/v8/src/common/globals.h
-+++ b/deps/v8/src/common/globals.h
-@@ -224,7 +224,7 @@ constexpr size_t kMinimumCodeRangeSize =
- constexpr size_t kMinExpectedOSPageSize = 64 * KB; // OS page on PPC Linux
- #elif V8_TARGET_ARCH_MIPS
- constexpr bool kPlatformRequiresCodeRange = false;
--constexpr size_t kMaximalCodeRangeSize = 2048LL * MB;
-+constexpr size_t kMaximalCodeRangeSize = 512 * MB;
- constexpr size_t kMinimumCodeRangeSize = 0 * MB;
- constexpr size_t kMinExpectedOSPageSize = 4 * KB; // OS page.
- #else
---- a/deps/v8/src/codegen/mips/constants-mips.h
-+++ b/deps/v8/src/codegen/mips/constants-mips.h
-@@ -140,7 +140,7 @@ const uint32_t kLeastSignificantByteInIn
- namespace v8 {
- namespace internal {
-
--constexpr size_t kMaxPCRelativeCodeRangeInMB = 4096;
-+constexpr size_t kMaxPCRelativeCodeRangeInMB = 1024;
-
- // -----------------------------------------------------------------------------
- // Registers and FPURegisters.
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/run-ptest b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/run-ptest
index 07a8f2a99c..e82f373626 100755
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/run-ptest
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/run-ptest
@@ -1,3 +1,8 @@
#!/bin/sh
./cctest
+if [ $? = 0 ]; then
+ echo "PASS: nodejs"
+else
+ echo "FAIL: nodejs"
+fi
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_18.17.1.bb b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.5.1.bb
index ee5e848bf8..6bb0f7fabd 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_18.17.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.5.1.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
HOMEPAGE = "http://nodejs.org"
LICENSE = "MIT & ISC & BSD-2-Clause & BSD-3-Clause & Artistic-2.0 & Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bc1f9ebe76be76f163e3b675303ad9cd"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=059ecf3a6f87111685e51b611b9563e5"
CVE_PRODUCT = "nodejs node.js"
@@ -22,11 +22,8 @@ COMPATIBLE_HOST:powerpc = "null"
SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
file://0001-Disable-running-gyp-files-for-bundled-deps.patch \
file://0004-v8-don-t-override-ARM-CFLAGS.patch \
- file://big-endian.patch \
- file://mips-less-memory.patch \
file://system-c-ares.patch \
file://0001-liftoff-Correct-function-signatures.patch \
- file://0001-mips-Use-32bit-cast-for-operand-on-mips32.patch \
file://run-ptest \
"
@@ -39,7 +36,7 @@ SRC_URI:append:toolchain-clang:x86 = " \
SRC_URI:append:toolchain-clang:powerpc64le = " \
file://0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch \
"
-SRC_URI[sha256sum] = "f215cf03d0f00f07ac0b674c6819f804c1542e16f152da04980022aeccf5e65a"
+SRC_URI[sha256sum] = "439c71aa2f38c2861657bfa538e99191a571258066cbfd4548586049c8134190"
S = "${WORKDIR}/node-v${PV}"
@@ -148,8 +145,6 @@ do_configure () {
# $TARGET_ARCH settings don't match --dest-cpu settings
python3 configure.py --verbose --prefix=${prefix} \
--shared-openssl \
- --without-dtrace \
- --without-etw \
--dest-cpu="${@map_nodejs_arch(d.getVar('TARGET_ARCH'), d)}" \
--dest-os=linux \
--libdir=${baselib} \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-Makefile.am-do-not-compile-the-code-which-was-genera.patch b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-Makefile.am-do-not-compile-the-code-which-was-genera.patch
new file mode 100644
index 0000000000..896a568e19
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-Makefile.am-do-not-compile-the-code-which-was-genera.patch
@@ -0,0 +1,106 @@
+From 62b2fd0a150133b6439f6537cb1762d35f5790ee Mon Sep 17 00:00:00 2001
+From: Xiangyu Chen <xiangyu.chen@windriver.com>
+Date: Fri, 31 Mar 2023 16:02:50 +0800
+Subject: [PATCH] Makefile.am: do not compile the code which was generated from
+ test-full.proto in protobuf-c-native
+
+Those code was auto generated by protoc command with test-full.proto, those code are not compatible
+with protobuf 4.22.x, so temporarily disable compile those code until protobuf-c upstream adapt
+the test-full.proto with latest version protobuf.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+---
+ Makefile.am | 75 -----------------------------------------------------
+ 1 file changed, 75 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index ff12664..7412aef 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -136,81 +136,6 @@ else
+
+ LOG_COMPILER = $(VALGRIND)
+
+-check_PROGRAMS += \
+- t/generated-code/test-generated-code \
+- t/generated-code2/test-generated-code2 \
+- t/generated-code3/test-generated-code3 \
+- t/version/version
+-
+-TESTS += \
+- t/generated-code/test-generated-code \
+- t/generated-code2/test-generated-code2 \
+- t/generated-code3/test-generated-code3 \
+- t/version/version
+-
+-t_generated_code_test_generated_code_SOURCES = \
+- t/generated-code/test-generated-code.c \
+- t/test.pb-c.c
+-t_generated_code_test_generated_code_LDADD = \
+- protobuf-c/libprotobuf-c.la
+-
+-t_generated_code2_test_generated_code2_SOURCES = \
+- t/generated-code2/test-generated-code2.c \
+- t/test-full.pb-c.c \
+- t/test-optimized.pb-c.c
+-t_generated_code2_test_generated_code2_LDADD = \
+- protobuf-c/libprotobuf-c.la
+-
+-t_generated_code3_test_generated_code3_CPPFLAGS = \
+- -DPROTO3
+-
+-t_generated_code3_test_generated_code3_SOURCES = \
+- t/generated-code/test-generated-code.c \
+- t/test-proto3.pb-c.c
+-
+-t_generated_code3_test_generated_code3_LDADD = \
+- protobuf-c/libprotobuf-c.la
+-
+-noinst_PROGRAMS += \
+- t/generated-code2/cxx-generate-packed-data
+-
+-t_generated_code2_cxx_generate_packed_data_SOURCES = \
+- t/generated-code2/cxx-generate-packed-data.cc \
+- t/test-full.pb.cc \
+- protobuf-c/protobuf-c.pb.cc
+-$(t_generated_code2_cxx_generate_packed_data_OBJECTS): t/test-full.pb.h
+-t_generated_code2_cxx_generate_packed_data_CXXFLAGS = \
+- $(AM_CXXFLAGS) \
+- $(protobuf_CFLAGS)
+-t_generated_code2_cxx_generate_packed_data_LDADD = \
+- $(protobuf_LIBS)
+-
+-t/test.pb-c.c t/test.pb-c.h: $(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) $(top_srcdir)/t/test.proto
+- $(AM_V_GEN)@PROTOC@ --plugin=protoc-gen-c=$(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) -I$(top_srcdir) --c_out=$(top_builddir) $(top_srcdir)/t/test.proto
+-
+-t/test-optimized.pb-c.c t/test-optimized.pb-c.h: $(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) $(top_srcdir)/t/test-optimized.proto
+- $(AM_V_GEN)@PROTOC@ --plugin=protoc-gen-c=$(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) -I$(top_srcdir) --c_out=$(top_builddir) $(top_srcdir)/t/test-optimized.proto
+-
+-t/test-full.pb-c.c t/test-full.pb-c.h: $(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) $(top_srcdir)/t/test-full.proto
+- $(AM_V_GEN)@PROTOC@ --plugin=protoc-gen-c=$(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) -I$(top_srcdir) --c_out=$(top_builddir) $(top_srcdir)/t/test-full.proto
+-
+-t/test-full.pb.cc t/test-full.pb.h: @PROTOC@ $(top_srcdir)/t/test-full.proto
+- $(AM_V_GEN)@PROTOC@ -I$(top_srcdir) --cpp_out=$(top_builddir) $(top_srcdir)/t/test-full.proto
+-
+-t/test-proto3.pb-c.c t/test-proto3.pb-c.h: $(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) $(top_srcdir)/t/test-proto3.proto
+- $(AM_V_GEN)@PROTOC@ --plugin=protoc-gen-c=$(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) -I$(top_srcdir) --c_out=$(top_builddir) $(top_srcdir)/t/test-proto3.proto
+-
+-t/generated-code2/test-full-cxx-output.inc: t/generated-code2/cxx-generate-packed-data$(EXEEXT)
+- $(AM_V_GEN)$(top_builddir)/t/generated-code2/cxx-generate-packed-data$(EXEEXT) > $(top_builddir)/t/generated-code2/test-full-cxx-output.inc
+-
+-BUILT_SOURCES += \
+- t/test.pb-c.c t/test.pb-c.h \
+- t/test-full.pb-c.c t/test-full.pb-c.h \
+- t/test-optimized.pb-c.c t/test-optimized.pb-c.h \
+- t/test-full.pb.cc t/test-full.pb.h \
+- t/test-proto3.pb-c.c t/test-proto3.pb-c.h \
+- t/generated-code2/test-full-cxx-output.inc
+-
+ t_version_version_SOURCES = \
+ t/version/version.c
+ t_version_version_LDADD = \
+--
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb
index d724287d66..1d9ca9daae 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb
@@ -12,8 +12,10 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=9f725889e0d77383e26cb42b0b62cea2"
DEPENDS = "protobuf-native protobuf"
-SRC_URI = "git://github.com/protobuf-c/protobuf-c.git;branch=master;protocol=https"
-SRCREV = "abc67a11c6db271bedbb9f58be85d6f4e2ea8389"
+SRC_URI = "git://github.com/protobuf-c/protobuf-c.git;branch=next;protocol=https"
+SRC_URI:append:class-native = " file://0001-Makefile.am-do-not-compile-the-code-which-was-genera.patch"
+
+SRCREV = "ba4c55f0e686e0252c451f7163ab529e4b36831a"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Fix-linking-error-with-ld-gold.patch b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Fix-linking-error-with-ld-gold.patch
deleted file mode 100644
index 2bc44c898b..0000000000
--- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Fix-linking-error-with-ld-gold.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From a91130bb95528743a3f7253f8fe945b7505047d5 Mon Sep 17 00:00:00 2001
-From: Kyungjik Min <dp.min@lge.com>
-Date: Mon, 28 Dec 2020 15:56:09 +0900
-Subject: [PATCH] Fix linking error with ld-gold
-
-:Release Notes:
-
-:Detailed Notes:
-https://github.com/protocolbuffers/protobuf/issues/6113
-There's a bug in the CMake build leading it to not use the version
-scripts, which hides the problem (because all symbols are now public)
-but doesn't solve it properly.
-
-:Testing Performed:
-
-:QA Notes:
-N/A
-
-:Issues Addressed:
-[PLAT-130467] Fix build error for libgoogleassistant with latest
- protobuf-3.11.4
-
----
-Upstream-Status: Pending
-
- src/libprotobuf-lite.map | 2 ++
- src/libprotobuf.map | 2 ++
- src/libprotoc.map | 2 ++
- 3 files changed, 6 insertions(+)
-
-diff --git a/src/libprotobuf-lite.map b/src/libprotobuf-lite.map
-index 391554669..a1853ca6c 100644
---- a/src/libprotobuf-lite.map
-+++ b/src/libprotobuf-lite.map
-@@ -3,6 +3,8 @@
- extern "C++" {
- *google*;
- };
-+ scc_info_*;
-+ descriptor_table_*;
-
- local:
- *;
-diff --git a/src/libprotobuf.map b/src/libprotobuf.map
-index 391554669..a1853ca6c 100644
---- a/src/libprotobuf.map
-+++ b/src/libprotobuf.map
-@@ -3,6 +3,8 @@
- extern "C++" {
- *google*;
- };
-+ scc_info_*;
-+ descriptor_table_*;
-
- local:
- *;
-diff --git a/src/libprotoc.map b/src/libprotoc.map
-index 391554669..a1853ca6c 100644
---- a/src/libprotoc.map
-+++ b/src/libprotoc.map
-@@ -3,6 +3,8 @@
- extern "C++" {
- *google*;
- };
-+ scc_info_*;
-+ descriptor_table_*;
-
- local:
- *;
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch
index 36c3c597ac..7c4bf260eb 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch
@@ -30,7 +30,7 @@ Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/examples/Makefile b/examples/Makefile
-index 1c7ec8d63..85f591231 100644
+index ef7a4ef58..7206e14e1 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -2,6 +2,8 @@
@@ -42,17 +42,20 @@ index 1c7ec8d63..85f591231 100644
all: cpp java python
cpp: add_person_cpp list_people_cpp
-@@ -40,11 +42,11 @@ protoc_middleman_dart: addressbook.proto
+@@ -41,11 +43,11 @@ protoc_middleman_dart: addressbook.proto
add_person_cpp: add_person.cc protoc_middleman
pkg-config --cflags protobuf # fails if protobuf is not installed
-- c++ -std=c++11 add_person.cc addressbook.pb.cc -o add_person_cpp `pkg-config --cflags --libs protobuf`
-+ $(CXX) $(CXXFLAGS) $(LDFLAGS) ../src/google/protobuf/.libs/timestamp.pb.o $(PROTOBUF) add_person.cc addressbook.pb.cc -o add_person_cpp
+- c++ -std=c++14 add_person.cc addressbook.pb.cc -o add_person_cpp `pkg-config --cflags --libs protobuf`
++ $(CXX) $(CXXFLAGS) $(LDFLAGS) ../src/google/protobuf/.libs/timestamp.pb.o $(PROTOBUF) add_person.cc addressbook.pb.cc -o add_person_cpp #$(CXX) -std=c++17 $(PROTOBUF) add_person.cc addressbook.pb.cc -o add_person_cpp
list_people_cpp: list_people.cc protoc_middleman
pkg-config --cflags protobuf # fails if protobuf is not installed
-- c++ -std=c++11 list_people.cc addressbook.pb.cc -o list_people_cpp `pkg-config --cflags --libs protobuf`
-+ $(CXX) $(CXXFLAGS) $(LDFLAGS) ../src/google/protobuf/.libs/timestamp.pb.o $(PROTOBUF) list_people.cc addressbook.pb.cc -o list_people_cpp
+- c++ -std=c++14 list_people.cc addressbook.pb.cc -o list_people_cpp `pkg-config --cflags --libs protobuf`
++ $(CXX) $(CXXFLAGS) $(LDFLAGS) ../src/google/protobuf/.libs/timestamp.pb.o $(PROTOBUF) list_people.cc addressbook.pb.cc -o list_people_cpp #$(CXX) -std=c++17 $(PROTOBUF) list_people.cc addressbook.pb.cc -o list_people_cpp
add_person_dart: add_person.dart protoc_middleman_dart
+--
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.21.12.bb b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_4.23.4.bb
index d95e1c20f3..06d73d648f 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.21.12.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_4.23.4.bb
@@ -7,15 +7,14 @@ SECTION = "console/tools"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=37b5762e07f0af8c74ce80a8bda4266b"
-DEPENDS = "zlib"
+DEPENDS = "zlib abseil-cpp"
DEPENDS:append:class-target = " protobuf-native"
-SRCREV = "f0dc78d7e6e331b8c6bb2d5283e06aa26883ca7c"
+SRCREV = "2c5fa078d8e86e5f4bd34e6f4c9ea9e8d7d4d44a"
-SRC_URI = "git://github.com/protocolbuffers/protobuf.git;branch=21.x;protocol=https \
+SRC_URI = "gitsm://github.com/protocolbuffers/protobuf.git;branch=23.x;protocol=https \
file://run-ptest \
file://0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch \
- file://0001-Fix-linking-error-with-ld-gold.patch \
"
SRC_URI:append:mips:toolchain-clang = " file://0001-Fix-build-on-mips-clang.patch "
SRC_URI:append:mipsel:toolchain-clang = " file://0001-Fix-build-on-mips-clang.patch "
@@ -35,6 +34,7 @@ EXTRA_OECMAKE += "\
-Dprotobuf_BUILD_LIBPROTOC=ON \
-Dprotobuf_BUILD_TESTS=OFF \
-Dprotobuf_BUILD_EXAMPLES=OFF \
+ -Dprotobuf_ABSL_PROVIDER="package" \
"
TEST_SRC_DIR = "examples"
@@ -50,9 +50,18 @@ do_compile_ptest() {
cp ${S}/${TEST_SRC_DIR}/*.proto "${B}/${TEST_SRC_DIR}/"
cp ${S}/${TEST_SRC_DIR}/*.py "${B}/${TEST_SRC_DIR}/"
cp ${S}/${TEST_SRC_DIR}/Makefile "${B}/${TEST_SRC_DIR}/"
+ # Adapt protobuf.pc
sed -e 's|libdir=|libdir=${PKG_CONFIG_SYSROOT_DIR}|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
- sed -e 's|Cflags:|Cflags: -I${S}/src|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+ sed -e 's|Cflags:|Cflags: -I${S}/src |' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+ sed -e 's|Cflags:|Cflags: -I${WORKDIR}/recipe-sysroot${includedir} |' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
sed -e 's|Libs:|Libs: -L${B}|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+ sed -e 's|Libs:|Libs: -L${WORKDIR}/recipe-sysroot/usr/lib |' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+ sed -e 's|Libs:|Libs: -labsl_log_internal_check_op |' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+ sed -e 's|Libs:|Libs: -labsl_log_internal_message |' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+ # Adapt uf8_range.pc
+ cp "${B}/third_party/utf8_range/utf8_range.pc" "${B}/${TEST_SRC_DIR}/utf8_range.pc"
+ sed -e 's|libdir=|libdir=${PKG_CONFIG_SYSROOT_DIR}|' -i "${B}/${TEST_SRC_DIR}/utf8_range.pc"
+ sed -e 's|Libs:|Libs= -L${B}/third_party/utf8_range |' -i "${B}/${TEST_SRC_DIR}/utf8_range.pc"
# Until out-of-tree build of examples is supported, we have to use this approach
sed -e 's|../src/google/protobuf/.libs/timestamp.pb.o|${B}/CMakeFiles/libprotobuf.dir/src/google/protobuf/timestamp.pb.cc.o|' -i "${B}/${TEST_SRC_DIR}/Makefile"
export PKG_CONFIG_PATH="${B}/${TEST_SRC_DIR}"
@@ -92,6 +101,9 @@ PACKAGE_BEFORE_PN = "${PN}-compiler ${PN}-lite"
FILES:${PN}-compiler = "${bindir} ${libdir}/libprotoc${SOLIBS}"
FILES:${PN}-lite = "${libdir}/libprotobuf-lite${SOLIBS}"
+# CMake requires binaries to exist in sysroot, even if they have wrong architecture.
+SYSROOT_DIRS += "${bindir}"
+
RDEPENDS:${PN}-compiler = "${PN}"
RDEPENDS:${PN}-dev += "${PN}-compiler"
RDEPENDS:${PN}-ptest = "bash ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3-protobuf', '', d)}"
diff --git a/meta-openembedded/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3/0001-cmake-fix-when-cross-compiling.patch b/meta-openembedded/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3/0001-cmake-fix-when-cross-compiling.patch
new file mode 100644
index 0000000000..ce12d4270a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3/0001-cmake-fix-when-cross-compiling.patch
@@ -0,0 +1,68 @@
+From cb79329010d73e36ce64830914005f1c17f8f53c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= <peron.clem@gmail.com>
+Date: Sat, 23 Sep 2023 11:32:18 +0200
+Subject: [PATCH] cmake: fix when cross compiling
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+In order to generate protobuf files CMake need to use the protoc
+and grpc-cpp-plugin compiled for the host architecture.
+
+Unfortunately, the protoc and grpc-cpp-plugin in the gRPC CMake
+configuration file are the one for the target architecture.
+
+Fix this by properly finding the correct executable when
+CMake is cross compiling.
+
+Signed-off-by: Clément Péron <peron.clem@gmail.com>
+---
+Upstream-Status: Pending
+
+ CMakeLists.txt | 28 ++++++++++++++++++++++++++--
+ 1 file changed, 26 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5aa1310..80ebad2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -120,10 +120,34 @@ if(Protobuf_PROTOC_EXECUTABLE)
+ endif()
+ endif()
+
++# When cross compiling we look for the native protoc compiler
++# overwrite protobuf::protoc with the proper protoc
++if(CMAKE_CROSSCOMPILING)
++ find_program(Protobuf_PROTOC_EXECUTABLE REQUIRED NAMES protoc)
++ if(NOT TARGET protobuf::protoc)
++ add_executable(protobuf::protoc IMPORTED)
++ endif()
++ set_target_properties(protobuf::protoc PROPERTIES
++ IMPORTED_LOCATION "${Protobuf_PROTOC_EXECUTABLE}")
++endif()
++
+ find_package(gRPC QUIET)
+-if(gRPC_FOUND AND TARGET gRPC::grpc AND TARGET gRPC::grpc_cpp_plugin)
++if(gRPC_FOUND AND TARGET gRPC::grpc)
++ # When cross compiling we look for the native grpc_cpp_plugin
++ if(CMAKE_CROSSCOMPILING)
++ find_program(GRPC_CPP_PLUGIN REQUIRED NAMES grpc_cpp_plugin)
++ if(NOT TARGET gRPC::grpc_cpp_plugin)
++ add_executable(gRPC::grpc_cpp_plugin IMPORTED)
++ endif()
++ set_target_properties(gRPC::grpc_cpp_plugin PROPERTIES
++ IMPORTED_LOCATION "${GRPC_CPP_PLUGIN}")
++ elseif(TARGET gRPC::grpc_cpp_plugin)
++ get_target_property(GRPC_CPP_PLUGIN gRPC::grpc_cpp_plugin LOCATION)
++ else()
++ message(FATAL_ERROR "Found gRPC but no gRPC CPP plugin defined")
++ endif()
++
+ set(GRPC_LIBRARIES gRPC::gpr gRPC::grpc gRPC::grpc++)
+- get_target_property(GRPC_CPP_PLUGIN gRPC::grpc_cpp_plugin LOCATION)
+ get_target_property(GRPC_INCLUDE_DIR gRPC::grpc INTERFACE_INCLUDE_DIRECTORIES)
+ else()
+ include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindGRPC.cmake)
+--
+2.39.3 (Apple Git-145)
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3_0.14.3.bb b/meta-openembedded/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3_0.15.3.bb
index 71744026da..e8299bab5f 100644
--- a/meta-openembedded/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3_0.14.3.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3_0.15.3.bb
@@ -4,8 +4,12 @@ HOMEPAGE = "https://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=eae7da6a2cd1788a5cf8a9f838cf6450"
-SRC_URI += "git://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3.git;branch=master;protocol=https"
-SRCREV = "5e2884f36276e44f683fa02fca39807716fdbc16"
+SRC_URI = " \
+ git://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3.git;branch=master;protocol=https \
+ file://0001-cmake-fix-when-cross-compiling.patch \
+"
+
+SRCREV = "e31ac4d4caa55fa662e207150ba40f8151b7ad96"
inherit cmake
diff --git a/meta-openembedded/meta-oe/recipes-extended/hwloc/files/CVE-2022-47022.patch b/meta-openembedded/meta-oe/recipes-extended/hwloc/files/CVE-2022-47022.patch
deleted file mode 100644
index c981b68b70..0000000000
--- a/meta-openembedded/meta-oe/recipes-extended/hwloc/files/CVE-2022-47022.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From ac1f8db9a0790d2bf153711ff4cbf6101f89aace Mon Sep 17 00:00:00 2001
-From: Brice Goglin <Brice.Goglin@inria.fr>
-Date: Thu, 31 Aug 2023 09:28:34 +0000
-Subject: [PATCH] linux: handle glibc cpuset allocation failures
-
-Closes #544
-CVE-2022-47022
-
-Signed-off-by: Brice Goglin <Brice.Goglin@inria.fr>
-
-CVE: CVE-2022-47022
-
-Upstream-Status: Backport[https://github.com/open-mpi/hwloc/commit/ac1f8db9a0790d2bf153711ff4cbf6101f89aace]
-
-Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
----
- hwloc/topology-linux.c | 15 ++++++++++++++-
- 1 file changed, 14 insertions(+), 1 deletion(-)
-
-diff --git a/hwloc/topology-linux.c b/hwloc/topology-linux.c
-index c7b63d2..fd6745e 100644
---- a/hwloc/topology-linux.c
-+++ b/hwloc/topology-linux.c
-@@ -870,6 +870,8 @@ hwloc_linux_set_tid_cpubind(hwloc_topology_t topology __hwloc_attribute_unused,
-
- setsize = CPU_ALLOC_SIZE(last+1);
- plinux_set = CPU_ALLOC(last+1);
-+ if (!plinux_set)
-+ return -1;
-
- CPU_ZERO_S(setsize, plinux_set);
- hwloc_bitmap_foreach_begin(cpu, hwloc_set)
-@@ -950,7 +952,10 @@ hwloc_linux_find_kernel_nr_cpus(hwloc_topology_t topology)
- while (1) {
- cpu_set_t *set = CPU_ALLOC(nr_cpus);
- size_t setsize = CPU_ALLOC_SIZE(nr_cpus);
-- int err = sched_getaffinity(0, setsize, set); /* always works, unless setsize is too small */
-+ int err;
-+ if (!set)
-+ return -1; /* caller will return an error, and we'll try again later */
-+ err = sched_getaffinity(0, setsize, set); /* always works, unless setsize is too small */
- CPU_FREE(set);
- nr_cpus = setsize * 8; /* that's the value that was actually tested */
- if (!err)
-@@ -978,8 +983,12 @@ hwloc_linux_get_tid_cpubind(hwloc_topology_t topology __hwloc_attribute_unused,
-
- /* find the kernel nr_cpus so as to use a large enough cpu_set size */
- kernel_nr_cpus = hwloc_linux_find_kernel_nr_cpus(topology);
-+ if (kernel_nr_cpus < 0)
-+ return -1;
- setsize = CPU_ALLOC_SIZE(kernel_nr_cpus);
- plinux_set = CPU_ALLOC(kernel_nr_cpus);
-+ if (!plinux_set)
-+ return -1;
-
- err = sched_getaffinity(tid, setsize, plinux_set);
-
-@@ -1333,6 +1342,8 @@ hwloc_linux_set_thread_cpubind(hwloc_topology_t topology, pthread_t tid, hwloc_c
-
- setsize = CPU_ALLOC_SIZE(last+1);
- plinux_set = CPU_ALLOC(last+1);
-+ if (!plinux_set)
-+ return -1;
-
- CPU_ZERO_S(setsize, plinux_set);
- hwloc_bitmap_foreach_begin(cpu, hwloc_set)
-@@ -1424,6 +1435,8 @@ hwloc_linux_get_thread_cpubind(hwloc_topology_t topology, pthread_t tid, hwloc_b
-
- setsize = CPU_ALLOC_SIZE(last+1);
- plinux_set = CPU_ALLOC(last+1);
-+ if (!plinux_set)
-+ return -1;
-
- err = pthread_getaffinity_np(tid, setsize, plinux_set);
- if (err) {
---
-2.35.5
diff --git a/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_2.9.2.bb b/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_2.9.3.bb
index bcb615f73a..d72c5f2be5 100644
--- a/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_2.9.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_2.9.3.bb
@@ -7,10 +7,8 @@ SECTION = "base"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=79179bb373cd55cbd834463a514fb714"
-SRC_URI = "https://www.open-mpi.org/software/${BPN}/v2.9/downloads/${BP}.tar.bz2 \
- file://CVE-2022-47022.patch \
- "
-SRC_URI[sha256sum] = "0a87fdf677f8b00b567d229b6320bf6b25c693edaa43e0b85268d999d6b060cf"
+SRC_URI = "https://www.open-mpi.org/software/${BPN}/v2.9/downloads/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "5c4062ce556f6d3451fc177ffb8673a2120f81df6835dea6a21a90fbdfff0dec"
UPSTREAM_CHECK_URI = "https://www.open-mpi.org/software/hwloc/v2.9/"
inherit autotools bash-completion pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.28.bb b/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_3.03.bb
index 2e7412e823..670bebd37b 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.28.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_3.03.bb
@@ -10,33 +10,28 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c"
inherit autotools gobject-introspection pkgconfig lib_package
-DEPENDS = "autoconf-archive-native glib-2.0 kmod udev"
+DEPENDS = "autoconf-archive-native glib-2.0 kmod udev libnvme"
-SRC_URI = "git://github.com/storaged-project/libblockdev;branch=2.x-branch;protocol=https \
+SRC_URI = "git://github.com/storaged-project/libblockdev;branch=master;protocol=https \
"
-SRCREV = "1412dc51c8f76bf8d9a6008228737db4a9a26d69"
+SRCREV = "38378931d285b91333ff2e2a391b1fe91072f9bb"
S = "${WORKDIR}/git"
-FILES:${PN} += "${libdir}/python2.7/dist-packages ${libdir}/python3.*/site-packages"
+FILES:${PN} += "${libdir}/python3.*/site-packages"
-PACKAGECONFIG ??= "python3 lvm dm kmod parted fs escrow btrfs crypto mdraid kbd mpath nvdimm tools"
+PACKAGECONFIG ??= "python3 lvm lvm-dbus dm parted fs escrow btrfs crypto mdraid mpath nvdimm tools"
PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
-PACKAGECONFIG[python2] = "--with-python2, --without-python2,,python"
PACKAGECONFIG[lvm] = "--with-lvm, --without-lvm, multipath-tools, lvm2"
PACKAGECONFIG[lvm-dbus] = "--with-lvm_dbus, --without-lvm_dbus, multipath-tools, lvm2"
PACKAGECONFIG[dm] = "--with-dm, --without-dm, multipath-tools, lvm2"
-PACKAGECONFIG[dmraid] = "--with-dmraid, --without-dmraid"
-PACKAGECONFIG[kmod] = "--with-kbd, --without-kbd,libbytesize"
PACKAGECONFIG[parted] = "--with-part, --without-part, parted"
PACKAGECONFIG[fs] = "--with-fs, --without-fs, util-linux"
PACKAGECONFIG[doc] = "--with-gtk-doc, --without-gtk-doc, gtk-doc-native"
PACKAGECONFIG[nvdimm] = "--with-nvdimm, --without-nvdimm, ndctl util-linux"
-PACKAGECONFIG[vdo] = "--with-vdo, --without-vdo,libbytesize"
PACKAGECONFIG[escrow] = "--with-escrow, --without-escrow, nss volume-key"
PACKAGECONFIG[btrfs] = "--with-btrfs,--without-btrfs,libbytesize btrfs-tools"
PACKAGECONFIG[crypto] = "--with-crypto,--without-crypto,cryptsetup nss volume-key"
PACKAGECONFIG[mdraid] = "--with-mdraid,--without-mdraid,libbytesize"
-PACKAGECONFIG[kbd] = "--with-kbd,--without-kbd,libbytesize"
PACKAGECONFIG[mpath] = "--with-mpath,--without-mpath, multipath-tools, lvm2"
PACKAGECONFIG[tools] = "--with-tools,--without-tools,libbytesize libdevmapper"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libdeflate/libdeflate_1.18.bb b/meta-openembedded/meta-oe/recipes-extended/libdeflate/libdeflate_1.19.bb
index b1c3371159..11cdb82905 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libdeflate/libdeflate_1.18.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libdeflate/libdeflate_1.19.bb
@@ -9,7 +9,7 @@ DEPENDS += "gzip zlib"
SRC_URI = "git://github.com/ebiggers/libdeflate.git;protocol=https;branch=master"
S = "${WORKDIR}/git"
-SRCREV = "495fee110ebb48a5eb63b75fd67e42b2955871e2"
+SRCREV = "dd12ff2b36d603dbb7fa8838fe7e7176fcbd4f6f"
inherit cmake pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-BundledOSSPUUID.cmake-Pass-CFLAGS-to-compiler.patch b/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-BundledOSSPUUID.cmake-Pass-CFLAGS-to-compiler.patch
new file mode 100644
index 0000000000..ceb8ec34b1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-BundledOSSPUUID.cmake-Pass-CFLAGS-to-compiler.patch
@@ -0,0 +1,35 @@
+From ab031c2b1f8c03e23a8dc8a95c9c9e9b8ce397b2 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Fri, 15 Sep 2023 11:32:11 +0800
+Subject: [PATCH] BundledOSSPUUID.cmake: Pass CFLAGS to compiler
+
+Make sure -fdebug-prefix-map options are passed to compiler to fix the
+below warning:
+ WARNING: minifi-cpp-0.7.0-r0 do_package_qa: QA Issue: File /usr/bin/.debug/minificontroller in package minifi-cpp-dbg contains reference to TMPDIR
+File /usr/bin/.debug/minifi in package minifi-cpp-dbg contains reference to TMPDIR [buildpaths]
+
+Upsteam-Status: Pending
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+Upstream-Status: Pending
+
+ cmake/BundledOSSPUUID.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/BundledOSSPUUID.cmake b/cmake/BundledOSSPUUID.cmake
+index 0cf4bac0..ec57ef51 100644
+--- a/cmake/BundledOSSPUUID.cmake
++++ b/cmake/BundledOSSPUUID.cmake
+@@ -37,7 +37,7 @@ function(use_bundled_osspuuid SOURCE_DIR BINARY_DIR)
+ ENDFOREACH(BYPRODUCT)
+
+ # Build project
+- set(CONFIGURE_COMMAND ac_cv_va_copy=C99 ./configure CFLAGS=-fPIC CXXFLAGS=-fPIC --host=${HOST_SYS}
++ set(CONFIGURE_COMMAND ac_cv_va_copy=C99 ./configure CXXFLAGS=-fPIC --host=${HOST_SYS}
+ --with-cxx --without-perl --without-php --without-pgsql
+ --prefix=${BINARY_DIR}/thirdparty/ossp-uuid-install)
+ string(TOLOWER "${CMAKE_BUILD_TYPE}" build_type)
+--
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-CMakeLists.txt-Pass-the-OPENSSLDIR.patch b/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-CMakeLists.txt-Pass-the-OPENSSLDIR.patch
new file mode 100644
index 0000000000..158fed5594
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-CMakeLists.txt-Pass-the-OPENSSLDIR.patch
@@ -0,0 +1,31 @@
+From 0c5735a0a02e15c3eae94d25fb8756285d121ddb Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Fri, 15 Sep 2023 10:59:05 +0800
+Subject: [PATCH] CMakeLists.txt: Pass the OPENSSLDIR
+
+Fixes:
+ WARNING: minifi-cpp-0.7.0-r0 do_package_qa: QA Issue: File /usr/bin/minificontroller in package minifi-cpp contains reference to TMPDIR
+ File /usr/bin/minifi in package minifi-cpp contains reference to TMPDIR [buildpaths]
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 215a4ef4..6fe8101f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -75,6 +75,7 @@ set(PASSTHROUGH_CMAKE_ARGS -DANDROID_ABI=${ANDROID_ABI}
+ -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=${CMAKE_FIND_ROOT_PATH_MODE_LIBRARY}
+ -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=${CMAKE_FIND_ROOT_PATH_MODE_INCLUDE}
+ -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
++ -DOPENSSLDIR=${OPENSSLDIR}
+ ${OPENSSL_PASSTHROUGH}
+ -G${CMAKE_GENERATOR})
+
+--
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-the-constness-issues-around-autovector-iterator_.patch b/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-the-constness-issues-around-autovector-iterator_.patch
index acb96f40d5..cd837d8de4 100644
--- a/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-the-constness-issues-around-autovector-iterator_.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-the-constness-issues-around-autovector-iterator_.patch
@@ -19,6 +19,8 @@ Pulled By: ltamasi
fbshipit-source-id: 04e82d73bc0c67fb0ded018383af8dfc332050cc
---
+Upstream-Status: Pending
+
thirdparty/rocksdb/util/autovector.h | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)
diff --git a/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb b/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb
index 0986fdec07..b75a336955 100644
--- a/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb
@@ -35,6 +35,8 @@ SRC_URI = "git://github.com/apache/nifi-minifi-cpp.git;branch=master;protocol=ht
file://0001-Do-not-use-LFS64-functions-on-linux-musl.patch \
file://0001-Fix-the-constness-issues-around-autovector-iterator_.patch \
file://0002-Fix-build-with-clang-17.patch \
+ file://0001-CMakeLists.txt-Pass-the-OPENSSLDIR.patch \
+ file://0001-BundledOSSPUUID.cmake-Pass-CFLAGS-to-compiler.patch \
file://minifi.service \
file://systemd-volatile.conf \
file://sysvinit-volatile.conf \
@@ -65,7 +67,10 @@ EXTRA_OECMAKE += " \
-DDISABLE_PYTHON_SCRIPTING=ON \
-DFLEX_TARGET_ARG_COMPILE_FLAGS='--noline' \
-DBISON_TARGET_ARG_COMPILE_FLAGS='--no-lines --file-prefix-map=${S}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}' \
+ -DOPENSSLDIR=${sysconfdir}/libressl \
"
+
+CFLAGS:append = " -fPIC"
EXTRA_OECMAKE:append:toolchain-clang = " -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib"
LDFLAGS:append:toolchain-clang = " -fuse-ld=lld"
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-102_102.15.1.bb b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-102_102.15.1.bb
new file mode 100644
index 0000000000..3a7b51c145
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-102_102.15.1.bb
@@ -0,0 +1,82 @@
+SUMMARY = "SpiderMonkey is Mozilla's JavaScript engine written in C/C++"
+HOMEPAGE = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dc9b6ecd19a14a54a628edaaf23733bf"
+
+SRC_URI = "https://archive.mozilla.org/pub/firefox/releases/${PV}esr/source/firefox-${PV}esr.source.tar.xz \
+ file://0001-Cargo.toml-do-not-abort-on-panic.patch \
+ file://0002-moz.configure-do-not-look-for-llvm-objdump.patch \
+ file://0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch \
+ file://0004-use-asm-sgidefs.h.patch \
+ file://fix-musl-build.patch \
+ file://0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch \
+ file://riscv32.patch \
+ file://0001-util.configure-fix-one-occasionally-reproduced-confi.patch \
+ file://0001-rewrite-cargo-host-linker-in-python3.patch \
+ file://musl-disable-stackwalk.patch \
+ file://0001-add-arm-to-list-of-mozinline.patch \
+ "
+SRC_URI[sha256sum] = "09194fb765953bc6979a35aa8834118c453b9d6060bf1ec4e134551bad740113"
+
+S = "${WORKDIR}/firefox-${PV}"
+
+inherit pkgconfig perlnative python3native rust
+
+DEPENDS += "zlib cargo-native python3 icu"
+DEPENDS:remove:mipsarch = "icu"
+DEPENDS:remove:powerpc:toolchain-clang = "icu"
+
+B = "${WORKDIR}/build"
+
+export PYTHONPATH = "${S}/build:${S}/third_party/python/PyYAML/lib3:${S}/testing/mozbase/mozfile:${S}/python/mozboot:${S}/third_party/python/distro:${S}/testing/mozbase/mozinfo:${S}/config:${S}/testing/mozbase/manifestparser:${S}/third_party/python/pytoml:${S}/testing/mozbase/mozprocess:${S}/third_party/python/six:${S}/python/mozbuild:${S}/python/mozbuild/mozbuild:${S}/python/mach:${S}/third_party/python/jsmin:${S}/python/mozversioncontrol"
+
+export HOST_CC = "${BUILD_CC}"
+export HOST_CXX = "${BUILD_CXX}"
+export HOST_CFLAGS = "${BUILD_CFLAGS}"
+export HOST_CPPFLAGS = "${BUILD_CPPFLAGS}"
+export HOST_CXXFLAGS = "${BUILD_CXXFLAGS}"
+
+export AS = "${CC}"
+
+export RUSTFLAGS
+
+JIT ?= ""
+JIT:mipsarch = "--disable-jit"
+ICU ?= "--with-system-icu"
+ICU:mipsarch = ""
+ICU:powerpc:toolchain-clang = ""
+
+do_configure() {
+ cd ${B}
+ python3 ${S}/configure.py \
+ --enable-project=js \
+ --target=${RUST_HOST_SYS} \
+ --host=${BUILD_SYS} \
+ --prefix=${prefix} \
+ --libdir=${libdir} \
+ --disable-jemalloc \
+ --disable-strip \
+ ${JIT} \
+ ${ICU}
+}
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+}
+
+inherit multilib_script multilib_header
+
+MAJ_VER = "${@oe.utils.trim_version("${PV}", 1)}"
+MULTILIB_SCRIPTS += "${PN}-dev:${bindir}/js${MAJ_VER}-config"
+
+do_install:append() {
+ oe_multilib_header mozjs-${MAJ_VER}/js-config.h
+ sed -e 's@${STAGING_DIR_HOST}@@g' \
+ -i ${D}${bindir}/js${MAJ_VER}-config
+ rm -f ${D}${libdir}/libjs_static.ajs
+ # remove the build path
+ sed -i -e 's@${WORKDIR}@@g' `find ${B} -name Unified_c*.c*`
+}
+
+PACKAGES =+ "lib${BPN}"
+FILES:lib${BPN} += "${libdir}/lib*"
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-Cargo.toml-do-not-abort-on-panic.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-Cargo.toml-do-not-abort-on-panic.patch
new file mode 100644
index 0000000000..e8dfdea1e9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-Cargo.toml-do-not-abort-on-panic.patch
@@ -0,0 +1,32 @@
+From f501f7c02df4f0ff5d5f100d9eeb74cd4d12ea3d Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Fri, 1 Oct 2021 13:00:24 +0200
+Subject: [PATCH] Cargo.toml: do not abort on panic
+
+OE's rust is configured to unwind, and this setting clashes with it/
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+
+---
+ Cargo.toml | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/Cargo.toml b/Cargo.toml
+index a2718b2f35..4e231c30e8 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -59,13 +59,11 @@ opt-level = 1
+ rpath = false
+ lto = false
+ debug-assertions = true
+-panic = "abort"
+
+ [profile.release]
+ opt-level = 2
+ rpath = false
+ debug-assertions = false
+-panic = "abort"
+
+ # Optimize build dependencies, because bindgen and proc macros / style
+ # compilation take more to run than to build otherwise.
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-add-arm-to-list-of-mozinline.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-add-arm-to-list-of-mozinline.patch
new file mode 100644
index 0000000000..83187861c7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-add-arm-to-list-of-mozinline.patch
@@ -0,0 +1,32 @@
+From c5cfb8aa591afd5ad3aedc58fe7f410e89013605 Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Fri, 22 Sep 2023 22:59:59 +0000
+Subject: [PATCH] Backport patch from firefox bugzilla to fix compile error for
+ qemuarm with some armv7ve tunes such as 'armv7vethf' and 'armv7vet-vfpv3d16':
+
+| /path/to/build/tmp/work/armv7vet2hf-vfp-poky-linux-gnueabi/mozjs-102/102.5.0-r0/build/js/src/jit/AtomicOperationsGenerated.h:240:17:
+ error: 'asm' operand has impossible constraints
+| 240 | asm volatile (
+| | ^~~
+
+Upstream-Status: Submitted [https://bugzilla.mozilla.org/show_bug.cgi?id=1761665]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+---
+ js/src/jit/GenerateAtomicOperations.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/js/src/jit/GenerateAtomicOperations.py b/js/src/jit/GenerateAtomicOperations.py
+index 24b5a191cf..e41948c5af 100644
+--- a/js/src/jit/GenerateAtomicOperations.py
++++ b/js/src/jit/GenerateAtomicOperations.py
+@@ -860,7 +860,7 @@ def generate_atomics_header(c_out):
+
+ # Work around a GCC issue on 32-bit x86 by adding MOZ_NEVER_INLINE.
+ # See bug 1756347.
+- if is_gcc and cpu_arch == "x86":
++ if is_gcc and cpu_arch in ("x86", "arm"):
+ contents = contents.replace("INLINE_ATTR", "MOZ_NEVER_INLINE inline")
+ else:
+ contents = contents.replace("INLINE_ATTR", "inline")
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch
new file mode 100644
index 0000000000..38496ea56c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch
@@ -0,0 +1,44 @@
+From c860dcbe63b0e393c95bfb0131238f91aaac11d3 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Thu, 7 Oct 2021 12:44:18 +0200
+Subject: [PATCH] build: do not use autoconf's config.sub to 'canonicalize'
+ names
+
+The outcome is that processed names no longer match our custom rust
+target definitions, and the build fails.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+
+---
+ build/moz.configure/init.configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/build/moz.configure/init.configure
++++ b/build/moz.configure/init.configure
+@@ -647,24 +647,7 @@ def help_host_target(help, host, target)
+
+ def config_sub(shell, triplet):
+ config_sub = os.path.join(os.path.dirname(__file__), "..", "autoconf", "config.sub")
+- # Config.sub doesn't like the *-windows-msvc/*-windows-gnu triplets, so
+- # munge those before and after calling config.sub.
+- suffix = None
+- munging = {
+- "-windows-msvc": "-mingw32",
+- "-windows-gnu": "-mingw32",
+- }
+- for check_suffix, replacement in munging.items():
+- if triplet.endswith(check_suffix):
+- suffix = check_suffix
+- triplet = triplet[: -len(suffix)] + replacement
+- break
+- result = check_cmd_output(shell, config_sub, triplet).strip()
+- if suffix:
+- assert result.endswith(replacement)
+- result = result[: -len(replacement)] + suffix
+- return result
+-
++ return triplet
+
+ @depends("--host", shell)
+ @checking("for host system type", lambda h: h.alias)
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-rewrite-cargo-host-linker-in-python3.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-rewrite-cargo-host-linker-in-python3.patch
new file mode 100644
index 0000000000..83f384e6c2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-rewrite-cargo-host-linker-in-python3.patch
@@ -0,0 +1,54 @@
+From c6a84863454b882695058187cd282987613474ef Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 18 Nov 2021 07:16:39 +0000
+Subject: [PATCH] Rewrite cargo-host-linker in python3
+
+Mozjs compile failed with this failure:
+/bin/sh: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /build/tmp-glibc/work/corei7-64-wrs-linux/mozjs/91.1.0-r0/recipe-sysroot-native/usr/lib/libtinfo.so.5)
+
+Root Cause:
+cargo-host-linker has /bin/sh as it's interpreter, but cargo run the cmd
+with LD_LIBRARY_PATH set to recipe-sysroot-native. The host /bin/sh links
+libtinfo.so.5 under recipe-sysroot-native, which needs higher libc. But
+host libc is older libc. So the incompatible problem occurred.
+
+Solution:
+rewrite cargo-host-linker in python3
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+---
+ build/cargo-host-linker | 24 +++++++++++++++++++++---
+ 1 file changed, 21 insertions(+), 3 deletions(-)
+
+diff --git a/build/cargo-host-linker b/build/cargo-host-linker
+index cbd0472bf7..87d43ce9ec 100755
+--- a/build/cargo-host-linker
++++ b/build/cargo-host-linker
+@@ -1,3 +1,21 @@
+-#!/bin/sh
+-# See comment in cargo-linker.
+-eval ${MOZ_CARGO_WRAP_HOST_LD} ${MOZ_CARGO_WRAP_HOST_LDFLAGS} '"$@"'
++#!/usr/bin/env python3
++
++import os,sys
++
++if os.environ['MOZ_CARGO_WRAP_HOST_LD'].strip():
++ binary=os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]
++else:
++ sys.exit(0)
++
++if os.environ['MOZ_CARGO_WRAP_HOST_LDFLAGS'].strip():
++ if os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:]:
++ args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:] + [os.environ['MOZ_CARGO_WRAP_HOST_LDFLAGS']] + sys.argv[1:]
++ else:
++ args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + [os.environ['MOZ_CARGO_WRAP_HOST_LDFLAGS']] + sys.argv[1:]
++else:
++ if os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:]:
++ args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:] + sys.argv[1:]
++ else:
++ args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + sys.argv[1:]
++
++os.execvp(binary, args)
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-util.configure-fix-one-occasionally-reproduced-confi.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-util.configure-fix-one-occasionally-reproduced-confi.patch
new file mode 100644
index 0000000000..4921a9028c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0001-util.configure-fix-one-occasionally-reproduced-confi.patch
@@ -0,0 +1,48 @@
+From 0d28cd65efe14022e1d645db71dec74f11ab2ae8 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 11 Nov 2021 16:05:54 +0800
+Subject: [PATCH] util.configure: fix one occasionally reproduced configure
+ failure
+
+error:
+| checking whether the C++ compiler supports -Wno-range-loop-analysis...
+| DEBUG: Creating /tmp/conftest.jr1qrcw3.cpp with content:
+| DEBUG: | int
+| DEBUG: | main(void)
+| DEBUG: | {
+| DEBUG: |
+| DEBUG: | ;
+| DEBUG: | return 0;
+| DEBUG: | }
+| DEBUG: Executing: aarch64-wrs-linux-g++ -mcpu=cortex-a53 -march=armv8-a+crc -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/mozjs/91.1.0-r0/recipe-sysroot /tmp/conftest.jr1qrcw3.cpp -Werror -Wrange-loop-analysis -c
+| DEBUG: The command returned non-zero exit status 1.
+| DEBUG: Its error output was:
+...
+| File "/mozjs/91.1.0-r0/firefox-91.1.0/build/moz.configure/util.configure", line 239, in try_invoke_compiler
+| os.remove(path)
+| FileNotFoundError: [Errno 2] No such file or directory: '/tmp/conftest.jr1qrcw3.cpp'
+
+It should be another process that deleted this file by using
+"rm -rf conftest*" inappropriately
+
+Upstream-Status: Submitted [https://bugzilla.mozilla.org/show_bug.cgi?id=1740667]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+---
+ build/moz.configure/util.configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/moz.configure/util.configure b/build/moz.configure/util.configure
+index f5ff3acd79..44f69deceb 100644
+--- a/build/moz.configure/util.configure
++++ b/build/moz.configure/util.configure
+@@ -254,7 +254,7 @@ def try_invoke_compiler(
+ "C++": ".cpp",
+ }[language]
+
+- fd, path = mkstemp(prefix="conftest.", suffix=suffix, text=True)
++ fd, path = mkstemp(prefix="try_invoke_compiler_conftest.", suffix=suffix, text=True)
+ try:
+ source = source.encode("ascii", "replace")
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0002-moz.configure-do-not-look-for-llvm-objdump.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0002-moz.configure-do-not-look-for-llvm-objdump.patch
new file mode 100644
index 0000000000..4c69155a68
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0002-moz.configure-do-not-look-for-llvm-objdump.patch
@@ -0,0 +1,44 @@
+From 49cb509abd309e3b74ef4c872ae773f18dabca19 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Fri, 1 Oct 2021 13:01:10 +0200
+Subject: [PATCH] moz.configure: do not look for llvm-objdump
+
+This avoid dragging in a dependency that isn't even needed
+for js builds.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+
+---
+ moz.configure | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/moz.configure b/moz.configure
+index 3a9461200d..33b3f49b0c 100755
+--- a/moz.configure
++++ b/moz.configure
+@@ -723,15 +723,15 @@ check_prog(
+ )
+
+
+-llvm_objdump = check_prog(
+- "LLVM_OBJDUMP",
+- llvm_tool("llvm-objdump"),
+- what="llvm-objdump",
+- when="--enable-compile-environment",
+- paths=clang_search_path,
+-)
+-
+-add_old_configure_assignment("LLVM_OBJDUMP", llvm_objdump)
++#llvm_objdump = check_prog(
++# "LLVM_OBJDUMP",
++# llvm_tool("llvm-objdump"),
++# what="llvm-objdump",
++# when="--enable-compile-environment",
++# paths=clang_search_path,
++#)
++#
++#add_old_configure_assignment("LLVM_OBJDUMP", llvm_objdump)
+
+
+ def validate_readelf(path):
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch
new file mode 100644
index 0000000000..0f9d062205
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch
@@ -0,0 +1,66 @@
+From ac6a3711917ff3f2b64662cbf4681c22a09da403 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Fri, 1 Oct 2021 13:02:17 +0200
+Subject: [PATCH] rust.configure: do not try to find a suitable upstream target
+
+OE is using custom targets and so this is bound to fail.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+
+---
+ build/moz.configure/rust.configure | 34 ++----------------------------
+ 1 file changed, 2 insertions(+), 32 deletions(-)
+
+diff --git a/build/moz.configure/rust.configure b/build/moz.configure/rust.configure
+index 7a2fd1ae70..e11f13b253 100644
+--- a/build/moz.configure/rust.configure
++++ b/build/moz.configure/rust.configure
+@@ -486,33 +486,7 @@ def assert_rust_compile(host_or_target, rustc_target, rustc):
+ def rust_host_triple(
+ rustc, host, compiler_info, rustc_host, rust_supported_targets, arm_target
+ ):
+- rustc_target = detect_rustc_target(
+- host, compiler_info, arm_target, rust_supported_targets
+- )
+- if rustc_target != rustc_host:
+- if host.alias == rustc_target:
+- configure_host = host.alias
+- else:
+- configure_host = "{}/{}".format(host.alias, rustc_target)
+- die(
+- dedent(
+- """\
+- The rust compiler host ({rustc}) is not suitable for the configure host ({configure}).
+-
+- You can solve this by:
+- * Set your configure host to match the rust compiler host by editing your
+- mozconfig and adding "ac_add_options --host={rustc}".
+- * Or, install the rust toolchain for {configure}, if supported, by running
+- "rustup default stable-{rustc_target}"
+- """.format(
+- rustc=rustc_host,
+- configure=configure_host,
+- rustc_target=rustc_target,
+- )
+- )
+- )
+- assert_rust_compile(host, rustc_target, rustc)
+- return rustc_target
++ return rustc_host
+
+
+ @depends(
+@@ -522,11 +496,7 @@ def rust_host_triple(
+ def rust_target_triple(
+ rustc, target, compiler_info, rust_supported_targets, arm_target
+ ):
+- rustc_target = detect_rustc_target(
+- target, compiler_info, arm_target, rust_supported_targets
+- )
+- assert_rust_compile(target, rustc_target, rustc)
+- return rustc_target
++ return target.alias
+
+
+ set_config("RUST_TARGET", rust_target_triple)
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0004-use-asm-sgidefs.h.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0004-use-asm-sgidefs.h.patch
new file mode 100644
index 0000000000..6443d46b2c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/0004-use-asm-sgidefs.h.patch
@@ -0,0 +1,38 @@
+From 607aa4d822b0e074ae1b2fc16d7c140c3e889680 Mon Sep 17 00:00:00 2001
+From: Andre McCurdy <amccurdy@gmail.com>
+Date: Sat, 30 Apr 2016 15:29:06 -0700
+Subject: [PATCH] use <asm/sgidefs.h>
+
+Build fix for MIPS with musl libc
+
+The MIPS specific header <sgidefs.h> is provided by glibc and uclibc
+but not by musl. Regardless of the libc, the kernel headers provide
+<asm/sgidefs.h> which provides the same definitions, so use that
+instead.
+
+Upstream-Status: Pending
+
+[Vincent:
+Taken from: https://sourceware.org/bugzilla/show_bug.cgi?id=21070]
+
+Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+
+---
+ mfbt/RandomNum.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mfbt/RandomNum.cpp b/mfbt/RandomNum.cpp
+index 96de5d4055..2cfb2e10ee 100644
+--- a/mfbt/RandomNum.cpp
++++ b/mfbt/RandomNum.cpp
+@@ -53,7 +53,7 @@ extern "C" BOOLEAN NTAPI RtlGenRandom(PVOID RandomBuffer,
+ # elif defined(__s390__)
+ # define GETRANDOM_NR 349
+ # elif defined(__mips__)
+-# include <sgidefs.h>
++# include <asm/sgidefs.h>
+ # if _MIPS_SIM == _MIPS_SIM_ABI32
+ # define GETRANDOM_NR 4353
+ # elif _MIPS_SIM == _MIPS_SIM_ABI64
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/fix-musl-build.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/fix-musl-build.patch
new file mode 100644
index 0000000000..22f31e05f8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/fix-musl-build.patch
@@ -0,0 +1,29 @@
+From e4d8016d0dc56b02e22898d83aad9f80a94d1c3c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 20 Oct 2021 16:21:14 -0700
+Subject: [PATCH] mozjs: Fix musl miscompiles with HAVE_THREAD_TLS_KEYWORD
+
+Upstream: No
+Reason: mozjs60 miscompiles on musl if built with HAVE_THREAD_TLS_KEYWORD:
+https://github.com/void-linux/void-packages/issues/2598
+
+---
+Upstream-Status: Pending
+
+ js/src/old-configure.in | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/js/src/old-configure.in b/js/src/old-configure.in
+index cabd72a2b6..0f08d91cbf 100644
+--- a/js/src/old-configure.in
++++ b/js/src/old-configure.in
+@@ -807,6 +807,9 @@ if test "$ac_cv_thread_keyword" = yes; then
+ *-android*|*-linuxandroid*)
+ :
+ ;;
++ *-musl*)
++ :
++ ;;
+ *)
+ AC_DEFINE(HAVE_THREAD_TLS_KEYWORD)
+ ;;
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/musl-disable-stackwalk.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/musl-disable-stackwalk.patch
new file mode 100644
index 0000000000..590cddfe5f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/musl-disable-stackwalk.patch
@@ -0,0 +1,27 @@
+From 9aae71c6ee73431d2609be0ef74ffd4b22b36c75 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 22 Sep 2023 22:59:56 +0000
+Subject: [PATCH] Musl does not have stack unwinder like glibc therefore we can
+ not assume that its always available on musl, we do need to check for target
+ environment as well which could be musl or glibc.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ mozglue/misc/StackWalk.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mozglue/misc/StackWalk.cpp b/mozglue/misc/StackWalk.cpp
+index 307715b170..a8d3cb40c0 100644
+--- a/mozglue/misc/StackWalk.cpp
++++ b/mozglue/misc/StackWalk.cpp
+@@ -43,7 +43,7 @@ using namespace mozilla;
+ # define MOZ_STACKWALK_SUPPORTS_MACOSX 0
+ #endif
+
+-#if (defined(linux) && \
++#if (defined(linux) && defined(__GLIBC__) && \
+ ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
+ defined(HAVE__UNWIND_BACKTRACE)))
+ # define MOZ_STACKWALK_SUPPORTS_LINUX 1
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/riscv32.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/riscv32.patch
new file mode 100644
index 0000000000..16f95659e2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/riscv32.patch
@@ -0,0 +1,60 @@
+From d6aff068170e56e6773feba42a463dd8c50bc4ff Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 24 Oct 2021 22:32:50 -0700
+Subject: [PATCH] Add RISCV32 support
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ build/moz.configure/init.configure | 3 +++
+ python/mozbuild/mozbuild/configure/constants.py | 2 ++
+ .../mozbuild/test/configure/test_toolchain_configure.py | 1 +
+ 3 files changed, 6 insertions(+)
+
+diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
+index 53bbc4203f..2ac40d3d39 100644
+--- a/build/moz.configure/init.configure
++++ b/build/moz.configure/init.configure
+@@ -584,6 +584,9 @@ def split_triplet(triplet, allow_wasi=False):
+ elif cpu.startswith("aarch64"):
+ canonical_cpu = "aarch64"
+ endianness = "little"
++ elif cpu in ("riscv32", "riscv32gc"):
++ canonical_cpu = "riscv32"
++ endianness = "little"
+ elif cpu in ("riscv64", "riscv64gc"):
+ canonical_cpu = "riscv64"
+ endianness = "little"
+diff --git a/python/mozbuild/mozbuild/configure/constants.py b/python/mozbuild/mozbuild/configure/constants.py
+index a36152651d..a6050be5d8 100644
+--- a/python/mozbuild/mozbuild/configure/constants.py
++++ b/python/mozbuild/mozbuild/configure/constants.py
+@@ -51,6 +51,7 @@ CPU_bitness = {
+ "mips64": 64,
+ "ppc": 32,
+ "ppc64": 64,
++ 'riscv32': 32,
+ "riscv64": 64,
+ "s390": 32,
+ "s390x": 64,
+@@ -98,6 +99,7 @@ CPU_preprocessor_checks = OrderedDict(
+ ("m68k", "__m68k__"),
+ ("mips64", "__mips64"),
+ ("mips32", "__mips__"),
++ ("riscv32", "__riscv && __riscv_xlen == 32"),
+ ("riscv64", "__riscv && __riscv_xlen == 64"),
+ ("loongarch64", "__loongarch64"),
+ ("sh4", "__sh__"),
+diff --git a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
+index c6af3d99d4..7ef02e1a85 100644
+--- a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
++++ b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
+@@ -1325,6 +1325,7 @@ class LinuxCrossCompileToolchainTest(BaseToolchainTest):
+ "m68k-unknown-linux-gnu": big_endian + {"__m68k__": 1},
+ "mips64-unknown-linux-gnuabi64": big_endian + {"__mips64": 1, "__mips__": 1},
+ "mips-unknown-linux-gnu": big_endian + {"__mips__": 1},
++ "riscv32-unknown-linux-gnu": little_endian + {"__riscv": 1, "__riscv_xlen": 32},
+ "riscv64-unknown-linux-gnu": little_endian + {"__riscv": 1, "__riscv_xlen": 64},
+ "sh4-unknown-linux-gnu": little_endian + {"__sh__": 1},
+ }
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-102_102.9.0.bb b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115_115.2.0.bb
index e6ff379e95..fcdf64c932 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-102_102.9.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115_115.2.0.bb
@@ -16,7 +16,7 @@ SRC_URI = "https://archive.mozilla.org/pub/firefox/releases/${PV}esr/source/fire
file://musl-disable-stackwalk.patch \
file://0001-add-arm-to-list-of-mozinline.patch \
"
-SRC_URI[sha256sum] = "31b074623f09ca821a8a7dee0b3d2df1a45f1164264d31c26b4969a4d6a21dd1"
+SRC_URI[sha256sum] = "51534dd2a158d955a2cb67cc1308f100f6c9def0788713ed8b4d743f3ad72457"
S = "${WORKDIR}/firefox-${PV}"
@@ -66,12 +66,13 @@ do_install() {
inherit multilib_script multilib_header
-MULTILIB_SCRIPTS += " ${PN}-dev:${bindir}/js102-config"
+MAJ_VER = "${@oe.utils.trim_version("${PV}", 1)}"
+MULTILIB_SCRIPTS += "${PN}-dev:${bindir}/js${MAJ_VER}-config"
do_install:append() {
- oe_multilib_header mozjs-102/js-config.h
+ oe_multilib_header mozjs-${MAJ_VER}/js-config.h
sed -e 's@${STAGING_DIR_HOST}@@g' \
- -i ${D}${bindir}/js102-config
+ -i ${D}${bindir}/js${MAJ_VER}-config
rm -f ${D}${libdir}/libjs_static.ajs
}
diff --git a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2023.5.bb b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2023.5.bb
index 3028c4c92a..bc465dd624 100644
--- a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2023.5.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2023.5.bb
@@ -28,6 +28,8 @@ S = "${WORKDIR}/libostree-${PV}"
inherit autotools bash-completion gobject-introspection github-releases gtk-doc manpages pkgconfig ptest-gnome systemd
+COMPATIBLE_HOST:riscv32 = "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'null', 'riscv32', d)}"
+
UNKNOWN_CONFIGURE_OPT_IGNORE = "--disable-introspection --enable-introspection"
# Workaround compile failure:
diff --git a/meta-openembedded/meta-oe/recipes-extended/plocate/plocate_1.1.17.bb b/meta-openembedded/meta-oe/recipes-extended/plocate/plocate_1.1.17.bb
deleted file mode 100644
index ef36754bac..0000000000
--- a/meta-openembedded/meta-oe/recipes-extended/plocate/plocate_1.1.17.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require plocate.inc
-# GPL-2.0-only
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "git://git.sesse.net/plocate;protocol=https;branch=master"
-
-SRCREV = "7e5defd4e7e075cb9226e7d2d9a80f943c482d11"
-S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/plocate/plocate.inc b/meta-openembedded/meta-oe/recipes-extended/plocate/plocate_1.1.19.bb
index 166fc2d561..6b3160f090 100644
--- a/meta-openembedded/meta-oe/recipes-extended/plocate/plocate.inc
+++ b/meta-openembedded/meta-oe/recipes-extended/plocate/plocate_1.1.19.bb
@@ -3,7 +3,12 @@ HOMEPAGE = "https://plocate.sesse.net/"
DESCRIPTION = "plocate is a locate(1) based on posting lists, completely replacing mlocate with a much faster (and smaller) index. It is suitable as a default locate on your system."
SECTION = "base"
LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
inherit meson pkgconfig
DEPENDS = "zstd liburing"
+
+SRC_URI = "https://plocate.sesse.net/download/${BP}.tar.gz"
+
+SRC_URI[sha256sum] = "d95bc8ee8a9f79b9f69ce63df53fb85b202139f243bbb84c399555eda22e6165"
diff --git a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-polkit.service.in-disable-MemoryDenyWriteExecute.patch b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-polkit.service.in-disable-MemoryDenyWriteExecute.patch
new file mode 100644
index 0000000000..9a097274a4
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-polkit.service.in-disable-MemoryDenyWriteExecute.patch
@@ -0,0 +1,33 @@
+From 046d853818f18bac5df4dfc007151e06fd64a5b3 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Sun, 17 Sep 2023 23:26:59 +0200
+Subject: [PATCH] polkit.service.in: disable MemoryDenyWriteExecute
+
+A few momths ago some hardening options have been added to polkit.service.in
+https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/177/diffs?commit_id=afecbd53696e32bbadd60f431fc7d285f3edd265
+
+and polkitd segfaults with MemoryDenyWriteExecute=yes, at least in my environment
+
+Upstream-Status: Inappropriate [needs further investigation]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ data/polkit.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/polkit.service.in b/data/polkit.service.in
+index 2113ff7..42dfd90 100644
+--- a/data/polkit.service.in
++++ b/data/polkit.service.in
+@@ -14,7 +14,7 @@ Group=@polkitd_user@
+ IPAddressDeny=any
+ LimitMEMLOCK=0
+ LockPersonality=yes
+-MemoryDenyWriteExecute=yes
++#MemoryDenyWriteExecute=yes
+ NoNewPrivileges=yes
+ PrivateDevices=yes
+ PrivateNetwork=yes
+--
+2.41.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_122.bb b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_123.bb
index 2906406261..4fc23559f9 100644
--- a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_122.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_123.bb
@@ -4,10 +4,13 @@ HOMEPAGE = "http://www.freedesktop.org/wiki/Software/polkit"
LICENSE = "LGPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=155db86cdbafa7532b41f390409283eb"
-SRC_URI = "git://gitlab.freedesktop.org/polkit/polkit.git;protocol=https;branch=master"
+SRC_URI = " \
+ git://gitlab.freedesktop.org/polkit/polkit.git;protocol=https;branch=master \
+ file://0001-polkit.service.in-disable-MemoryDenyWriteExecute.patch \
+"
S = "${WORKDIR}/git"
-SRCREV = "da87c5698019897dd731bb2cbb54ebd9c9481f52"
+SRCREV = "fc8b07e71d99f88a29258cde99b913b44da1846d"
DEPENDS = "expat glib-2.0"
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/0001-src-Do-not-reset-FINAL_LIBS.patch b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/0001-src-Do-not-reset-FINAL_LIBS.patch
index e8d8b1d53f..e8d8b1d53f 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/0001-src-Do-not-reset-FINAL_LIBS.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/0001-src-Do-not-reset-FINAL_LIBS.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/0006-Define-correct-gregs-for-RISCV32.patch b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/0006-Define-correct-gregs-for-RISCV32.patch
index 385b0aeed0..385b0aeed0 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/0006-Define-correct-gregs-for-RISCV32.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/0006-Define-correct-gregs-for-RISCV32.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/GNU_SOURCE-7.patch b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/GNU_SOURCE-7.patch
index 6e07c25c6a..6e07c25c6a 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/GNU_SOURCE-7.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/GNU_SOURCE-7.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/hiredis-use-default-CC-if-it-is-set.patch b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/hiredis-use-default-CC-if-it-is-set.patch
index 5b9b71ea69..7785acca5c 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/hiredis-use-default-CC-if-it-is-set.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/hiredis-use-default-CC-if-it-is-set.patch
@@ -18,6 +18,8 @@ Reworked for 6.0.4
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
+Upstream-Status: Pending
+
deps/hiredis/Makefile | 2 --
1 file changed, 2 deletions(-)
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/init-redis-server b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/init-redis-server
index c5f335f57d..c5f335f57d 100755
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/init-redis-server
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/init-redis-server
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/lua-update-Makefile-to-use-environment-build-setting.patch b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/lua-update-Makefile-to-use-environment-build-setting.patch
index bff07535de..bff07535de 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/lua-update-Makefile-to-use-environment-build-setting.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/lua-update-Makefile-to-use-environment-build-setting.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/oe-use-libc-malloc.patch b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/oe-use-libc-malloc.patch
index be186b57da..7b601e02a9 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/oe-use-libc-malloc.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/oe-use-libc-malloc.patch
@@ -15,6 +15,8 @@ Update to work with 4.0.8
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
---
+Upstream-Status: Pending
+
src/Makefile | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/redis.conf b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/redis.conf
index 75037d6dc8..75037d6dc8 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/redis.conf
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/redis.conf
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/redis.service b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/redis.service
index a52204cc70..a52204cc70 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.0/redis.service
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.2.1/redis.service
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis_7.2.0.bb b/meta-openembedded/meta-oe/recipes-extended/redis/redis_7.2.1.bb
index 4f1c97b7e4..f8e30e086d 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis_7.2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis_7.2.1.bb
@@ -17,7 +17,7 @@ SRC_URI = "http://download.redis.io/releases/${BP}.tar.gz \
file://GNU_SOURCE-7.patch \
file://0006-Define-correct-gregs-for-RISCV32.patch \
"
-SRC_URI[sha256sum] = "8b12e242647635b419a0e1833eda02b65bf64e39eb9e509d9db4888fb3124943"
+SRC_URI[sha256sum] = "5c76d990a1b1c5f949bcd1eed90d0c8a4f70369bdbdcb40288c561ddf88967a4"
inherit autotools-brokensep update-rc.d systemd useradd
diff --git a/meta-openembedded/meta-oe/recipes-extended/vlock/vlock_2.2.3.bb b/meta-openembedded/meta-oe/recipes-extended/vlock/vlock_2.2.3.bb
index a374041934..455bda1d76 100644
--- a/meta-openembedded/meta-oe/recipes-extended/vlock/vlock_2.2.3.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/vlock/vlock_2.2.3.bb
@@ -37,13 +37,13 @@ do_configure () {
VLOCK_GROUP=root \
ROOT_GROUP=root \
CC="${CC}" \
- CFLAGS="${CFLAGS}" \
LDFLAGS="${LDFLAGS}" \
--prefix=${prefix} \
--libdir=${libdir} \
--mandir=${mandir} \
--with-modules="all.so new.so nosysrq.so ttyblank.so vesablank.so" \
--disable-root-password --enable-debug --disable-fail-count \
+ EXTRA_CFLAGS="${CFLAGS}" \
${PACKAGECONFIG_CONFARGS}
}
diff --git a/meta-openembedded/meta-oe/recipes-gnome/libxmlb/libxmlb_0.3.10.bb b/meta-openembedded/meta-oe/recipes-gnome/libxmlb/libxmlb_0.3.10.bb
deleted file mode 100644
index 61abd07fda..0000000000
--- a/meta-openembedded/meta-oe/recipes-gnome/libxmlb/libxmlb_0.3.10.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "A library to help create and query binary XML blobs"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1803fa9c2c3ce8cb06b4861d75310742"
-
-SRC_URI = "git://github.com/hughsie/libxmlb.git;branch=main;protocol=https \
- file://run-ptest \
- "
-SRCREV = "a6cac6a715d57c393bbddee4d0381ad943341af9"
-S = "${WORKDIR}/git"
-
-DEPENDS = "glib-2.0 xz"
-
-inherit gobject-introspection gtk-doc meson ptest-gnome lib_package
-
-PACKAGECONFIG ??= "\
- ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
-"
-PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false"
-
-GTKDOC_MESON_OPTION = "gtkdoc"
-
-FILES:${PN}-bin += "${libexecdir}/*"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/freeglut/freeglut_3.4.0.bb b/meta-openembedded/meta-oe/recipes-graphics/freeglut/freeglut_3.4.0.bb
index b433900bb0..2cd00b0349 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/freeglut/freeglut_3.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/freeglut/freeglut_3.4.0.bb
@@ -8,8 +8,8 @@ SRC_URI[sha256sum] = "3c0bcb915d9b180a97edaebd011b7a1de54583a838644dcd42bb0ea0c6
inherit cmake features_check pkgconfig
-# depends on virtual/libgl
-REQUIRED_DISTRO_FEATURES = "opengl"
+# depends on virtual/libgl and libxi
+REQUIRED_DISTRO_FEATURES = "opengl x11"
PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
PACKAGECONFIG[gles] = "-DFREEGLUT_GLES=ON,-DFREEGLUT_GLES=OFF,"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libglvnd/libglvnd_1.6.0.bb b/meta-openembedded/meta-oe/recipes-graphics/libglvnd/libglvnd_1.7.0.bb
index b76373cf2a..4094aa4fc6 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/libglvnd/libglvnd_1.6.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/libglvnd/libglvnd_1.7.0.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://README.md;beginline=323;md5=7ac5f0111f648b92fe5427efe
SRC_URI = "git://git@gitlab.freedesktop.org/glvnd/libglvnd.git;protocol=https;branch=master"
# v1.5.0 tag
-SRCREV = "b05bbcdaeb9b700cf7877e6d66f8fc3ac952295b"
+SRCREV = "faa23f21fc677af5792825dc30cb1ccef4bf33a6"
REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2022-34568.patch b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2022-34568.patch
new file mode 100644
index 0000000000..7561300cb3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2022-34568.patch
@@ -0,0 +1,28 @@
+CVE: CVE-2022-34568
+Upstream-Status: Backport [https://github.com/libsdl-org/SDL-1.2/commit/d7e00208738a0bc6af302723fe64908ac35b777b ]
+Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
+
+From d7e00208738a0bc6af302723fe64908ac35b777b Mon Sep 17 00:00:00 2001
+From: Ozkan Sezer <sezeroz@gmail.com>
+Date: Sat, 18 Jun 2022 14:55:00 +0300
+Subject: [PATCH] SDL_x11yuv.c: fix possible use-after-free
+
+Fixes: https://github.com/libsdl-org/SDL-1.2/issues/863
+---
+ src/video/x11/SDL_x11yuv.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/video/x11/SDL_x11yuv.c b/src/video/x11/SDL_x11yuv.c
+index 62698dfd9..0d5754e3e 100644
+--- a/src/video/x11/SDL_x11yuv.c
++++ b/src/video/x11/SDL_x11yuv.c
+@@ -374,8 +374,8 @@ SDL_Overlay *X11_CreateYUVOverlay(_THIS, int width, int height, Uint32 format, S
+ #ifdef PITCH_WORKAROUND
+ if ( hwdata->image != NULL && hwdata->image->pitches[0] != (width*bpp) ) {
+ /* Ajust overlay width according to pitch */
+- XFree(hwdata->image);
+ width = hwdata->image->pitches[0] / bpp;
++ XFree(hwdata->image);
+ hwdata->image = SDL_NAME(XvCreateImage)(GFX_Display, xv_port, format,
+ 0, width, height);
+ }
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb
index 814e6cd0dd..a817d3834a 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb
@@ -26,6 +26,7 @@ SRC_URI = "http://www.libsdl.org/release/SDL-${PV}.tar.gz \
file://CVE-2019-7638.patch \
file://CVE-2019-7576.patch \
file://CVE-2019-13616.patch \
+ file://CVE-2022-34568.patch \
"
UPSTREAM_CHECK_REGEX = "SDL-(?P<pver>\d+(\.\d+)+)\.tar"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.13.bb b/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.14.bb
index 93f6951739..50bdad57d5 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.13.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.14.bb
@@ -45,7 +45,7 @@ FILES:libvncclient = "${libdir}/libvncclient.*"
inherit cmake
SRC_URI = "git://github.com/LibVNC/libvncserver;branch=master;protocol=https"
-SRCREV = "2aa20dad4c23c18948d3f63b33f9dfec1f837729"
+SRCREV = "10e9eb75f73e973725dc75c373de5d89807af028"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/wayland/libei_1.1.0.bb b/meta-openembedded/meta-oe/recipes-graphics/wayland/libei_1.1.0.bb
new file mode 100644
index 0000000000..1727ef9be7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/wayland/libei_1.1.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "libei is a library for Emulated Input, primarily aimed at the Wayland stack."
+HOMEPAGE = "https://gitlab.freedesktop.org/libinput/libei"
+SECTION = "graphics"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=a98fa76460f96f41696611d6f07e8d49"
+
+DEPENDS = " \
+ libxkbcommon \
+ libevdev \
+ libxslt-native \
+ python3-attrs-native \
+ python3-jinja2-native \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'basu', d)} \
+"
+
+SRC_URI = "git://gitlab.freedesktop.org/libinput/libei.git;protocol=https;branch=main"
+
+S = "${WORKDIR}/git"
+SRCREV = "82cdbc9129a0e2c255fcee6bcaa7abed5578ae14"
+
+inherit meson pkgconfig
+
+EXTRA_OEMESON = "-Dtests=disabled"
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/CVE-2020-29074.patch b/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/CVE-2020-29074.patch
new file mode 100644
index 0000000000..fbdb9123cc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/CVE-2020-29074.patch
@@ -0,0 +1,27 @@
+CVE: CVE-2020-29074
+Upstream-Status: Backport [https://github.com/LibVNC/x11vnc/commit/69eeb9f7baa14ca03b16c9de821f9876def7a36a ]
+Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
+
+
+From 69eeb9f7baa14ca03b16c9de821f9876def7a36a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Gu=C3=A9nal=20DAVALAN?= <guenal.davalan@uca.fr>
+Date: Wed, 18 Nov 2020 08:40:45 +0100
+Subject: [PATCH] scan: limit access to shared memory segments to current user
+
+---
+ src/scan.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/scan.c b/src/scan.c
+index 43e00d20..12994d52 100644
+--- a/src/scan.c
++++ b/src/scan.c
+@@ -320,7 +320,7 @@ static int shm_create(XShmSegmentInfo *shm, XImage **ximg_ptr, int w, int h,
+
+ #if HAVE_XSHM
+ shm->shmid = shmget(IPC_PRIVATE,
+- xim->bytes_per_line * xim->height, IPC_CREAT | 0777);
++ xim->bytes_per_line * xim->height, IPC_CREAT | 0600);
+
+ if (shm->shmid == -1) {
+ rfbErr("shmget(%s) failed.\n", name);
diff --git a/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb b/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb
index 92b3ac5f67..3633bbc26b 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb
@@ -11,6 +11,7 @@ PV .= "+git${SRCPV}"
SRC_URI = "git://github.com/LibVNC/x11vnc;branch=master;protocol=https \
file://starting-fix.patch \
+ file://CVE-2020-29074.patch \
"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb
index d24f666bcf..dc909ed78c 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb
@@ -9,6 +9,8 @@ SRC_URI = "https://www.jwz.org/${BPN}/${BP}.tar.gz \
file://0002-build-Do-not-build-po-files.patch \
file://0001-configure-Ignore-CONF_STATUS-for-gtk-and-openGL-need.patch \
"
+MIRRORS += "https://www.jwz.org/${BPN} https://ftp.osuosl.org/pub/blfs/conglomeration/${BPN}"
+
SRC_URI[sha256sum] = "787014b29f0c5793ecc2d93e1109a049ff48ab0c29b851dab34f683ceef6b152"
DEPENDS = "intltool-native libx11 libxext libxt libxft libxi glib-2.0-native bc-native libpam jpeg"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb b/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb
index 3d97ea0967..4d6e0e3717 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb
@@ -74,7 +74,7 @@ do_compile() {
either install it and add it to HOSTTOOLS, or add clang-native from meta-clang to dependency"
fi
fi
-
+ oe_runmake -C ${S} headers
for i in ${TEST_LIST}
do
oe_runmake -C ${S}/tools/testing/selftests/${i}
diff --git a/meta-openembedded/meta-oe/recipes-navigation/geoclue/geoclue_2.7.0.bb b/meta-openembedded/meta-oe/recipes-navigation/geoclue/geoclue_2.7.1.bb
index 822e3043eb..2628b77102 100644
--- a/meta-openembedded/meta-oe/recipes-navigation/geoclue/geoclue_2.7.0.bb
+++ b/meta-openembedded/meta-oe/recipes-navigation/geoclue/geoclue_2.7.1.bb
@@ -12,7 +12,7 @@ DEPENDS = "glib-2.0 dbus json-glib libsoup-3.0 intltool-native"
inherit meson pkgconfig gtk-doc gobject-introspection vala useradd
-SRCREV = "bbfb6289dedb88cb8155d9f6868787d5432e1f90"
+SRCREV = "8a24f60969d4c235d9918796c38a6a9c42e10131"
SRC_URI = "git://gitlab.freedesktop.org/geoclue/geoclue.git;protocol=https;branch=master \
file://0001-libgeoclue-don-t-try-to-use-g-ir-scanner-when-intros.patch \
"
diff --git a/meta-openembedded/meta-oe/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch b/meta-openembedded/meta-oe/recipes-security/audit/audit/0001-Fixed-swig-host-contamination-issue.patch
index b023c80ae4..5f2ecc1417 100644
--- a/meta-openembedded/meta-oe/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch
+++ b/meta-openembedded/meta-oe/recipes-security/audit/audit/0001-Fixed-swig-host-contamination-issue.patch
@@ -1,7 +1,7 @@
-From 3d13f92c1bb293523670ba01aea7e655b00a6709 Mon Sep 17 00:00:00 2001
+From 9a32d42dfc6713fd0085dd4563a934afc30ec097 Mon Sep 17 00:00:00 2001
From: Li xin <lixin.fnst@cn.fujitsu.com>
Date: Sun, 19 Jul 2015 02:42:58 +0900
-Subject: [PATCH] audit: Fixed swig host contamination issue
+Subject: [PATCH] Fixed swig host contamination issue
The audit build uses swig to generate a python wrapper.
Unfortunately, the swig info file references host include
@@ -18,6 +18,8 @@ Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
bindings/swig/src/auditswig.i | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
+diff --git a/bindings/swig/python3/Makefile.am b/bindings/swig/python3/Makefile.am
+index 6131e80d..2fb7207b 100644
--- a/bindings/swig/python3/Makefile.am
+++ b/bindings/swig/python3/Makefile.am
@@ -23,6 +23,7 @@
@@ -28,7 +30,7 @@ Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
LIBS = $(top_builddir)/lib/libaudit.la
SWIG_FLAGS = -python -py3 -modern
SWIG_INCLUDES = -I. -I$(top_builddir) -I${top_srcdir}/lib $(PYTHON3_INCLUDES)
-@@ -37,7 +38,7 @@ _audit_la_DEPENDENCIES =${top_srcdir}/li
+@@ -37,7 +38,7 @@ _audit_la_DEPENDENCIES =${top_srcdir}/lib/libaudit.h ${top_builddir}/lib/libaudi
_audit_la_LIBADD = ${top_builddir}/lib/libaudit.la
nodist__audit_la_SOURCES = audit_wrap.c
audit.py audit_wrap.c: ${srcdir}/../src/auditswig.i
@@ -37,14 +39,19 @@ Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
CLEANFILES = audit.py* audit_wrap.c *~
+diff --git a/bindings/swig/src/auditswig.i b/bindings/swig/src/auditswig.i
+index 9a2c5661..6cbb7295 100644
--- a/bindings/swig/src/auditswig.i
+++ b/bindings/swig/src/auditswig.i
-@@ -39,7 +39,7 @@ signed
- #define __attribute(X) /*nothing*/
- typedef unsigned __u32;
- typedef unsigned uid_t;
+@@ -43,7 +43,7 @@ typedef unsigned uid_t;
+ * generating setters against them: https://github.com/swig/swig/issues/1699
+ */
+ %ignore audit_rule_data::buf;
-%include "/usr/include/linux/audit.h"
+%include "../lib/audit.h"
#define __extension__ /*nothing*/
%include <stdint.i>
%include "../lib/libaudit.h"
+--
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-security/audit/audit/0001-Replace-__attribute_malloc__-with-__attribute__-__ma.patch b/meta-openembedded/meta-oe/recipes-security/audit/audit/0002-Replace-__attribute_malloc__-with-__attribute__-__ma.patch
index 23747c45f0..7f0af74a8c 100644
--- a/meta-openembedded/meta-oe/recipes-security/audit/audit/0001-Replace-__attribute_malloc__-with-__attribute__-__ma.patch
+++ b/meta-openembedded/meta-oe/recipes-security/audit/audit/0002-Replace-__attribute_malloc__-with-__attribute__-__ma.patch
@@ -1,8 +1,7 @@
-From 79c8d6a2755c9dfa00a5e86378e89a94eef0504d Mon Sep 17 00:00:00 2001
+From 679cb57fa93984fed345dd3890cdbcbaa24e8518 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 9 Aug 2022 23:57:03 -0700
-Subject: [PATCH] Replace __attribute_malloc__ with
- __attribute__((__malloc__))
+Subject: [PATCH] Replace __attribute_malloc__ with __attribute__((__malloc__))
__attribute_malloc__ is not available on musl
@@ -11,18 +10,18 @@ Fixes
| __attribute_malloc__ __attr_dealloc (auparse_destroy, 1);
| ^
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
auparse/auparse.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/auparse/auparse.h b/auparse/auparse.h
-index 95cf256d..c7dbe5ff 100644
+index 5cb7402e..39156eff 100644
--- a/auparse/auparse.h
+++ b/auparse/auparse.h
-@@ -51,7 +51,7 @@ typedef void (*auparse_callback_ptr)(auparse_state_t *au,
+@@ -54,7 +54,7 @@ typedef void (*auparse_callback_ptr)(auparse_state_t *au,
void auparse_destroy(auparse_state_t *au);
void auparse_destroy_ext(auparse_state_t *au, auparse_destroy_what_t what);
auparse_state_t *auparse_init(ausource_t source, const void *b)
@@ -32,5 +31,5 @@ index 95cf256d..c7dbe5ff 100644
__attr_access ((__read_only__, 2, 3));
int auparse_feed(auparse_state_t *au, const char *data, size_t data_len)
--
-2.37.1
+2.25.1
diff --git a/meta-openembedded/meta-oe/recipes-security/audit/audit_3.1.1.bb b/meta-openembedded/meta-oe/recipes-security/audit/audit_3.1.2.bb
index 7ed2fd2dec..5380e90223 100644
--- a/meta-openembedded/meta-oe/recipes-security/audit/audit_3.1.1.bb
+++ b/meta-openembedded/meta-oe/recipes-security/audit/audit_3.1.2.bb
@@ -8,15 +8,15 @@ LICENSE = "GPL-2.0-or-later & LGPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
SRC_URI = "git://github.com/linux-audit/${BPN}-userspace.git;branch=master;protocol=https \
- file://Fixed-swig-host-contamination-issue.patch \
- file://0001-Replace-__attribute_malloc__-with-__attribute__-__ma.patch \
+ file://0001-Fixed-swig-host-contamination-issue.patch \
+ file://0002-Replace-__attribute_malloc__-with-__attribute__-__ma.patch \
file://auditd \
file://auditd.service \
file://audit-volatile.conf \
"
S = "${WORKDIR}/git"
-SRCREV = "6e367585a899231da05797c6126f8bb01febb2f5"
+SRCREV = "572eb7d4fe926e7c1c52166d08e78af54877cbc5"
inherit autotools python3targetconfig update-rc.d systemd
diff --git a/meta-openembedded/meta-oe/recipes-security/usbguard/usbguard_1.1.2.bb b/meta-openembedded/meta-oe/recipes-security/usbguard/usbguard_1.1.2.bb
index 4e96b4f41e..c062f27059 100644
--- a/meta-openembedded/meta-oe/recipes-security/usbguard/usbguard_1.1.2.bb
+++ b/meta-openembedded/meta-oe/recipes-security/usbguard/usbguard_1.1.2.bb
@@ -31,6 +31,7 @@ EXTRA_OECONF += "\
PACKAGECONFIG ?= "\
openssl \
${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)} \
${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
"
diff --git a/meta-openembedded/meta-oe/recipes-support/appstream/appstream/0001-fix-crosscompile.patch b/meta-openembedded/meta-oe/recipes-support/appstream/appstream/0001-fix-crosscompile.patch
deleted file mode 100644
index fe8dcff910..0000000000
--- a/meta-openembedded/meta-oe/recipes-support/appstream/appstream/0001-fix-crosscompile.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 6ab00a4279823829a9b82dc9e4d055da4de88c6e Mon Sep 17 00:00:00 2001
-From: Markus Volk <f_l_k@t-online.de>
-Date: Mon, 12 Dec 2022 15:42:42 +0100
-Subject: [PATCH] fix crosscompile
-
-Signed-off-by: Markus Volk <f_l_k@t-online.de>
-
-Upstream-Status: Inappropriate [oe-specific]
----
- data/meson.build | 2 +-
- meson.build | 2 +-
- tools/meson.build | 9 +++++++++
- 3 files changed, 11 insertions(+), 2 deletions(-)
-
-diff --git a/data/meson.build b/data/meson.build
-index aea0cb25..1a085fc9 100644
---- a/data/meson.build
-+++ b/data/meson.build
-@@ -14,7 +14,7 @@ install_data('its/metainfo.loc',
- metainfo_with_relinfo = custom_target('gen-output',
- input : ['../NEWS', 'org.freedesktop.appstream.cli.metainfo.xml'],
- output : ['nol10n_withrelinfo_org.freedesktop.appstream.cli.metainfo.xml'],
-- command : [ascli_exe, 'news-to-metainfo', '--limit=6', '@INPUT0@', '@INPUT1@', '@OUTPUT@']
-+ command : ['appstreamcli', 'news-to-metainfo', '--limit=6', '@INPUT0@', '@INPUT1@', '@OUTPUT@']
- )
-
- metainfo_i18n = i18n.itstool_join(
-diff --git a/meson.build b/meson.build
-index fd0e3373..2f273ada 100644
---- a/meson.build
-+++ b/meson.build
-@@ -124,7 +124,7 @@ if get_option ('gir')
- dependency('gobject-introspection-1.0', version: '>=1.56')
- endif
-
--stemmer_inc_dirs = include_directories(['/usr/include'])
-+stemmer_inc_dirs = include_directories([''])
- if get_option('stemming')
- stemmer_lib = cc.find_library('stemmer', required: true)
- if not cc.has_header('libstemmer.h')
---
-2.34.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/boost-sml/boost-sml_git.bb b/meta-openembedded/meta-oe/recipes-support/boost-sml/boost-sml_git.bb
index 18dc8851af..378be1a8eb 100644
--- a/meta-openembedded/meta-oe/recipes-support/boost-sml/boost-sml_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/boost-sml/boost-sml_git.bb
@@ -8,10 +8,10 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=e4224ccaecb14d942c71d31bef20d78c"
DEPENDS += "boost qemu-native"
-PV = "1.1.8"
+PV = "1.1.9"
SRC_URI = "git://github.com/boost-ext/sml.git;protocol=https;branch=master"
-SRCREV = "8eb63a8b77bb662075dd36b316e53f75e605fd0f"
+SRCREV = "751b6f10b73c086e0e8850a7ef5b5aea2136831b"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/cpp-netlib/cpp-netlib/a53f123040998744602f190944464af0e159ea19.patch b/meta-openembedded/meta-oe/recipes-support/cpp-netlib/cpp-netlib/a53f123040998744602f190944464af0e159ea19.patch
new file mode 100644
index 0000000000..c93b76619c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/cpp-netlib/cpp-netlib/a53f123040998744602f190944464af0e159ea19.patch
@@ -0,0 +1,30 @@
+From a53f123040998744602f190944464af0e159ea19 Mon Sep 17 00:00:00 2001
+From: jjll <jjll@gmv.com>
+Date: Wed, 6 Sep 2023 20:47:41 +0200
+Subject: [PATCH] Compatibility with boost 1.83
+
+Upstream-Status: Backport [https://github.com/cpp-netlib/cpp-netlib/pull/902]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libs/network/src/server_request_parsers_impl.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/boost/network/protocol/http/server/impl/parsers.ipp
++++ b/boost/network/protocol/http/server/impl/parsers.ipp
+@@ -13,6 +13,7 @@
+ #include <tuple>
+ #include <boost/fusion/include/std_tuple.hpp>
+ #include <boost/network/protocol/http/message/header.hpp>
++#include <boost/regex/pending/unicode_iterator.hpp>
+
+ #ifdef BOOST_NETWORK_NO_LIB
+ #ifndef BOOST_NETWORK_INLINE
+@@ -32,7 +33,7 @@ typedef std::basic_string<uint32_t> u32_
+ template <> // <typename Attrib, typename T, typename Enable>
+ struct assign_to_container_from_value<std::string, u32_string, void> {
+ static void call(u32_string const& val, std::string& attr) {
+- u32_to_u8_iterator<u32_string::const_iterator> begin = val.begin(),
++ boost::u32_to_u8_iterator<u32_string::const_iterator> begin = val.begin(),
+ end = val.end();
+ for (; begin != end; ++begin) attr += *begin;
+ }
diff --git a/meta-openembedded/meta-oe/recipes-support/cpp-netlib/cpp-netlib_git.bb b/meta-openembedded/meta-oe/recipes-support/cpp-netlib/cpp-netlib_git.bb
index 3c271ae5d1..bda5177fc4 100644
--- a/meta-openembedded/meta-oe/recipes-support/cpp-netlib/cpp-netlib_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/cpp-netlib/cpp-netlib_git.bb
@@ -8,13 +8,13 @@ DESCRIPTION = "Modern C++ network programming libraries."
SECTION = "libs"
LICENSE = "BSL-1.0 & MIT & Python-2.0"
LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
+PV = "0.13.0"
+SRCREV = "31d304cdf52b485f465ada433d8905171b61cbff"
SRC_URI = "\
git://github.com/cpp-netlib/cpp-netlib.git;protocol=https;branch=0.13-release \
+ file://a53f123040998744602f190944464af0e159ea19.patch \
"
-SRC_URI[sha256sum] = "0b9255bb0668d89867a1f367d770f12d7038db4f5b6111774ef032f669cccad4"
-
-SRCREV = "ca95f04d140acf619892ee02a82e930dd91ff7d4"
S = "${WORKDIR}/git"
@@ -24,3 +24,7 @@ DEPENDS = "zlib boost openssl"
EXTRA_OECMAKE:append = " -DCPP-NETLIB_BUILD_TESTS=OFF -DCPP-NETLIB_BUILD_EXAMPLES=OFF"
+do_install:append() {
+ sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/cppnetlib/cppnetlibConfig.cmake
+ sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/cppnetlib/cppnetlibTargets-noconfig.cmake
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/exiv2/exiv2_0.27.6.bb b/meta-openembedded/meta-oe/recipes-support/exiv2/exiv2_0.28.0.bb
index 6ccd9fb266..958810cf7a 100644
--- a/meta-openembedded/meta-oe/recipes-support/exiv2/exiv2_0.27.6.bb
+++ b/meta-openembedded/meta-oe/recipes-support/exiv2/exiv2_0.28.0.bb
@@ -2,10 +2,10 @@ SUMMARY = "Exif, Iptc and XMP metadata manipulation library and tools"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=625f055f41728f84a8d7938acc35bdc2"
-DEPENDS = "zlib expat"
+DEPENDS = "zlib expat brotli libinih"
SRC_URI = "https://github.com/Exiv2/${BPN}/releases/download/v${PV}/${BP}-Source.tar.gz"
-SRC_URI[sha256sum] = "4c192483a1125dc59a3d70b30d30d32edace9e14adf52802d2f853abf72db8a6"
+SRC_URI[sha256sum] = "89af3b5ef7277753ef7a7b5374ae017c6b9e304db3b688f1948e73e103491f3d"
# Once patch is obsolete (project should be aware due to PRs), dos2unix can be removed either
# inherit dos2unix
S = "${WORKDIR}/${BP}-Source"
diff --git a/meta-openembedded/meta-oe/recipes-support/fftw/fftw/run-ptest b/meta-openembedded/meta-oe/recipes-support/fftw/fftw/run-ptest
index 6d8dd96f02..4d19057975 100644
--- a/meta-openembedded/meta-oe/recipes-support/fftw/fftw/run-ptest
+++ b/meta-openembedded/meta-oe/recipes-support/fftw/fftw/run-ptest
@@ -10,21 +10,18 @@ cd ../fftwl
/usr/bin/perl -w ./check.pl -r -c=30 -v `pwd`/benchl
fftwl_result=$?
-echo -n "fftw test result:"
if [ $fftw_result = "0" ]; then
- echo PASSED
+ echo "PASS: fftw"
else
- echo FAILED
+ echo "FAIL: fftw"
fi
-echo -n "fftwf test result:"
if [ $fftwf_result = "0" ]; then
- echo PASSED
+ echo "PASS: fftwf"
else
- echo FAILED
+ echo "FAIL: fftwf"
fi
-echo -n "fftwl test result:"
if [ $fftwl_result = "0" ]; then
- echo PASSED
+ echo "PASS: fftwl"
else
- echo FAILED
+ echo "FAIL: fftwl"
fi
diff --git a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-const-qualifier-error.patch b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-const-qualifier-error.patch
new file mode 100644
index 0000000000..87a456d16d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-const-qualifier-error.patch
@@ -0,0 +1,57 @@
+From 761b4df04a141cc8c9507c741e4046c6c6b00491 Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@fujitsu.com>
+Date: Mon, 11 Sep 2023 09:00:39 +0000
+Subject: [PATCH] Fix const qualifier error
+
+Fixes clang error
+error: incompatible function pointer types assigning to 'OBJECT_NEW_FN' (aka 'void *(*)(void *)') from 'void *(const void *)' [-Wincompatible-function-pointer-types]
+| obj->fnObjectNew = uwac_event_clone;
+| ^ ~~~~~~~~~~~~~~~~
+
+https://github.com/FreeRDP/FreeRDP/commit/6e3c00725aae99d03a0baa65430eceddebd9dee8
+Upstream-Status: Backport
+
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+---
+ libfreerdp/codec/rfx.c | 4 ++--
+ winpr/include/winpr/collections.h | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/libfreerdp/codec/rfx.c b/libfreerdp/codec/rfx.c
+index ccbc5af..eec7365 100644
+--- a/libfreerdp/codec/rfx.c
++++ b/libfreerdp/codec/rfx.c
+@@ -153,7 +153,7 @@ static void rfx_tile_init(void* obj)
+ }
+ }
+
+-static void* rfx_decoder_tile_new(void* val)
++static void* rfx_decoder_tile_new(const void* val)
+ {
+ RFX_TILE* tile = NULL;
+ WINPR_UNUSED(val);
+@@ -184,7 +184,7 @@ static void rfx_decoder_tile_free(void* obj)
+ }
+ }
+
+-static void* rfx_encoder_tile_new(void* val)
++static void* rfx_encoder_tile_new(const void* val)
+ {
+ WINPR_UNUSED(val);
+ return calloc(1, sizeof(RFX_TILE));
+diff --git a/winpr/include/winpr/collections.h b/winpr/include/winpr/collections.h
+index 807f011..b8c8d9d 100644
+--- a/winpr/include/winpr/collections.h
++++ b/winpr/include/winpr/collections.h
+@@ -36,7 +36,7 @@ extern "C"
+ {
+ #endif
+
+- typedef void* (*OBJECT_NEW_FN)(void* val);
++ typedef void* (*OBJECT_NEW_FN)(const void* val);
+ typedef void (*OBJECT_INIT_FN)(void* obj);
+ typedef void (*OBJECT_UNINIT_FN)(void* obj);
+ typedef void (*OBJECT_FREE_FN)(void* obj);
+--
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.10.0.bb b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.11.1.bb
index 4cb452608e..063a63b1e3 100644
--- a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.10.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.11.1.bb
@@ -13,9 +13,10 @@ inherit pkgconfig cmake gitpkgv
PE = "1"
PKGV = "${GITPKGVTAG}"
-SRCREV = "7471ae383e7b7a613f275e19f7b54958a193c891"
+SRCREV = "9d3d40bf3e429c0cd6609f686c0e73ed0eff0a07"
SRC_URI = "git://github.com/FreeRDP/FreeRDP.git;branch=stable-2.0;protocol=https \
file://winpr-makecert-Build-with-install-RPATH.patch \
+ file://0001-Fix-const-qualifier-error.patch \
"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/hdf5/files/0001-cmake-remove-build-flags.patch b/meta-openembedded/meta-oe/recipes-support/hdf5/files/0001-cmake-remove-build-flags.patch
index a8050cc55b..68d9c3a3cf 100644
--- a/meta-openembedded/meta-oe/recipes-support/hdf5/files/0001-cmake-remove-build-flags.patch
+++ b/meta-openembedded/meta-oe/recipes-support/hdf5/files/0001-cmake-remove-build-flags.patch
@@ -1,58 +1,96 @@
-From 39572baac462f16b39dc385751d5c642646718d3 Mon Sep 17 00:00:00 2001
+From 4fa437782261c0da785d4574ad3a03700f624e66 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
-Date: Wed, 4 Aug 2021 17:05:10 +0800
+Date: Tue, 19 Sep 2023 02:56:09 +0000
Subject: [PATCH] cmake: remove build flags
-Remove the build flags to improve reproducibility.
+Don't generate the build host related info and reemove the build flags
+to improve reproducibility.
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
- config/cmake/libh5cc.in | 2 +-
- config/cmake/libhdf5.settings.cmake.in | 12 ++++++------
- 2 files changed, 7 insertions(+), 7 deletions(-)
+ config/cmake/libhdf5.settings.cmake.in | 18 +++++++++---------
+ src/H5make_libsettings.c | 17 -----------------
+ 2 files changed, 9 insertions(+), 26 deletions(-)
---- a/config/cmake/libh5cc.in
-+++ b/config/cmake/libh5cc.in
-@@ -44,7 +44,7 @@ for arg in $@ ; do
- exit $status
- ;;
- *)
-- @_PKG_CONFIG_COMPILER@ $@ `pkg-config --define-variable=prefix=$dir --cflags --libs @_PKG_CONFIG_LIBNAME@`
-+ `pkg-config --define-variable=prefix=$dir --cflags --libs @_PKG_CONFIG_LIBNAME@-@_PKG_CONFIG_VERSION@` $@
- status=$?
- exit $status
- ;;
+diff --git a/config/cmake/libhdf5.settings.cmake.in b/config/cmake/libhdf5.settings.cmake.in
+index f60f0de..f4433c0 100644
--- a/config/cmake/libhdf5.settings.cmake.in
+++ b/config/cmake/libhdf5.settings.cmake.in
-@@ -27,14 +27,14 @@ Linking Options:
+@@ -23,23 +23,23 @@ Linking Options:
+ ----------------
+ Libraries: @BUILD_NAME_EXT@
+ Statically Linked Executables: @BUILD_STATIC_EXECS@
+- LDFLAGS: @CMAKE_SHARED_LINKER_FLAGS@
++ LDFLAGS:
H5_LDFLAGS: @H5_LDFLAGS@
AM_LDFLAGS: @AM_LDFLAGS@
Extra libraries: @LINK_LIBS@
- Archiver: @CMAKE_AR@
+- AR_FLAGS:
- Ranlib: @CMAKE_RANLIB@
+ Archiver:
++ AR_FLAGS:
+ Ranlib:
Languages:
----------
C: YES
- C Compiler: @CMAKE_C_COMPILER@ @CMAKE_C_COMPILER_VERSION@
-- CPPFLAGS: @CPPFLAGS@
+ C Compiler:
-+ CPPFLAGS:
+ CPPFLAGS: @CPPFLAGS@
H5_CPPFLAGS: @H5_CPPFLAGS@
AM_CPPFLAGS: @AM_CPPFLAGS@
- CFLAGS: @CMAKE_C_FLAGS@
-@@ -53,8 +53,8 @@ Languages:
- @BUILD_FORTRAN_CONDITIONAL_TRUE@ Module Directory: @CMAKE_Fortran_MODULE_DIRECTORY@
+- CFLAGS: @CMAKE_C_FLAGS@
+- H5_CFLAGS: @HDF5_CMAKE_C_FLAGS@
++ CFLAGS:
++ H5_CFLAGS:
+ AM_CFLAGS: @AM_CFLAGS@
+ Shared C Library: @H5_ENABLE_SHARED_LIB@
+ Static C Library: @H5_ENABLE_STATIC_LIB@
+@@ -51,11 +51,11 @@ Languages:
+ AM Fortran Flags: @AM_FCFLAGS@
+ Shared Fortran Library: @H5_ENABLE_SHARED_LIB@
+ Static Fortran Library: @H5_ENABLE_STATIC_LIB@
+- Module Directory: @CMAKE_Fortran_MODULE_DIRECTORY@
++ Module Directory:
C++: @HDF5_BUILD_CPP_LIB@
--@BUILD_CXX_CONDITIONAL_TRUE@ C++ Compiler: @CMAKE_CXX_COMPILER@ @CMAKE_CXX_COMPILER_VERSION@
--@BUILD_CXX_CONDITIONAL_TRUE@ C++ Flags: @CMAKE_CXX_FLAGS@
-+@BUILD_CXX_CONDITIONAL_TRUE@ C++ Compiler:
-+@BUILD_CXX_CONDITIONAL_TRUE@ C++ Flags:
- @BUILD_CXX_CONDITIONAL_TRUE@ H5 C++ Flags: @HDF5_CMAKE_CXX_FLAGS@
- @BUILD_CXX_CONDITIONAL_TRUE@ AM C++ Flags: @AM_CXXFLAGS@
- @BUILD_CXX_CONDITIONAL_TRUE@ Shared C++ Library: @H5_ENABLE_SHARED_LIB@
+ C++ Compiler: @CMAKE_CXX_COMPILER@ @CMAKE_CXX_COMPILER_VERSION@
+- C++ Flags: @CMAKE_CXX_FLAGS@
++ C++ Flags:
+ H5 C++ Flags: @HDF5_CMAKE_CXX_FLAGS@
+ AM C++ Flags: @AM_CXXFLAGS@
+ Shared C++ Library: @H5_ENABLE_SHARED_LIB@
+diff --git a/src/H5make_libsettings.c b/src/H5make_libsettings.c
+index 2661288..7c0f84f 100644
+--- a/src/H5make_libsettings.c
++++ b/src/H5make_libsettings.c
+@@ -205,23 +205,6 @@ information about the library build configuration\n";
+ fprintf(rawoutstream, "/* Generated automatically by H5make_libsettings -- do not edit */\n\n\n");
+ fputs(FileHeader, rawoutstream); /*the copyright notice--see top of this file */
+
+- fprintf(rawoutstream, " *\n * Created:\t\t%s %2d, %4d\n", month_name[tm->tm_mon], tm->tm_mday,
+- 1900 + tm->tm_year);
+- if (pwd || real_name[0] || host_name[0]) {
+- fprintf(rawoutstream, " *\t\t\t");
+- if (real_name[0])
+- fprintf(rawoutstream, "%s <", real_name);
+-#ifdef H5_HAVE_GETPWUID
+- if (pwd)
+- fputs(pwd->pw_name, rawoutstream);
+-#endif
+- if (host_name[0])
+- fprintf(rawoutstream, "@%s", host_name);
+- if (real_name[0])
+- fprintf(rawoutstream, ">");
+- fputc('\n', rawoutstream);
+- }
+-
+ fprintf(rawoutstream, " *\n * Purpose:\t\t");
+
+ for (s = purpose; *s; s++) {
+--
+2.35.5
+
diff --git a/meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.14.0.bb b/meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.14.2.bb
index d0ff2ef487..68b91c0b0c 100644
--- a/meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.14.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.14.2.bb
@@ -5,18 +5,18 @@ HOMEPAGE = "https://www.hdfgroup.org/"
SECTION = "libs"
LICENSE = "HDF5"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ac1039f6bf7c9ab2b3693836f46d0735"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9ba0f3d878ab6c2403c86e9b0362d998"
inherit cmake siteinfo qemu multilib_header
-DEPENDS += "qemu-native"
+DEPENDS += "qemu-native zlib"
SRC_URI = " \
https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.14/hdf5-${PV}/src/${BPN}-${PV}.tar.bz2 \
file://0002-Remove-suffix-shared-from-shared-library-name.patch \
file://0001-cmake-remove-build-flags.patch \
"
-SRC_URI[sha256sum] = "e4e79433450edae2865a4c6328188bb45391b29d74f8c538ee699f0b116c2ba0"
+SRC_URI[sha256sum] = "ea3c5e257ef322af5e77fc1e52ead3ad6bf3bb4ac06480dd17ee3900d7a24cfb"
FILES:${PN} += "${libdir}/libhdf5.settings ${datadir}/*"
@@ -45,6 +45,11 @@ do_install:append() {
install -m 755 ${B}/bin/H5detect ${D}${bindir}
install -m 755 ${B}/bin/H5make_libsettings ${D}${bindir}
oe_multilib_header H5pubconf.h
+ # remove the buildpath
+ sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/pkgconfig/hdf5.pc
+ sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/hdf5-targets.cmake
+ sed -i -e 's|${RECIPE_SYSROOT_NATIVE}||g' ${D}${bindir}/h5hlcc
+ sed -i -e 's|${RECIPE_SYSROOT_NATIVE}||g' ${D}${bindir}/h5cc
}
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/iniparser/iniparser/CVE-2023-33461.patch b/meta-openembedded/meta-oe/recipes-support/iniparser/iniparser/CVE-2023-33461.patch
new file mode 100644
index 0000000000..db5fb06aac
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/iniparser/iniparser/CVE-2023-33461.patch
@@ -0,0 +1,48 @@
+CVE: CVE-2023-33461
+Upstream-Status: Backport [https://github.com/ndevilla/iniparser/pull/146/commits/ace9871f65d11b5d73f0b9ee8cf5d2807439442d]
+Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
+
+
+From ace9871f65d11b5d73f0b9ee8cf5d2807439442d Mon Sep 17 00:00:00 2001
+From: Antonio <antoniolrt@gmail.com>
+Date: Fri, 2 Jun 2023 15:03:10 -0300
+Subject: [PATCH] Handle null return from iniparser_getstring
+
+Fix handling of NULL returns from iniparser_getstring in
+iniparser_getboolean, iniparser_getlongint and iniparser_getdouble,
+avoiding a crash.
+---
+ src/iniparser.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/iniparser.c b/src/iniparser.c
+index f1d1658..dbceb20 100644
+--- a/src/iniparser.c
++++ b/src/iniparser.c
+@@ -456,7 +456,7 @@ long int iniparser_getlongint(const dictionary * d, const char * key, long int n
+ const char * str ;
+
+ str = iniparser_getstring(d, key, INI_INVALID_KEY);
+- if (str==INI_INVALID_KEY) return notfound ;
++ if (str==NULL || str==INI_INVALID_KEY) return notfound ;
+ return strtol(str, NULL, 0);
+ }
+
+@@ -511,7 +511,7 @@ double iniparser_getdouble(const dictionary * d, const char * key, double notfou
+ const char * str ;
+
+ str = iniparser_getstring(d, key, INI_INVALID_KEY);
+- if (str==INI_INVALID_KEY) return notfound ;
++ if (str==NULL || str==INI_INVALID_KEY) return notfound ;
+ return atof(str);
+ }
+
+@@ -553,7 +553,7 @@ int iniparser_getboolean(const dictionary * d, const char * key, int notfound)
+ const char * c ;
+
+ c = iniparser_getstring(d, key, INI_INVALID_KEY);
+- if (c==INI_INVALID_KEY) return notfound ;
++ if (c==NULL || c==INI_INVALID_KEY) return notfound ;
+ if (c[0]=='y' || c[0]=='Y' || c[0]=='1' || c[0]=='t' || c[0]=='T') {
+ ret = 1 ;
+ } else if (c[0]=='n' || c[0]=='N' || c[0]=='0' || c[0]=='f' || c[0]=='F') {
diff --git a/meta-openembedded/meta-oe/recipes-support/iniparser/iniparser_4.1.bb b/meta-openembedded/meta-oe/recipes-support/iniparser/iniparser_4.1.bb
index f9e1530161..5e42cdcb06 100644
--- a/meta-openembedded/meta-oe/recipes-support/iniparser/iniparser_4.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/iniparser/iniparser_4.1.bb
@@ -10,7 +10,9 @@ PV .= "+git${SRCPV}"
SRC_URI = "git://github.com/ndevilla/iniparser.git;protocol=https;branch=master \
file://0001-iniparser.pc-Make-libpath-a-variable.patch \
- file://Add-CMake-support.patch"
+ file://Add-CMake-support.patch \
+ file://CVE-2023-33461.patch \
+"
SRCREV= "deb85ad4936d4ca32cc2260ce43323d47936410d"
diff --git a/meta-openembedded/meta-oe/recipes-support/libtommath/libtommath_1.2.0.bb b/meta-openembedded/meta-oe/recipes-support/libtommath/libtommath_1.2.1.bb
index 1efccdd843..32ec290c16 100644
--- a/meta-openembedded/meta-oe/recipes-support/libtommath/libtommath_1.2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libtommath/libtommath_1.2.1.bb
@@ -8,7 +8,7 @@ DEPENDS = "libtool-cross"
SRC_URI = "git://github.com/libtom/libtommath.git;protocol=https;branch=master"
-SRCREV = "6ca6898bf37f583c4cc9943441cd60dd69f4b8f2"
+SRCREV = "97e500351e653472b2ea00b37137ad0414165efe"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb b/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
index 0d3ea4186a..4a1a0f568d 100644
--- a/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
+++ b/meta-openembedded/meta-oe/recipes-support/openct/openct_0.6.20.bb
@@ -1,4 +1,4 @@
-Summanry = "Middleware framework for smart card terminals"
+SUMMARY = "Middleware framework for smart card terminals"
HOMEPAGE = "https://github.com/OpenSC/openct/wiki"
DESCRIPTION = " \
OpenCT implements drivers for several smart card readers. \
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/0001-configure-Pass-pthread_t-to-pthread_detach.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/0001-configure-Pass-pthread_t-to-pthread_detach.patch
deleted file mode 100644
index 6e73f8b382..0000000000
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/0001-configure-Pass-pthread_t-to-pthread_detach.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 7577b120acda087bf3f5f613c2c72663b3864ad8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 4 Sep 2022 09:43:06 -0700
-Subject: [PATCH] configure: Pass pthread_t to pthread_detach
-
-This helps compilers when using C2X standard
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 0978eeb..58d15f8 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1467,10 +1467,7 @@ pthread_rwlock_t rwlock;
- dnl save the flags
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[
- #include <pthread.h>
--#ifndef NULL
--#define NULL (void*)0
--#endif
--]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
-+]], [[pthread_detach((pthread_t)-1);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
- ])
-
- if test $ol_cv_func_pthread_detach = no ; then
---
-2.37.3
-
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.5.13.bb b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.5.16.bb
index 7dc926c61c..8d13a4ddbd 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.5.13.bb
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.5.16.bb
@@ -19,10 +19,9 @@ SRC_URI = "http://www.openldap.org/software/download/OpenLDAP/openldap-release/$
file://slapd.service \
file://remove-user-host-pwd-from-version.patch \
file://0001-build-top.mk-unset-STRIP_OPTS.patch \
- file://0001-configure-Pass-pthread_t-to-pthread_detach.patch \
"
-SRC_URI[sha256sum] = "ee3c430c4ef7b87c57b622108c7339376d6c27fbbf2767770be3de1df63d008c"
+SRC_URI[sha256sum] = "546ba591822e8bb0e467d40c4d4a30f89d937c3a507fe83a578f582f6a211327"
DEPENDS = "util-linux groff-native"
diff --git a/meta-openembedded/meta-oe/recipes-support/opensc/files/CVE-2023-2977.patch b/meta-openembedded/meta-oe/recipes-support/opensc/files/CVE-2023-2977.patch
new file mode 100644
index 0000000000..165fc316bf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opensc/files/CVE-2023-2977.patch
@@ -0,0 +1,54 @@
+CVE: CVE-2023-2977
+Upstream-Status: Backport [ https://github.com/OpenSC/OpenSC/commit/81944d1529202bd28359bede57c0a15deb65ba8a ]
+Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
+
+
+From 81944d1529202bd28359bede57c0a15deb65ba8a Mon Sep 17 00:00:00 2001
+From: fullwaywang <fullwaywang@tencent.com>
+Date: Mon, 29 May 2023 10:38:48 +0800
+Subject: [PATCH] pkcs15init: correct left length calculation to fix buffer
+ overrun bug. Fixes #2785
+
+---
+ src/pkcs15init/pkcs15-cardos.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/pkcs15init/pkcs15-cardos.c b/src/pkcs15init/pkcs15-cardos.c
+index 9715cf390f..f41f73c349 100644
+--- a/src/pkcs15init/pkcs15-cardos.c
++++ b/src/pkcs15init/pkcs15-cardos.c
+@@ -872,7 +872,7 @@ static int cardos_have_verifyrc_package(sc_card_t *card)
+ sc_apdu_t apdu;
+ u8 rbuf[SC_MAX_APDU_BUFFER_SIZE];
+ int r;
+- const u8 *p = rbuf, *q;
++ const u8 *p = rbuf, *q, *pp;
+ size_t len, tlen = 0, ilen = 0;
+
+ sc_format_apdu(card, &apdu, SC_APDU_CASE_2_SHORT, 0xca, 0x01, 0x88);
+@@ -888,13 +888,13 @@ static int cardos_have_verifyrc_package(sc_card_t *card)
+ return 0;
+
+ while (len != 0) {
+- p = sc_asn1_find_tag(card->ctx, p, len, 0xe1, &tlen);
+- if (p == NULL)
++ pp = sc_asn1_find_tag(card->ctx, p, len, 0xe1, &tlen);
++ if (pp == NULL)
+ return 0;
+ if (card->type == SC_CARD_TYPE_CARDOS_M4_3) {
+ /* the verifyRC package on CardOS 4.3B use Manufacturer ID 0x01 */
+ /* and Package Number 0x07 */
+- q = sc_asn1_find_tag(card->ctx, p, tlen, 0x01, &ilen);
++ q = sc_asn1_find_tag(card->ctx, pp, tlen, 0x01, &ilen);
+ if (q == NULL || ilen != 4)
+ return 0;
+ if (q[0] == 0x07)
+@@ -902,7 +902,7 @@ static int cardos_have_verifyrc_package(sc_card_t *card)
+ } else if (card->type == SC_CARD_TYPE_CARDOS_M4_4) {
+ /* the verifyRC package on CardOS 4.4 use Manufacturer ID 0x03 */
+ /* and Package Number 0x02 */
+- q = sc_asn1_find_tag(card->ctx, p, tlen, 0x03, &ilen);
++ q = sc_asn1_find_tag(card->ctx, pp, tlen, 0x03, &ilen);
+ if (q == NULL || ilen != 4)
+ return 0;
+ if (q[0] == 0x02)
diff --git a/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.23.0.bb b/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.23.0.bb
index f68107df87..b3fc1f0458 100644
--- a/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.23.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.23.0.bb
@@ -16,6 +16,7 @@ SRCREV = "5497519ea6b4af596628f8f8f2f904bacaa3148f"
SRC_URI = "git://github.com/OpenSC/OpenSC;branch=master;protocol=https \
file://0001-pkcs11-tool-Fix-private-key-import.patch \
file://0002-pkcs11-tool-Log-more-information-on-OpenSSL-errors.patch \
+ file://CVE-2023-2977.patch \
"
DEPENDS = "virtual/libiconv openssl"
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-cppignore.lnx-Ignore-PKCS12-and-testLaunch-test.patch b/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-cppignore.lnx-Ignore-PKCS12-and-testLaunch-test.patch
new file mode 100644
index 0000000000..25934d61b3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-cppignore.lnx-Ignore-PKCS12-and-testLaunch-test.patch
@@ -0,0 +1,63 @@
+From ac0f06e20bdfaca74c8ab786be8ff8fc96b5a689 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 16 Sep 2023 19:52:56 -0700
+Subject: [PATCH] cppignore.lnx: Ignore PKCS12 and testLaunch test
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+These tests fail on Linux
+
+There were 4 failures:
+ 1: N7CppUnit10TestCallerI11ProcessTestEE.testLaunch
+ "rc == 3"
+ in "/usr/src/debug/poco/1.12.4-r0/Foundation/testsuite/src/ProcessTest.cpp", line 79
+ 2: N7CppUnit10TestCallerI11ProcessTestEE.testLaunchRedirectIn
+ "rc == 100"
+ in "/usr/src/debug/poco/1.12.4-r0/Foundation/testsuite/src/ProcessTest.cpp", line 106
+ 3: N7CppUnit10TestCallerI11ProcessTestEE.testLaunchRedirectOut
+ "s == "Hello, world!""
+ in "/usr/src/debug/poco/1.12.4-r0/Foundation/testsuite/src/ProcessTest.cpp", line 134
+ 4: N7CppUnit10TestCallerI11ProcessTestEE.testLaunchEnv
+ "s == "test""
+ in "/usr/src/debug/poco/1.12.4-r0/Foundation/testsuite/src/ProcessTest.cpp", line 166
+
+ There were 4 errors:-
+ 1: N7CppUnit10TestCallerI7EVPTestEE.testRSAEVPKeyFromPKCS12
+ │ │ "N4Poco17NotFoundExceptionE:
+ Not found: POCO_BASE"
+ │ │ in "<unknown>", line -1
+ 2: N7CppUnit10TestCallerI19PKCS12ContainerTestEE.testFullPKCS12
+ │ │ "N4Poco17NotFoundExceptionE:
+ Not found: POCO_BASE"
+ │ │ in "<unknown>", line -1
+ 3: N7CppUnit10TestCallerI19PKCS12ContainerTestEE.testCertsOnlyPKCS12
+ │ │ "N4Poco17NotFoundExceptionE:
+ Not found: POCO_BASE"
+ │ │ in "<unknown>", line -1
+ 4: N7CppUnit10TestCallerI19PKCS12ContainerTestEE.testPEMReadWrite
+ │ │ "N4Poco17NotFoundExceptionE:
+ Not found: POCO_BASE"
+ │ │ in "<unknown>", line -1
+
+Upstream-Status: Inappropriate [OE specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cppignore.lnx | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/cppignore.lnx
++++ b/cppignore.lnx
+@@ -26,3 +26,12 @@ N7CppUnit10TestCallerI9TimerTestEE.testS
+ N7CppUnit10TestCallerI9TimerTestEE.testScheduleIntervalClock
+ N7CppUnit10TestCallerI9TimerTestEE.testScheduleIntervalTimestamp
+ N7CppUnit10TestCallerI9TimerTestEE.testTimer
++N7CppUnit10TestCallerI11ProcessTestEE.testLaunch
++N7CppUnit10TestCallerI11ProcessTestEE.testLaunchRedirectIn
++N7CppUnit10TestCallerI11ProcessTestEE.testLaunchRedirectOut
++N7CppUnit10TestCallerI11ProcessTestEE.testLaunchEnv
++N7CppUnit10TestCallerI7EVPTestEE.testRSAEVPKeyFromPKCS12
++N7CppUnit10TestCallerI19PKCS12ContainerTestEE.testFullPKCS12
++N7CppUnit10TestCallerI19PKCS12ContainerTestEE.testCertsOnlyPKCS12
++N7CppUnit10TestCallerI19PKCS12ContainerTestEE.testPEMReadWrite
++N7CppUnit10TestCallerI11MongoDBTestEE.testArray
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest b/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest
index 521cc08a75..c8e50fc967 100644
--- a/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest
+++ b/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest
@@ -1,8 +1,21 @@
#!/bin/sh
+export POCO_BASE=/usr/lib/poco/ptest
+export LD_LIBRARY_PATH=${POCO_BASE}/bin:${LD_LIBRARY_PATH}
+i=0
while read runner; do
oldpath=`pwd` >/dev/null
cd bin
echo Testing $runner
./$runner -ignore $oldpath/cppignore.lnx -all
+ export res$((i++))=$?
cd $oldpath >/dev/null
done < testrunners
+i=0
+while read runner; do
+ eval assign=\$res$((i++))
+ if [ $assign -ne 0 ]; then
+ echo "FAIL: $runner"
+ else
+ echo "PASS: $runner"
+ fi
+done < testrunners
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.12.4.bb b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.12.4.bb
index 47dac1a89e..8505f66e8b 100644
--- a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.12.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.12.4.bb
@@ -10,6 +10,7 @@ DEPENDS = "libpcre2 zlib"
SRC_URI = "git://github.com/pocoproject/poco.git;branch=master;protocol=https \
file://0001-Use-std-atomic-int-instead-of-std-atomic-bool.patch \
+ file://0001-cppignore.lnx-Ignore-PKCS12-and-testLaunch-test.patch \
file://run-ptest \
"
SRCREV = "1211613642269b7d53bea58b02de7fcd25ece3b9"
@@ -23,7 +24,13 @@ inherit cmake ptest
# By default the most commonly used poco components are built
# Foundation is built anyway and doesn't need to be listed explicitly
# these don't have dependencies outside oe-core
-PACKAGECONFIG ??= "XML JSON MongoDB PDF Util Net NetSSL Crypto JWT Data DataSQLite Zip Encodings Redis Prometheus"
+PACKAGECONFIG ??= "XML JSON PDF Util Net NetSSL Crypto JWT Data DataSQLite Zip Encodings Redis Prometheus"
+# MongoDB does not build for all architectures yet keep in sync with COMPATIBLE_HOST list in mongodb recipe
+# and mongodb needs meta-python enabled as well
+PACKAGECONFIG:remove:riscv32 = "MongoDB"
+PACKAGECONFIG:remove:riscv64 = "MongoDB"
+PACKAGECONFIG:remove:mipsarch = "MongoDB"
+PACKAGECONFIG:remove:powerpc = "MongoDB"
PACKAGECONFIG[XML] = "-DENABLE_XML=ON,-DENABLE_XML=OFF,expat"
PACKAGECONFIG[JSON] = "-DENABLE_JSON=ON,-DENABLE_JSON=OFF"
@@ -105,5 +112,7 @@ FILES:${PN}-cppunit += "${libdir}/libCppUnit.so*"
ALLOW_EMPTY:${PN}-cppunit = "1"
RDEPENDS:${PN}-ptest += "${PN}-cppunit"
+RDEPENDS:${PN}-ptest += "${@bb.utils.contains('PACKAGECONFIG', 'MongoDB', 'mongodb', '', d)}"
+RDEPENDS:${PN}-ptest += "${@bb.utils.contains('PACKAGECONFIG', 'Redis', 'redis', '', d)}"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/pv/pv/0001-pv-display-handle-error-of-tcgetpgrp-in-pv_in_foregr.patch b/meta-openembedded/meta-oe/recipes-support/pv/pv/0001-pv-display-handle-error-of-tcgetpgrp-in-pv_in_foregr.patch
index 3c364dcc4e..c51fb1cfdb 100644
--- a/meta-openembedded/meta-oe/recipes-support/pv/pv/0001-pv-display-handle-error-of-tcgetpgrp-in-pv_in_foregr.patch
+++ b/meta-openembedded/meta-oe/recipes-support/pv/pv/0001-pv-display-handle-error-of-tcgetpgrp-in-pv_in_foregr.patch
@@ -15,6 +15,8 @@ correctly and pv_in_foreground() returns also true in that case.
Signed-off-by: Michael Weiß <michael.weiss@aisec.fraunhofer.de>
---
+Upstream-Status: Pending
+
src/pv/display.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.4.31.bb b/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.4.32.bb
index 56ad32ce37..74c68a59d8 100644
--- a/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.4.31.bb
+++ b/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.4.32.bb
@@ -25,7 +25,7 @@ DEPENDS = " \
DEPENDS:append:libc-musl = " libexecinfo"
LDFLAGS:append:libc-musl = " -lexecinfo"
-SRCREV = "7407cc3a27eb25ba4ddddeab565f67fd688324ed"
+SRCREV = "4804f68f23045a38c3a7be46810fce14bac2fc3c"
SRC_URI = "git://gitlab.com/Remmina/Remmina;protocol=https;branch=master"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils/0001-configure.ac-Check-and-define-intmax_t-type.patch b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils/0001-configure.ac-Check-and-define-intmax_t-type.patch
new file mode 100644
index 0000000000..32562a08bc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils/0001-configure.ac-Check-and-define-intmax_t-type.patch
@@ -0,0 +1,32 @@
+From ea6f7a4c22f1b6f28cf426566cccd65eb9a0e9de Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 10 Sep 2023 13:52:31 -0700
+Subject: [PATCH] configure.ac: Check and define intmax_t type
+
+If stdint.h or inttypes.h defines the type intmax_t, define HAVE_INTMAX_T.
+Otherwise, define intmax_t to the widest signed integer type.
+
+intmax_t is defined in lib/system.h if system is not providing it but it
+needs to be checked by configure for existence first.
+
+Upstream-Status: Submitted [https://savannah.gnu.org/bugs/index.php?64653]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/configure.ac b/configure.ac
+index 1242cb7..2ccaac9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -72,6 +72,7 @@ AC_HEADER_STAT
+ AC_HEADER_STDC
+ AC_STRUCT_TIMEZONE
+ AC_TYPE_SIZE_T
++AC_TYPE_INTMAX_T
+ AC_CHECK_FUNCS([fchmod isascii strchr])
+ AC_FUNC_CLOSEDIR_VOID
+ AC_FUNC_FSEEKO
+--
+2.42.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
index bd2776e1bc..2a16b18288 100644
--- a/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
@@ -12,6 +12,7 @@ SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \
file://0001-Fix-build-with-recent-gettext.patch \
file://0001-Fix-building-with-GCC-10.patch \
file://0002-Do-not-include-lib-md5.c-into-src-shar.c.patch \
+ file://0001-configure.ac-Check-and-define-intmax_t-type.patch \
"
SRC_URI[md5sum] = "32a51b23e25ad5e6af4b89f228be1800"
SRC_URI[sha256sum] = "ee336e68549664e7a19b117adf02edfdeac6307f22e5ba78baca457116914637"
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/0001-Makefile.am-Dont-include-buildpath.patch b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/0001-Makefile.am-Dont-include-buildpath.patch
new file mode 100644
index 0000000000..727c5a32fc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2/0001-Makefile.am-Dont-include-buildpath.patch
@@ -0,0 +1,47 @@
+From b1b58f122a3e05b5689358fdd3203ba110cca567 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Sun, 24 Sep 2023 22:20:42 +0200
+Subject: [PATCH] Reproducibility fix
+
+This fixes:
+WARNING: udisks2-2.10.1-r0 do_package_qa: QA Issue: File /usr/lib/udisks2/modules/libudisks2_btrfs.so in package udisks2 contains reference to TMPDIR
+File /usr/lib/udisks2/modules/libudisks2_lvm2.so in package udisks2 contains reference to TMPDIR
+File /usr/libexec/udisks2/udisksd in package udisks2 contains reference to TMPDIR [buildpaths]
+
+Upstream-Status: Inappropriate [oe-specific]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ modules/lvm2/Makefile.am | 2 +-
+ src/Makefile.am | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules/lvm2/Makefile.am b/modules/lvm2/Makefile.am
+index 67b8aa6b3..e4ae462e7 100644
+--- a/modules/lvm2/Makefile.am
++++ b/modules/lvm2/Makefile.am
+@@ -16,7 +16,7 @@ CPPFLAGS = \
+ -DLVM_HELPER_DIR=\""$(prefix)/lib/udisks2/"\" \
+ -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \
+ -DUDISKS_COMPILATION \
+- -DBUILD_DIR=\"$(abs_top_builddir)/\" \
++ -DBUILD_DIR=\"/usr/src/\" \
+ $(POLKIT_GOBJECT_1_CFLAGS) \
+ $(GLIB_CFLAGS) \
+ $(GIO_CFLAGS) \
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 5a174d1ab..0da3a497b 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -20,7 +20,7 @@ CPPFLAGS = \
+ -DUDISKS_MODULE_DIR=\"$(libdir)/udisks2/modules\" \
+ -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \
+ -DUDISKS_COMPILATION \
+- -DBUILD_DIR=\"$(abs_top_builddir)/\" \
++ -DBUILD_DIR=\"/usr/src/\" \
+ $(POLKIT_GOBJECT_1_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ $(GLIB_CFLAGS) \
+--
+2.42.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.9.4.bb b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.10.1.bb
index 2030063712..cb1cbe670d 100644
--- a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.9.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.10.1.bb
@@ -17,8 +17,11 @@ DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
RDEPENDS:${PN} = "acl"
-SRC_URI = "git://github.com/storaged-project/udisks.git;branch=2.9.x-branch;protocol=https"
-SRCREV = "001c486e6d099ed33e2de4f5c73c03e3ee180f81"
+SRC_URI = " \
+ git://github.com/storaged-project/udisks.git;branch=2.10.x-branch;protocol=https \
+ file://0001-Makefile.am-Dont-include-buildpath.patch \
+"
+SRCREV = "18c9faf089e306ad6f3f51f5cb887a6b9aa08350"
S = "${WORKDIR}/git"
CVE_PRODUCT = "udisks"
@@ -45,6 +48,7 @@ FILES:${PN} += " \
${datadir}/dbus-1/ \
${datadir}/polkit-1 \
${datadir}/bash-completion \
+ ${datadir}/zsh \
${libdir}/polkit-1/extensions/*.so \
${nonarch_base_libdir}/udev/* \
${exec_prefix}${nonarch_base_libdir}/udisks2/* \
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-vbox_fb-fix-kernel-v6.5-build.patch b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-vbox_fb-fix-kernel-v6.5-build.patch
new file mode 100644
index 0000000000..01969d4a11
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-vbox_fb-fix-kernel-v6.5-build.patch
@@ -0,0 +1,50 @@
+From 4cf34517b0c793405dca154cc70c9b5d1a566a8a Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Fri, 29 Sep 2023 14:52:50 -0400
+Subject: [PATCH] vbox_fb: fix kernel v6.5 build
+
+When building against the 6.5 kernel (and kernel headers), the following
+build error is encountered:
+
+ | vboxguestdrivers/7.0.10/vboxguestdrivers-7.0.10/vboxvideo/vbox_fb.c:194:24: error: 'drm_fb_helper_sys_fillrect' undeclared here (not in a function); did you mean 'drm_fb_helper_lastclose'?
+ | 194 | .fb_fillrect = drm_fb_helper_sys_fillrect,
+ | | ^~~~~~~~~~~~~~~~~~~~~~~~~~
+ | | drm_fb_helper_lastclose
+ | vboxguestdrivers/7.0.10/vboxguestdrivers-7.0.10/vboxvideo/vbox_fb.c:195:24: error: 'drm_fb_helper_sys_copyarea' undeclared here (not in a function); did you mean 'drm_fb_helper_set_par'?
+ | 195 | .fb_copyarea = drm_fb_helper_sys_copyarea,
+ | | ^~~~~~~~~~~~~~~~~~~~~~~~~~
+ | | drm_fb_helper_set_par
+ | vboxguestdrivers/7.0.10/vboxguestdrivers-7.0.10/vboxvideo/vbox_fb.c:196:25: error: 'drm_fb_helper_sys_imageblit' undeclared here (not in a function)
+ | 196 | .fb_imageblit = drm_fb_helper_sys_imageblit,
+ | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+We backport a patch from vbox-dev to fix the issue.
+
+Upstream-Status: Submitted [https://www.mail-archive.com/vbox-dev@virtualbox.org/msg10129.html]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ src/VBox/Additions/linux/drm/vbox_fb.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/VBox/Additions/linux/drm/vbox_fb.c b/src/VBox/Additions/linux/drm/vbox_fb.c
+index 2a8c79ab..d453533c 100644
+--- a/src/VBox/Additions/linux/drm/vbox_fb.c
++++ b/src/VBox/Additions/linux/drm/vbox_fb.c
+@@ -196,9 +196,13 @@ static struct fb_ops vboxfb_ops = {
+ .owner = THIS_MODULE,
+ .fb_check_var = drm_fb_helper_check_var,
+ .fb_set_par = drm_fb_helper_set_par,
++#if RTLNX_VER_MIN(6, 5, 0)
++ FB_DEFAULT_SYS_OPS,
++#else
+ .fb_fillrect = drm_fb_helper_sys_fillrect,
+ .fb_copyarea = drm_fb_helper_sys_copyarea,
+ .fb_imageblit = drm_fb_helper_sys_imageblit,
++#endif
+ .fb_pan_display = drm_fb_helper_pan_display,
+ .fb_blank = drm_fb_helper_blank,
+ .fb_setcmap = drm_fb_helper_setcmap,
+--
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.10.bb b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.10.bb
index f193636524..8e90138244 100644
--- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.10.bb
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.10.bb
@@ -13,6 +13,7 @@ VBOX_NAME = "VirtualBox-${PV}"
SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
file://Makefile.utils \
+ file://0001-vbox_fb-fix-kernel-v6.5-build.patch \
"
SRC_URI[sha256sum] = "0b1e6d8b7f87d017c7fae37f80586acff04f799ffc1d51e995954d6415dee371"
diff --git a/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
index 8ae39f14e1..d6d4a2b322 100644
--- a/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
+++ b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
@@ -1,4 +1,4 @@
-From 10cfdcc905915d8814c609008a069102f2bc7e39 Mon Sep 17 00:00:00 2001
+From 69d8e34f60e6a124f699365101e854076cfe0f1b Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Tue, 27 Oct 2015 16:02:19 +0200
Subject: [PATCH] FindGObjectIntrospection.cmake: prefix variables obtained
@@ -9,12 +9,13 @@ reasons why this is not approproiate for upstream submission.
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
---
Source/cmake/FindGI.cmake | 3 +++
1 file changed, 3 insertions(+)
diff --git a/Source/cmake/FindGI.cmake b/Source/cmake/FindGI.cmake
-index af039cbb..b3e810cd 100644
+index fdc56b21..d42eca52 100644
--- a/Source/cmake/FindGI.cmake
+++ b/Source/cmake/FindGI.cmake
@@ -72,6 +72,9 @@ if (PKG_CONFIG_FOUND)
diff --git a/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/0d3344e17d258106617b0e6d783d073b188a2548.patch b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/0d3344e17d258106617b0e6d783d073b188a2548.patch
index 34e0ff9af3..d19d1e1176 100644
--- a/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/0d3344e17d258106617b0e6d783d073b188a2548.patch
+++ b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/0d3344e17d258106617b0e6d783d073b188a2548.patch
@@ -1,7 +1,8 @@
-From 647c93de99a0f71f478d76a4cc7714eba7ba1447 Mon Sep 17 00:00:00 2001
+From e3c12b38037b4bb3053c440e4bd22c36c1dc576b Mon Sep 17 00:00:00 2001
From: Adrian Perez de Castro <aperez@igalia.com>
Date: Thu, 2 Jun 2022 11:19:06 +0300
Subject: [PATCH] FELightningNEON.cpp fails to build, NEON fast path seems
+
unused https://bugs.webkit.org/show_bug.cgi?id=241182
Reviewed by NOBODY (OOPS!).
@@ -33,6 +34,7 @@ left for a follow-up fix.
Upstream-Status: Submitted [https://github.com/WebKit/WebKit/pull/1233]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
.../cpu/arm/filters/FELightingNEON.cpp | 4 +-
.../graphics/cpu/arm/filters/FELightingNEON.h | 52 +++++++++----------
@@ -203,7 +205,7 @@ index b17c603d..e4629cda 100644
-
-#endif // FELightingNEON_h
diff --git a/Source/WebCore/platform/graphics/filters/DistantLightSource.h b/Source/WebCore/platform/graphics/filters/DistantLightSource.h
-index 70c6512f..b032c82e 100644
+index 70f583b3..7d5d27e5 100644
--- a/Source/WebCore/platform/graphics/filters/DistantLightSource.h
+++ b/Source/WebCore/platform/graphics/filters/DistantLightSource.h
@@ -26,6 +26,10 @@
@@ -218,7 +220,7 @@ index 70c6512f..b032c82e 100644
class DistantLightSource : public LightSource {
diff --git a/Source/WebCore/platform/graphics/filters/FELighting.h b/Source/WebCore/platform/graphics/filters/FELighting.h
-index 53beb596..e78a9354 100644
+index 179edf6d..694d712d 100644
--- a/Source/WebCore/platform/graphics/filters/FELighting.h
+++ b/Source/WebCore/platform/graphics/filters/FELighting.h
@@ -35,8 +35,6 @@
@@ -229,8 +231,8 @@ index 53beb596..e78a9354 100644
-
class FELighting : public FilterEffect {
public:
- const Color& lightingColor() const { return m_lightingColor; }
-@@ -64,11 +62,6 @@ protected:
+ bool operator==(const FELighting&) const;
+@@ -68,11 +66,6 @@ protected:
std::unique_ptr<FilterEffectApplier> createSoftwareApplier() const override;
@@ -243,7 +245,7 @@ index 53beb596..e78a9354 100644
float m_surfaceScale;
float m_diffuseConstant;
diff --git a/Source/WebCore/platform/graphics/filters/PointLightSource.h b/Source/WebCore/platform/graphics/filters/PointLightSource.h
-index 3a5723f0..675d63f5 100644
+index a8cfdab8..34f867bb 100644
--- a/Source/WebCore/platform/graphics/filters/PointLightSource.h
+++ b/Source/WebCore/platform/graphics/filters/PointLightSource.h
@@ -26,6 +26,10 @@
@@ -258,7 +260,7 @@ index 3a5723f0..675d63f5 100644
class PointLightSource : public LightSource {
diff --git a/Source/WebCore/platform/graphics/filters/SpotLightSource.h b/Source/WebCore/platform/graphics/filters/SpotLightSource.h
-index 684626f7..dea58389 100644
+index 6404467a..5cac38f2 100644
--- a/Source/WebCore/platform/graphics/filters/SpotLightSource.h
+++ b/Source/WebCore/platform/graphics/filters/SpotLightSource.h
@@ -26,6 +26,10 @@
diff --git a/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/no-musttail-arm.patch b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/no-musttail-arm.patch
new file mode 100644
index 0000000000..c660baa1f7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/no-musttail-arm.patch
@@ -0,0 +1,21 @@
+clang/arm: Do not use MUST_TAIL_CALL
+
+This causes clang-17 to crash see [1]
+this code is new in webkit 2.42[2] thats why we do not see the crash in older webkit
+
+[1] https://github.com/llvm/llvm-project/issues/67767
+[2] https://github.com/WebKit/WebKit/commit/4d816460b765acd8aef90ab474615850b91ecc35
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/Source/WTF/wtf/Compiler.h
++++ b/Source/WTF/wtf/Compiler.h
+@@ -284,7 +284,7 @@
+ /* MUST_TAIL_CALL */
+
+ #if !defined(MUST_TAIL_CALL) && defined(__cplusplus) && defined(__has_cpp_attribute)
+-#if __has_cpp_attribute(clang::musttail)
++#if __has_cpp_attribute(clang::musttail) && !defined(__arm__)
+ #define MUST_TAIL_CALL [[clang::musttail]]
+ #endif
+ #endif
diff --git a/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/reproducibility.patch b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/reproducibility.patch
index e866a1a193..15e255e98f 100644
--- a/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/reproducibility.patch
+++ b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/reproducibility.patch
@@ -1,3 +1,8 @@
+From 3b25aac4240d8af8bed3b0113110b36980370a98 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Thu, 27 Jul 2023 22:09:06 +0200
+Subject: [PATCH] webkitgtk3: add recipe
+
Injection a year based on the current date isn't reproducible. Hack this
to a specific year for now for reproducibilty and to avoid autobuilder failures.
@@ -7,10 +12,14 @@ then this could be submitted upstream, sadly my ruby isn't up to that.
Upstream-Status: Pending [could be reworked]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Index: webkitgtk-2.34.2/Source/JavaScriptCore/generator/GeneratedFile.rb
-===================================================================
---- webkitgtk-2.34.2.orig/Source/JavaScriptCore/generator/GeneratedFile.rb
-+++ webkitgtk-2.34.2/Source/JavaScriptCore/generator/GeneratedFile.rb
+---
+ Source/JavaScriptCore/generator/GeneratedFile.rb | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Source/JavaScriptCore/generator/GeneratedFile.rb b/Source/JavaScriptCore/generator/GeneratedFile.rb
+index 6ed2b6e4..86a28286 100644
+--- a/Source/JavaScriptCore/generator/GeneratedFile.rb
++++ b/Source/JavaScriptCore/generator/GeneratedFile.rb
@@ -25,7 +25,7 @@ require 'date'
require 'digest'
diff --git a/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.40.5.bb b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.42.0.bb
index 5d43f3a8d1..f682cd9f03 100644
--- a/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.40.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.42.0.bb
@@ -13,9 +13,9 @@ SRC_URI = "https://www.webkitgtk.org/releases/webkitgtk-${PV}.tar.xz \
file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \
file://reproducibility.patch \
file://0d3344e17d258106617b0e6d783d073b188a2548.patch \
- file://check-GST_GL_HAVE_PLATFORM_GLX.patch \
+ file://no-musttail-arm.patch \
"
-SRC_URI[sha256sum] = "7de051a263668621d91a61a5eb1c3771d1a7cec900043d4afef06c326c16037f"
+SRC_URI[sha256sum] = "828f95935861fae583fb8f2ae58cf64c63c178ae2b7c2d6f73070813ad64ed1b"
inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gi-docgen
@@ -61,6 +61,7 @@ PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/lib
PACKAGECONFIG[geoclue] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue"
PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant2"
PACKAGECONFIG[gles2] = "-DENABLE_GLES2=ON,-DENABLE_GLES2=OFF,virtual/libgles2"
+PACKAGECONFIG[jpegxl] = " -DUSE_JPEGXL=ON,-DUSE_JPEGXL=OFF,libjxl"
PACKAGECONFIG[webgl] = "-DENABLE_WEBGL=ON,-DENABLE_WEBGL=OFF,virtual/egl"
PACKAGECONFIG[opengl] = "-DENABLE_GRAPHICS_CONTEXT_GL=ON,-DENABLE_GRAPHICS_CONTEXT_GL=OFF,virtual/egl"
PACKAGECONFIG[opengl-or-es] = "-DUSE_OPENGL_OR_ES=ON,-DUSE_OPENGL_OR_ES=OFF"
@@ -86,6 +87,9 @@ EXTRA_OECMAKE = " \
${@bb.utils.contains('GIDOCGEN_ENABLED', 'True', '-DENABLE_DOCUMENTATION=ON', '-DENABLE_DOCUMENTATION=OFF', d)} \
-DENABLE_MINIBROWSER=ON \
"
+# Unless DEBUG_BUILD is enabled, pass -g1 to massively reduce the size of the
+# debug symbols (4.3GB to 700M at time of writing)
+DEBUG_FLAGS:append = "${@oe.utils.vartrue('DEBUG_BUILD', '', ' -g1', d)}"
# Javascript JIT is not supported on ARC
EXTRA_OECMAKE:append:arc = " -DENABLE_JIT=OFF "
diff --git a/meta-openembedded/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal/0001-meson.build-add-a-hack-for-crosscompile.patch b/meta-openembedded/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal/0001-meson.build-add-a-hack-for-crosscompile.patch
new file mode 100644
index 0000000000..3410a88310
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal/0001-meson.build-add-a-hack-for-crosscompile.patch
@@ -0,0 +1,28 @@
+From 7abb3840ac2870fcfc174fbbd81c4209c838e1a9 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Mon, 18 Sep 2023 22:22:17 +0200
+Subject: [PATCH] meson.build: add a hack for cross-compiling
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+
+Upstream-Status: Inappropriate [cross-compile specific]
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 760613a..d339d26 100644
+--- a/meson.build
++++ b/meson.build
+@@ -168,7 +168,7 @@ pkgconfig.generate(
+ 'prefix': get_option('prefix'),
+ 'datarootdir': dataroot_dir,
+ 'datadir': '${prefix}/@0@'.format(get_option('datadir')),
+- 'interfaces_dir': '${datadir}/dbus-1/interfaces/',
++ 'interfaces_dir': '${pc_sysrootdir}${datadir}/dbus-1/interfaces/',
+ },
+ )
+
+--
+2.41.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal/0001-xdg-desktop-portal-pc-in-add-pc_sysrootdir-dir.patch b/meta-openembedded/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal/0001-xdg-desktop-portal-pc-in-add-pc_sysrootdir-dir.patch
deleted file mode 100644
index 1997d0ffe7..0000000000
--- a/meta-openembedded/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal/0001-xdg-desktop-portal-pc-in-add-pc_sysrootdir-dir.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 7727dbfef4dd7ced3958ae9ada59a8899976b12d Mon Sep 17 00:00:00 2001
-From: Markus Volk <f_l_k@t-online.de>
-Date: Mon, 12 Dec 2022 18:40:31 +0100
-Subject: [PATCH] xdg-desktop-portal.pc.in: add pc_sysrootdir dir
-
----
-Upstream-Status: Pending
-
- xdg-desktop-portal.pc.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/xdg-desktop-portal.pc.in b/xdg-desktop-portal.pc.in
-index 585c0c8..15b5817 100644
---- a/xdg-desktop-portal.pc.in
-+++ b/xdg-desktop-portal.pc.in
-@@ -2,7 +2,7 @@ prefix=@prefix@
- datarootdir=@datarootdir@
- datadir=@datadir@
-
--interfaces_dir=${datadir}/dbus-1/interfaces/
-+interfaces_dir=${pc_sysrootdir}${datadir}/dbus-1/interfaces
-
- Name: xdg-desktop-portal
- Description: Desktop integration portal
---
-2.34.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.16.0.bb b/meta-openembedded/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.18.0.bb
index 0b3a93ab32..b9173a9f3b 100644
--- a/meta-openembedded/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.16.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.18.0.bb
@@ -8,14 +8,12 @@ REQUIRED_DISTRO_FEATURES = "polkit"
DEPENDS = " \
json-glib \
glib-2.0 \
+ flatpak \
libportal \
geoclue \
pipewire \
- dbus-native \
fuse3 \
xmlto-native \
- flatpak \
- python3-dbus-native \
"
PORTAL_BACKENDS ?= " \
@@ -29,15 +27,19 @@ inherit meson pkgconfig python3native features_check
SRC_URI = " \
git://github.com/flatpak/xdg-desktop-portal.git;protocol=https;branch=main \
- file://0001-xdg-desktop-portal-pc-in-add-pc_sysrootdir-dir.patch \
+ file://0001-meson.build-add-a-hack-for-crosscompile.patch \
"
S = "${WORKDIR}/git"
-SRCREV = "88af6c8ca4106fcf70925355350a669848e9fd5a"
+SRCREV = "a4b27063222b16652e73b422e5448d75335199ef"
FILES:${PN} += "${libdir}/systemd ${datadir}/dbus-1"
-EXTRA_OEMESON += "--cross-file=${WORKDIR}/meson-${PN}.cross"
+EXTRA_OEMESON += " \
+ --cross-file=${WORKDIR}/meson-${PN}.cross \
+ -Dflatpak-interfaces-dir=${STAGING_DATADIR}/dbus-1/interfaces \
+ -Ddbus-service-dir=${datadir}/dbus-1/services \
+"
do_write_config:append() {
cat >${WORKDIR}/meson-${PN}.cross <<EOF
diff --git a/meta-openembedded/meta-oe/recipes-test/cukinia/cukinia_0.6.2.bb b/meta-openembedded/meta-oe/recipes-test/cukinia/cukinia_0.6.2.bb
index 470d26ef69..ed7a3f06af 100644
--- a/meta-openembedded/meta-oe/recipes-test/cukinia/cukinia_0.6.2.bb
+++ b/meta-openembedded/meta-oe/recipes-test/cukinia/cukinia_0.6.2.bb
@@ -13,8 +13,6 @@ SRCREV = "a290f2dbb813ce12ba407962655a5d8b57322221"
S = "${WORKDIR}/git"
-inherit allarch
-
RRECOMMENDS:${PN} = "libgpiod-tools"
do_install () {
diff --git a/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.083.bb b/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.083.bb
index 8ae5c0e68d..4d793a4e32 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.083.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.083.bb
@@ -38,7 +38,7 @@ do_install:append () {
}
RDEPENDS:${PN}-ptest += "\
- libnet-libidn-perl \
+ libnet-idn-encode \
liburi-perl \
perl-module-file-glob \
perl-module-findbin \
diff --git a/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-idn-encode_2.500.bb b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-idn-encode_2.500.bb
new file mode 100644
index 0000000000..ce3b75b774
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-idn-encode_2.500.bb
@@ -0,0 +1,23 @@
+SUMMARY = "IDN Perl module"
+DESCRIPTION = "This module provides an easy-to-use interface for encoding \
+ and decoding Internationalized Domain Names (IDNs)."
+
+SECTION = "libs"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8ea5704cf65ca4ec6e9e167fb94f14dd"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/C/CF/CFAERBER/Net-IDN-Encode-${PV}.tar.gz"
+SRC_URI[sha256sum] = "55453633e3ff24ce325b34bc2c8157b9859962a31ab5cf28bf7ccc1c9b3a3eaa"
+
+S = "${WORKDIR}/Net-IDN-Encode-${PV}"
+
+inherit cpan ptest-perl
+
+do_configure:prepend() {
+ perl -pi -e 's/auto_install_now.*//g' Makefile.PL
+}
+
+BBCLASSEXTEND = "native"
+
+RDEPENDS:${PN} += "perl-module-unicode-normalize"
diff --git a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
index f75007e13e..3b9a0f0481 100644
--- a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
+++ b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
@@ -360,7 +360,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-python-vlc \
python3-pytoml \
python3-pytun \
- python3-pytz-deprecation-shim \
python3-pyudev \
python3-pyusb \
python3-pywbem \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-idna-ssl.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-idna-ssl.inc
deleted file mode 100644
index 356a3873ee..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-idna-ssl.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Patch ssl.match_hostname for Unicode(idna) domains support"
-HOMEPAGE = "https://github.com/aio-libs/idna-ssl"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a61b9c5aec8796b64a6bf15d42605073"
-
-SRC_URI[md5sum] = "dd44ec53bac36e68446766fd8d3835bd"
-SRC_URI[sha256sum] = "a933e3bb13da54383f9e8f35dc4f9cb9eb9b3b78c6b36f311254d6d0d92c6c7c"
-
-PYPI_PACKAGE = "idna-ssl"
-inherit pypi
-
-RDEPENDS:${PN} += " \
- python3-idna \
- python3-io \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_1.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_2.0.0.bb
index bbea9cacb2..42c7f3f84a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_1.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_2.0.0.bb
@@ -4,7 +4,7 @@ SECTION = "devel/python"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-SRC_URI[sha256sum] = "d2c244d01048ba476e7c080bd2c6df5e141d211de80223460d5b3b8a2a58433d"
+SRC_URI[sha256sum] = "d9690211c5fcfefcdd1a45470ac2b5c5acd45241c3af71eed96bc5441746c0d5"
PYPI_PACKAGE = "absl-py"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_23.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_23.2.1.bb
index c06f09fb6a..7992b00f3e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_23.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiofiles_23.2.1.bb
@@ -4,11 +4,11 @@ HOMEPAGE = "https://github.com/aio-libs/aiohttp"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
-SRC_URI[sha256sum] = "edd247df9a19e0db16534d4baaf536d6609a43e1de5401d7a4c1c148753a1635"
+SRC_URI[sha256sum] = "84ec2218d8419404abcb9f0c02df3f34c6e0a68ed41072acfb1cef5cbc29051a"
PYPI_PACKAGE = "aiofiles"
-inherit pypi python_poetry_core
+inherit pypi python_hatchling
RDEPENDS:${PN} = "\
${PYTHON_PN}-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.13.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.13.1.bb
index 870152c74f..431d37c7d7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.13.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.13.1.bb
@@ -1,8 +1,8 @@
SUMMARY = "ANTLR runtime for Python"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=b38bac4871765ce562806c44d2f18cf1"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=4b18e4a9f93178eaa50a9a37f26da7f7"
-SRC_URI[sha256sum] = "0d5454928ae40c8a6b653caa35046cd8492c8743b5fbc22ff4009099d074c7ae"
+SRC_URI[sha256sum] = "3cd282f5ea7cfb841537fe01f143350fdb1c0b1ce7981443a2fa8513fddb6d1a"
PYPI_PACKAGE = "antlr4-python3-runtime"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-apiflask_2.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-apiflask_2.0.2.bb
new file mode 100644
index 0000000000..88afdda717
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-apiflask_2.0.2.bb
@@ -0,0 +1,18 @@
+SUMMARY = "APIFlask is a lightweight Python web API framework based on Flask and marshmallow-code projects."
+HOMEPAGE = "https://github.com/apiflask/apiflask"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5f89d1b0dec37448d4f4163dc3c40e64"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "APIFlask"
+
+SRC_URI[sha256sum] = "c1ab81640a1ab252888e2cc7ae556272a169b449c582abae309a8fe295f9337d"
+
+RDEPENDS:${PN} += "\
+ python3-flask \
+ python3-flask-marshmallow \
+ python3-webargs \
+ python3-flask-httpauth \
+ python3-apispec \
+ "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-apispec_6.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-apispec_6.3.0.bb
new file mode 100644
index 0000000000..fcdcd7a809
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-apispec_6.3.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification)."
+HOMEPAGE = "https://github.com/marshmallow-code/apispec"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=824d596e050c0d5e3361efb438425945"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "6cb08d92ce73ff0b3bf46cb2ea5c00d57289b0f279fb0256a3df468182ba5344"
+
+RDEPENDS:${PN} += "python3-packaging"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-appdirs/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-appdirs/run-ptest
index 5287f3e035..b63c4de0d9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-appdirs/run-ptest
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-appdirs/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest | sed -e 's/\[100%\]//g' | sed -e 's/\.\.F/: FAIL/g' | sed -e 's/\.\.\./: PASS/g'
+pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.1.2.bb
index 504e7e2ebd..fb66f3da51 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.1.2.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/kislyuk/argcomplete"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=2ee41112a44fe7014dce33e26468ba93"
-SRC_URI[sha256sum] = "6c4c563f14f01440aaffa3eae13441c5db2357b5eec639abe7c0b15334627dff"
+SRC_URI[sha256sum] = "d5d1e5efd41435260b8f85673b74ea2e883affcbec9f4230c582689e8e78251b"
PYPI_PACKAGE = "argcomplete"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.29.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.29.4.bb
index 93e0a84eea..f67ac9d6c6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.29.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.29.4.bb
@@ -14,7 +14,7 @@ LICENSE = "LGPL-3.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=3000208d539ec061b899bce1d9ce9404 \
file://README.rst;beginline=261;endline=275;md5=a8bf3475df7e0d575a53d04c83d5e090"
-SRC_URI[sha256sum] = "58e438ce9169aaa2e6de147e3ceb34ceacfe26556a2306f50e2d46f52779acb1"
+SRC_URI[sha256sum] = "695c0ae4534270cae2697841b4a56f434a990694a00264ea10ebbbcdc02c13f7"
inherit pypi python_flit_core
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.15.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_3.0.0.bb
index 7325eb13f3..2f80187b2b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.15.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_3.0.0.bb
@@ -4,7 +4,7 @@ SECTION = "devel/python"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a70cf540abf41acb644ac3b621b2fad1"
-SRC_URI[sha256sum] = "903f024859b7c7687d7a7f3a3f73b17301f8e42dfd9cc9df9d4418172d3e2dbd"
+SRC_URI[sha256sum] = "1defdbca052635dd29657ea674edfc45e4b5be9cd53630c5b084fcfed94344a8"
inherit pypi python_setuptools_build_meta
@@ -27,6 +27,7 @@ RDEPENDS:${PN}:class-target += "\
${PYTHON_PN}-six \
${PYTHON_PN}-wrapt \
${PYTHON_PN}-setuptools \
+ ${PYTHON_PN}-typing-extensions \
"
RDEPENDS:${PN}-tests:class-target += "\
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-async-timeout_4.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-async-timeout_4.0.0.bb
deleted file mode 100644
index ca61490fac..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-async-timeout_4.0.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "asyncio-compatible timeout context manager"
-DESCRIPTION = "\
-The context manager is useful in cases when you want to apply \
-timeout logic around block of code or in cases when asyncio.wait_for() \
-is not suitable. Also it's much faster than asyncio.wait_for() because \
-timeout doesn't create a new task."
-HOMEPAGE = "https://github.com/aio-libs/async-timeout"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4fa41f15bb5f23b6d3560c5845eb8d57"
-
-SRC_URI[sha256sum] = "7d87a4e8adba8ededb52e579ce6bc8276985888913620c935094c2276fd83382"
-
-PYPI_PACKAGE = "async-timeout"
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-asyncio \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-autoflake_2.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-autoflake_2.2.1.bb
new file mode 100644
index 0000000000..7b74308666
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-autoflake_2.2.1.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Removes unused imports and unused variables"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=88246be6a34c1496c253f58599f3db85"
+
+SRC_URI[sha256sum] = "62b7b6449a692c3c9b0c916919bbc21648da7281e8506bcf8d3f8280e431ebc1"
+
+inherit pypi python_hatchling
+
+RDEPENDS:${PN} += "python3-pyflakes"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstring_4.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstring_4.1.2.bb
index f45bfc0efd..7a049733be 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstring_4.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstring_4.1.2.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/scott-griffiths/bitstring"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=661f450e2c0aef39b4b15597333444a7"
-SRC_URI[sha256sum] = "a9c97fdf9fe38f27ea0ac2b4cf2a3f5bce5ccc23b863082582b9f48b22274528"
+SRC_URI[sha256sum] = "c22283d60fd3e1a8f386ccd4f1915d7fe13481d6349db39711421e24d4a9cccf"
PYPI_PACKAGE = "bitstring"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bleak/0001-fix-poetry-version-compatibility.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-bleak/0001-fix-poetry-version-compatibility.patch
deleted file mode 100644
index 051ebbe674..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bleak/0001-fix-poetry-version-compatibility.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Upstream-Status: Pending
-
---- a/pyproject.toml 2023-04-19 19:04:47.159474100 -0300
-+++ b/pyproject.toml 2023-05-04 08:08:12.289941765 -0300
-@@ -31,15 +31,15 @@
- bleak-winrt = { version = "^1.2.0", markers = "platform_system=='Windows'" }
- dbus-fast = { version = "^1.83.0", markers = "platform_system == 'Linux'" }
-
--[tool.poetry.group.docs.dependencies]
-+#[tool.poetry.group.docs.dependencies]
- Sphinx = { version = "^5.1.1", python = ">=3.8" }
- sphinx-rtd-theme = "^1.0.0"
-
--[tool.poetry.group.lint.dependencies]
-+#[tool.poetry.group.lint.dependencies]
- black = "^22.1.0"
- flake8 = { version = "^5.0.0", python = ">=3.8" }
-
--[tool.poetry.group.test.dependencies]
-+#[tool.poetry.group.test.dependencies]
- asynctest = { version = "^0.13.0", python = "<3.8" }
- pytest = "^7.0.0"
- pytest-asyncio = "^0.19.0"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bleak_0.20.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bleak_0.21.1.bb
index 9b81efe400..4a1fafb5d8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bleak_0.20.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bleak_0.21.1.bb
@@ -3,18 +3,14 @@ HOMEPAGE = "https://github.com/hbldh/bleak"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=bcbc2069a86cba1b5e47253679f66ed7"
-SRC_URI:append = " \
- file://0001-fix-poetry-version-compatibility.patch \
-"
-
-SRC_URI[sha256sum] = "6c92a47abe34e6dea8ffc5cea9457cbff6e1be966854839dbc25cddb36b79ee4"
+SRC_URI[sha256sum] = "ec4a1a2772fb315b992cbaa1153070c7e26968a52b0e2727035f443a1af5c18f"
PYPI_PACKAGE = "bleak"
inherit pypi python_poetry_core
RDEPENDS:${PN} += " \
- python3-core (>=3.7) \
+ python3-core (>3.7) \
python3-async-timeout \
python3-dbus-fast \
"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-boto3_1.28.57.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-boto3_1.28.57.bb
new file mode 100644
index 0000000000..ad40fd0d0c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-boto3_1.28.57.bb
@@ -0,0 +1,16 @@
+HOMEPAGE = "https://github.com/boto/boto"
+SUMMARY = "Amazon Web Services API"
+DESCRIPTION = "\
+ Boto3 is the Amazon Web Services (AWS) Software Development Kit (SDK) for Python, \
+ which allows Python developers to write software that makes use of services like \
+ Amazon S3 and Amazon EC2. \
+ "
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+SRC_URI[sha256sum] = "e2d2824ba6459b330d097e94039a9c4f96ae3f4bcdc731d620589ad79dcd16d3"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-botocore python3-urllib3 python3-unixadmin"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-botocore_1.31.57.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-botocore_1.31.57.bb
new file mode 100644
index 0000000000..d0c3ff2d4e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-botocore_1.31.57.bb
@@ -0,0 +1,10 @@
+SUMMARY = "A low-level interface to a growing number of Amazon Web Services."
+HOMEPAGE = "https://github.com/boto/botocore"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ee41112a44fe7014dce33e26468ba93"
+
+SRC_URI[sha256sum] = "301436174635bec739b225b840fc365ca00e5c1a63e5b2a19ee679d204e01b78"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-jmespath python3-dateutil python3-logging"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-brotli_1.0.9.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-brotli_1.1.0.bb
index 5dfac58237..0f639f33e7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-brotli_1.0.9.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-brotli_1.1.0.bb
@@ -5,9 +5,8 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=941ee9cd1609382f946352712a319b4b"
PYPI_PACKAGE = "Brotli"
-PYPI_PACKAGE_EXT = "zip"
-SRC_URI[sha256sum] = "4d1b810aa0ed773f81dceda2cc7b403d01057458730e309856356d4ef4188438"
+SRC_URI[sha256sum] = "81de08ac11bcb85841e440c13611c00b67d3bf82698314928d0b676362546724"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.13.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.13.1.bb
index e4e3c49988..b4c90bcffd 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.13.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.13.1.bb
@@ -3,13 +3,12 @@ HOMEPAGE = "https://pypi.org/project/CacheControl/"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=12;endline=12;md5=e2fd6ddcf506e08972d5ba4b93c0022e"
-# On PyPi, this is "CacheControl", rather than "cachecontrol", so we need to
-# override PYPI_PACKAGE so fetch succeeds.
-PYPI_PACKAGE = "CacheControl"
+SRC_URI[sha256sum] = "f012366b79d2243a6118309ce73151bf52a38d4a5dac8ea57f09bd29087e506b"
-SRC_URI[sha256sum] = "fd3fd2cb0ca66b9a6c1d56cc9709e7e49c63dbd19b1b1bcbd8d3f94cedfe8ce5"
+inherit pypi python_poetry_core
-inherit pypi setuptools3
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/CacheControl/"
+UPSTREAM_CHECK_REGEX = "/CacheControl/(?P<pver>(\d+[\.\-_]*)+)"
RDEPENDS:${PN} += "\
python3-crypt \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_38.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_38.0.2.bb
deleted file mode 100644
index 0035735830..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_38.0.2.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-DESCRIPTION = "CAN BUS tools in Python 3."
-HOMEPAGE = "https://github.com/eerimoq/cantools"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd"
-
-SRC_URI[sha256sum] = "93bfe6f4bd652f369763ea9162b027a62f424a8400f2423d41137918ce68c68e"
-
-PYPI_PACKAGE = "cantools"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-can \
- ${PYTHON_PN}-bitstruct \
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-textparser \
- ${PYTHON_PN}-typing-extensions \
- ${PYTHON_PN}-diskcache \
- ${PYTHON_PN}-asyncio \
-"
-
-CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_39.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_39.2.0.bb
new file mode 100644
index 0000000000..a87aff1443
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_39.2.0.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "CAN BUS tools in Python 3."
+HOMEPAGE = "https://github.com/eerimoq/cantools"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd"
+
+SRC_URI[sha256sum] = "24045c5575217bb5331543e6a55cee822c37ad811dc4a08c75aa2eee3c6d529c"
+
+PYPI_PACKAGE = "cantools"
+
+inherit pypi python_poetry_core
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-can \
+ ${PYTHON_PN}-bitstruct \
+ ${PYTHON_PN}-core \
+ ${PYTHON_PN}-textparser \
+ ${PYTHON_PN}-typing-extensions \
+ ${PYTHON_PN}-diskcache \
+ ${PYTHON_PN}-asyncio \
+"
+
+CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cerberus_1.3.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cerberus_1.3.5.bb
index f9f8853495..eb3453aeef 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cerberus_1.3.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cerberus_1.3.5.bb
@@ -4,10 +4,8 @@ SECTION = "devel/python"
LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://LICENSE;md5=48f8e9432d0dac5e0e7a18211a0bacdb"
-RDEPENDS:${PN} += "python3-setuptools"
-
# The PyPI package uses a capital letter so we have to specify this explicitly
PYPI_PACKAGE = "Cerberus"
-inherit pypi setuptools3
+inherit pypi python_poetry_core
-SRC_URI[sha256sum] = "d1b21b3954b2498d9a79edf16b3170a3ac1021df88d197dc2ce5928ba519237c"
+SRC_URI[sha256sum] = "81011e10266ef71b6ec6d50e60171258a5b134d69f8fb387d16e4936d0d47642"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmake_3.27.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmake_3.27.5.bb
index 6d3e81f28f..ad58c6d1d9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmake_3.27.4.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmake_3.27.5.bb
@@ -11,7 +11,7 @@ PYPI_PACKAGE = "cmake"
PYPI_ARCHIVE_NAME_PREFIX = "pypi-"
inherit pypi python_setuptools_build_meta
-SRC_URI[sha256sum] = "70526bbff5eeb7d4d6b921af1b80d2d29828302882f94a2cba93ad7d469b90f6"
+SRC_URI[sha256sum] = "101d4e56154658c974e9425acd31f0fedde3ce68b47263fd14f789b028f8a13a"
SRC_URI += " \
file://CMakeLists.txt \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-configshell-fb_1.1.29.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-configshell-fb_1.1.30.bb
index 7a7ecd753f..aa14c99e8b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-configshell-fb_1.1.29.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-configshell-fb_1.1.30.bb
@@ -6,13 +6,9 @@ building simple but nice CLI-based applications. This runs with Python 2 and \
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=1dece7821bf3fd70fe1309eaa37d52a2"
-SRC_URI = "git://github.com/open-iscsi/configshell-fb.git;protocol=https;branch=master"
-SRCREV = "d74a33b69f688ed9b8b28033835303604639d4eb"
+SRC_URI[sha256sum] = "41f6b7eaa7c9ff422acdc910762fd39ef3333a365918463fef8b398d857170fe"
-S = "${WORKDIR}/git"
-
-inherit setuptools3
-PIP_INSTALL_PACKAGE = "configshell_fb"
+inherit pypi python_poetry_core
RDEPENDS:${PN} += " \
python3-fcntl \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.3.1.bb
index 0a32a6a38e..636b7377a3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.3.1.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://coverage.readthedocs.io"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ee41112a44fe7014dce33e26468ba93"
-SRC_URI[sha256sum] = "49dbb19cdcafc130f597d9e04a29d0a032ceedf729e41b181f51cd170e6ee865"
+SRC_URI[sha256sum] = "6cb7fe1581deb67b782c153136541e20901aa312ceedaf1467dcb35255787952"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-custom-inherit_2.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-custom-inherit_2.4.1.bb
index 8ff3b9e3d1..478abbf1fd 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-custom-inherit_2.3.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-custom-inherit_2.4.1.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=f910a85a4c3da51edf780f17a7608434"
PYPI_PACKAGE = "custom_inherit"
-SRC_URI[sha256sum] = "a0d104847b4cc1ae24e00061fc2e11da8766b019bf4c8c753822347366c8c49f"
+SRC_URI[sha256sum] = "7052eb337bcce83551815264391cc4efc2bf70b295a3c52aba64f1ab57c3a8a2"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-distlib_0.3.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-distlib_0.3.7.bb
index ffffece56a..1d9d53e274 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-distlib_0.3.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-distlib_0.3.7.bb
@@ -6,7 +6,7 @@ HOMEPAGE = "https://github.com/pypa/distlib"
LICENSE = "PSF-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f6a11430d5cd6e2cd3832ee94f22ddfc"
-SRC_URI[sha256sum] = "14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"
+SRC_URI[sha256sum] = "9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8"
BBCLASSEXTEND = "native nativesdk"
inherit pypi python_setuptools_build_meta
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dynamic-dispatch_1.0.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dynamic-dispatch_1.0.3.bb
index 9e4a13cff4..eeb013d4fe 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dynamic-dispatch_1.0.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dynamic-dispatch_1.0.3.bb
@@ -5,11 +5,13 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=ea70b07c354e36056bd35e17c9c3face"
inherit pypi setuptools3
-SRC_URI[md5sum] = "6bd3cc24427de753eed0656e89d5302c"
SRC_URI[sha256sum] = "fbc676aaedc8ec542056c21e5e206b8b62b8d11c3f3c5cfb32b273936da89604"
PYPI_PACKAGE = "dynamic_dispatch"
+UPSTREAM_CHECK_URI = "https://pypi.org/project/dynamic-dispatch/"
+UPSTREAM_CHECK_REGEX = "/dynamic-dispatch/(?P<pver>(\d+[\.\-_]*)+)"
+
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS:${PN} += "\
python3-typeguard \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.7.1.bb
index 85f537189e..0ef64268a7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.7.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.7.1.bb
@@ -17,4 +17,4 @@ RDEPENDS:${PN} += " \
python3-asyncio \
"
-SRC_URI[sha256sum] = "8b4f30ba58a5bff001801127227f44a1da0c0a22045f798c1a13ebb0d618e2a3"
+SRC_URI[sha256sum] = "a8422e345cd9a21451303380b160742ff02197975b1c3a02cef115febe2b1b20"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils_2.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils_2.2.1.bb
index ce2dcb0d4c..bace620eef 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils_2.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils_2.2.1.bb
@@ -4,7 +4,7 @@ SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=6749008d847c14b9718949c2e24d5c0a"
-SRC_URI[sha256sum] = "7f1a9e10400ee332432a778c321f446abaedb8f538df550e7c9964f446f7e265"
+SRC_URI[sha256sum] = "f79a95f86dd991344697c763db40271dbe43fbbcd5776f49b0c4fb7b645ee1c4"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.18.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.19.bb
index 5f63891748..a4fece023b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.18.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-fasteners_0.19.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/harlowja/fasteners"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4476c4be31402271e101d9a4a3430d52"
-SRC_URI[sha256sum] = "cb7c13ef91e0c7e4fe4af38ecaf6b904ec3f5ce0dda06d34924b6b74b869d953"
+SRC_URI[sha256sum] = "b4f37c3ac52d8a445af3a66bce57b33b5e90b97c696b7b984f530cf8f0ded09c"
inherit pypi python_setuptools_build_meta
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.12.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.12.4.bb
index 8deca31b5b..49a9d956af 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.12.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.12.4.bb
@@ -6,10 +6,7 @@ HOMEPAGE = "https://py-filelock.readthedocs.io/"
LICENSE = "Unlicense"
LIC_FILES_CHKSUM = "file://LICENSE;md5=911690f51af322440237a253d695d19f"
-SRC_URI[sha256sum] = "fc03ae43288c013d2ea83c8597001b1129db351aad9c57fe2409327916b8e718"
-
-UPSTREAM_CHECK_URI = "https://pypi.org/project/lockfile/"
-UPSTREAM_CHECK_REGEX = "/lockfile/(?P<pver>(\d+[\.\-_]*)+)"
+SRC_URI[sha256sum] = "2e6f249f1f3654291606e046b09f1fd5eac39b360664c27f5aad072012f8bcbd"
BBCLASSEXTEND = "native nativesdk"
inherit pypi python_hatchling
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_2.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_3.1.0.bb
index 657c190ec5..610c40f84d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_2.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-babel_3.1.0.bb
@@ -2,12 +2,11 @@ DESCRIPTION = "i18n and l10n support for Flask based on babel and pytz"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=51917f3e8e858f5ae295a7d0e2eb3cc9"
-SRC_URI[md5sum] = "50d5e92d96ef58787bf85b5a1b0a5567"
-SRC_URI[sha256sum] = "f9faf45cdb2e1a32ea2ec14403587d4295108f35017a7821a2b1acb8cfd9257d"
+SRC_URI[sha256sum] = "be015772c5d7f046f3b99c508dcf618636eb93d21b713b356db79f3e79f69f39"
-PYPI_PACKAGE = "Flask-Babel"
+PYPI_PACKAGE = "flask_babel"
-inherit pypi setuptools3
+inherit pypi python_poetry_core
RDEPENDS:${PN} += "\
${PYTHON_PN}-speaklater \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-cors_4.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-cors_4.0.0.bb
new file mode 100644
index 0000000000..1d0d86b4e7
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-cors_4.0.0.bb
@@ -0,0 +1,16 @@
+HOMEPAGE = "https://pypi.python.org/pypi/Flask-Cors/"
+SUMMARY = "A Flask extension adding a decorator for CORS support"
+DESCRIPTION = "\
+ A Flask extension for handling Cross Origin Resource Sharing (CORS), making cross-origin AJAX possible \
+ "
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=118fecaa576ab51c1520f95e98db61ce"
+
+PYPI_PACKAGE = "Flask-Cors"
+
+SRC_URI[sha256sum] = "f268522fcb2f73e2ecdde1ef45e2fd5c71cc48fe03cffb4b441c6d1b40684eb0"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-flask"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-httpauth_4.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-httpauth_4.8.0.bb
new file mode 100644
index 0000000000..51b907e6db
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-httpauth_4.8.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Simple extension that provides Basic and Digest HTTP authentication for Flask routes."
+HOMEPAGE = "https://github.com/miguelgrinberg/flask-httpauth"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b69377f79f3f48c661701236d5a6a85"
+
+inherit pypi python_setuptools_build_meta
+
+PYPI_PACKAGE = "Flask-HTTPAuth"
+
+SRC_URI[sha256sum] = "66568a05bc73942c65f1e2201ae746295816dc009edd84b482c44c758d75097a"
+
+RDEPENDS:${PN} += "\
+ python3-flask \
+ "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-jwt-extended_4.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-jwt-extended_4.5.2.bb
new file mode 100644
index 0000000000..f55d771745
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-jwt-extended_4.5.2.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Extended JWT integration with Flask"
+HOMEPAGE = "https://github.com/vimalloc/flask-jwt-extended"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9166295d7c482b9440bbb2b5c0fa43ac"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "Flask-JWT-Extended"
+
+SRC_URI[sha256sum] = "ba56245ba43b71c8ae936784b867625dce8b9956faeedec2953222e57942fb0b"
+
+RDEPENDS:${PN} += "\
+ python3-werkzeug \
+ python3-flask \
+ python3-pyjwt \
+ "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-marshmallow_0.15.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-marshmallow_0.15.0.bb
new file mode 100644
index 0000000000..25ca4d24c8
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-marshmallow_0.15.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Flask + marshmallow for beautiful APIs"
+HOMEPAGE = "https://github.com/marshmallow-code/flask-marshmallow"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c3ff8567ef1f2a8cf223f30ac5a6f094"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "2083ae55bebb5142fff98c6bbd483a2f5dbc531a8bc1be2180ed5f75e7f3fccc"
+
+RDEPENDS:${PN} += "\
+ python3-flask \
+ python3-marshmallow \
+ python3-packaging \
+ "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.5.bb
index d9df2a4270..13f4e0f5a7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.5.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "SQLAlchemy database migrations for Flask applications using Alemb
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b69377f79f3f48c661701236d5a6a85"
-SRC_URI[sha256sum] = "73293d40b10ac17736e715b377e7b7bde474cb8105165d77474df4c3619b10b3"
+SRC_URI[sha256sum] = "d3f437a8b5f3849d1bb1b60e1b818efc564c66e3fefe90b62e5db08db295e1b1"
PYPI_PACKAGE = "Flask-Migrate"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.6.bb
index 34919d2222..e151fda9d5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.6.bb
@@ -9,7 +9,7 @@ inherit pypi python_setuptools_build_meta
PYPI_PACKAGE = "Flask-SocketIO"
-SRC_URI[sha256sum] = "5f01158d10db71aa78c969b631ce3b9148b47ab0de1995158f9577f85b004d25"
+SRC_URI[sha256sum] = "bb8f9f9123ef47632f5ce57a33514b0c0023ec3696b2384457f0fcaa5b70501c"
RDEPENDS:${PN} += "\
${PYTHON_PN}-flask \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.3.3.bb
index c4c1ff7dec..c8c8d870ac 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.3.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.3.3.bb
@@ -6,9 +6,7 @@ HOMEPAGE = "https://github.com/mitsuhiko/flask/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
-SRC_URI[sha256sum] = "8c2f9abd47a9e8df7f0c3f091ce9497d011dc3b31effcf4c85a6e2b50f4114ef"
-
-PYPI_PACKAGE = "Flask"
+SRC_URI[sha256sum] = "09c347a92aa7ff4a8e7f3206795f30d826654baf38b873d0744cd571ca609efc"
inherit pypi python_setuptools_build_meta
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_23.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_23.9.1.bb
index a82abcc096..0caebce282 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_23.7.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_23.9.1.bb
@@ -13,7 +13,7 @@ RDEPENDS:${PN} = "${PYTHON_PN}-greenlet \
SRC_URI += "file://0001-_setuputils.py-Do-not-add-sys_inc_dir.patch"
-SRC_URI[sha256sum] = "d0d3630674c1b344b256a298ab1ff43220f840b12af768131b5d74e485924237"
+SRC_URI[sha256sum] = "72c002235390d46f94938a96920d8856d4ffd9ddf62a303a0d7c118894097e34"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.11.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.12.0.bb
index de2bd3d12d..28c6a7989c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.11.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.12.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
inherit pypi setuptools3
-SRC_URI[sha256sum] = "25d29e05a0058ed5f19c61c0a78b1b53adea4d9364b464d014fbda941f6d1c9a"
+SRC_URI[sha256sum] = "c22e01b1e3c4dcd90998494879612c38d0a3411d1f7b679eb89e2abe3ce1f553"
RDEPENDS:${PN} += "\
${PYTHON_PN}-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.97.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.101.0.bb
index 1ee9f5bdba..495a37444d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.97.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.101.0.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "https://github.com/googleapis/google-api-python-client"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-SRC_URI[sha256sum] = "48277291894876a1ca7ed4127e055e81f81e6343ced1b544a7200ae2c119dcd7"
+SRC_URI[sha256sum] = "e9620a809251174818e1fce16604006f10a9c2ac0d3d94a139cdddcd4dbea2d8"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.22.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.23.1.bb
index 23def6c52c..a3228be231 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.22.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.23.1.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
inherit pypi setuptools3
-SRC_URI[sha256sum] = "164cba9af4e6e4e40c3a4f90a1a6c12ee56f14c0b4868d1ca91b32826ab334ce"
+SRC_URI[sha256sum] = "d38bdf4fa1e7c5a35e574861bce55784fd08afadb4e48f99f284f1e487ce702d"
RDEPENDS:${PN} += "\
${PYTHON_PN}-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-idna-ssl_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-idna-ssl_1.1.0.bb
index 3643fcfd30..503b79d667 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-idna-ssl_1.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-idna-ssl_1.1.0.bb
@@ -1,2 +1,17 @@
-inherit setuptools3
-require python-idna-ssl.inc
+SUMMARY = "Patch ssl.match_hostname for Unicode(idna) domains support"
+HOMEPAGE = "https://github.com/aio-libs/idna-ssl"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a61b9c5aec8796b64a6bf15d42605073"
+
+SRC_URI[sha256sum] = "a933e3bb13da54383f9e8f35dc4f9cb9eb9b3b78c6b36f311254d6d0d92c6c7c"
+
+PYPI_PACKAGE = "idna-ssl"
+inherit pypi setuptools3
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/idna_ssl/"
+UPSTREAM_CHECK_REGEX = "/idna_ssl/(?P<pver>(\d+[\.\-_]*)+)"
+
+RDEPENDS:${PN} += " \
+ python3-idna \
+ python3-io \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.63.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.64.bb
index ca68a6cc76..8fb8c6e88f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.63.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.64.bb
@@ -6,7 +6,7 @@ SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-SRC_URI[sha256sum] = "ff2b5a1db27900cb83e06bcbd14cb0bbd5caaf304c913308246608d8e93d684f"
+SRC_URI[sha256sum] = "1297b7f6e33160887fe08a88176aa0ea873b810a55f2a2740257b124184b067a"
inherit pypi setuptools3 python3native
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lazy_1.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lazy_1.6.bb
index cdff28c295..97517f89a6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-lazy_1.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lazy_1.6.bb
@@ -1,8 +1,8 @@
SUMMARY = "Lazy attributes are computed attributes that are evaluated only once, the first time they are used."
LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=84689cccb68e3c397d0856e8ad5a73b2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7df3865e8640604acfa474235d2db76b"
-SRC_URI[sha256sum] = "cb3d8612aa895a48afe8f08860573ba8ef5ee4fdbe1b3cd606c5f50a16152186"
+SRC_URI[sha256sum] = "7127324ec709e8324f08cb4611c1abe01776bda53bb9ce68dc5dfa46ca0ed3e9"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_1.0.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_1.0.6.bb
index 3965dad8e5..3cddcb9ae3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_1.0.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_1.0.6.bb
@@ -2,10 +2,9 @@ SUMMARY = "MessagePack (de)serializer"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=cd9523181d9d4fbf7ffca52eaa2a5751"
-PYPI_PACKAGE = "msgpack"
inherit pypi setuptools3 ptest
-SRC_URI[sha256sum] = "c075544284eadc5cddc70f4757331d99dcbc16b2bbd4849d15f8aae4cf36d31c"
+SRC_URI[sha256sum] = "25d3746da40f3c8c59c3b1d001e49fd2aa17904438f980d9a391370366df001e"
RDEPENDS:${PN}:class-target += "\
${PYTHON_PN}-io \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-nacl_1.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-nacl_1.5.0.bb
new file mode 100644
index 0000000000..7d5292745b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-nacl_1.5.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Python binding to the Networking and Cryptography (NaCl) library"
+HOMEPAGE = "https://github.com/pyca/pynacl"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8cc789b082b3d97e1ccc5261f8594d3f"
+
+PYPI_PACKAGE = "PyNaCl"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba"
+
+DEPENDS += "\
+ libsodium \
+ python3-cffi-native \
+ python3-pip-native \
+"
+
+RDEPENDS:${PN}:class-target += " \
+ python3-cffi \
+ python3-pycparser \
+"
+
+export SODIUM_INSTALL = "system"
+
+BBCLASSEXTEND = "native" \ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.9.0.bb
index 5ba006691a..471d939a82 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.8.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.9.0.bb
@@ -2,8 +2,7 @@ SUMMARY = "A network address manipulation library for Python."
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e6345d695ffe3776f68a56fe7962db44"
-SRC_URI[md5sum] = "34cad578473b66ad77bc3b2a7613ed4a"
-SRC_URI[sha256sum] = "d6cc57c7a07b1d9d2e917aa8b36ae8ce61c35ba3fcd1b83ca31c5a0ee2b5a243"
+SRC_URI[sha256sum] = "7b46fa9b1a2d71fd5de9e4a3784ef339700a53a08c8040f08baf5f1194da0128"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ninja-syntax_1.7.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ninja-syntax_1.7.2.bb
index 9a6326f37d..ec7747307d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ninja-syntax_1.7.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ninja-syntax_1.7.2.bb
@@ -8,3 +8,5 @@ SRC_URI[sha256sum] = "342dc97b9e88a6495bae22953ee6063f91d2f03db6f727b62ba5c3092a
inherit pypi setuptools3
PYPI_PACKAGE = "ninja_syntax"
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/ninja_syntax/"
+UPSTREAM_CHECK_REGEX = "/ninja_syntax/(?P<pver>(\d+[\.\-_]*)+)" \ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-parse-type_0.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-parse-type_0.6.2.bb
index 7eebbfb503..99493db322 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-parse-type_0.5.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-parse-type_0.6.2.bb
@@ -1,15 +1,14 @@
SUMMARY = "Simplifies building parse types based on the parse module"
HOMEPAGE = "https://github.com/jenisys/parse_type"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=16374dbaeaca1890153edb3f41371222"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2e469278ace89c246d52505acc39c3da"
-SRC_URI[md5sum] = "b954062f14ab723a91fe1e2be15e859d"
-SRC_URI[sha256sum] = "7f690b18d35048c15438d6d0571f9045cffbec5907e0b1ccf006f889e3a38c0b"
+SRC_URI[sha256sum] = "79b1f2497060d0928bc46016793f1fca1057c4aacdf15ef876aa48d75a73a355"
PYPI_PACKAGE = "parse_type"
inherit pypi ptest setuptools3
-RDEPENDS:${PN} += "${PYTHON_PN}-parse ${PYTHON_PN}-six"
+RDEPENDS:${PN} += "${PYTHON_PN}-parse"
SRC_URI += " \
file://run-ptest \
@@ -19,11 +18,6 @@ RDEPENDS:${PN}-ptest += " \
${PYTHON_PN}-pytest \
"
-do_configure:prepend() {
- sed -i -e "/python_version >= 3.0/d" ${S}/setup.py
- sed -i -e "/use_2to3/d" ${S}/setup.py
-}
-
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.0.1.bb
index 8683ef2287..055b41bfa5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.0.1.bb
@@ -5,7 +5,7 @@ HOMEPAGE = "https://pillow.readthedocs.io"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b22dc6b663b9175820e5e03337c7596b"
-SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=main;protocol=https \
+SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=10.0.x;protocol=https \
file://0001-support-cross-compiling.patch \
file://0001-explicitly-set-compile-options.patch \
file://run-ptest \
@@ -62,4 +62,4 @@ do_install_ptest() {
BBCLASSEXTEND = "native"
-SRCREV = "6e28ed1f36d0eb74053af54e1eddc9c29db698cd"
+SRCREV = "e34d346f10c0b1c814661e662a3e0c1ef084cf1c"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc_1.0.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc_1.0.5.bb
deleted file mode 100644
index d66ef0e3c4..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc_1.0.5.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "POSIX IPC primitives (semaphores, shared memory and message queues) for Python"
-HOMEPAGE = "http://semanchuk.com/philip/posix_ipc/"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=dc089fb2f37e90799a54c19a20c9880f"
-
-PYPI_PACKAGE = "posix_ipc"
-
-# Archived version so we need to overwrite what the pypi class will derive
-PYPI_SRC_URI = "https://pypi.python.org/packages/source/p/${PYPI_PACKAGE}/${PYPI_PACKAGE}-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "8c9443859492ecf3aae9182aa6b5c78c"
-SRC_URI[sha256sum] = "6cddb1ce2cf4aae383f2a0079c26c69bee257fe2720f372201ef047f8ceb8b97"
-
-inherit setuptools3 pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc_1.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc_1.1.1.bb
new file mode 100644
index 0000000000..a71187399b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-posix-ipc_1.1.1.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "POSIX IPC primitives (semaphores, shared memory and message queues) for Python"
+HOMEPAGE = "http://semanchuk.com/philip/posix_ipc/"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=513d94a7390d4d72f3475e2d45c739b5"
+
+PYPI_PACKAGE = "posix_ipc"
+
+SRC_URI[sha256sum] = "e2456ba0cfb2ee5ba14121450e8d825b3c4a1461fca0761220aab66d4111cbb7"
+
+inherit setuptools3 pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_3.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_3.9.0.bb
index 0c0692b144..c1e394d9b3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_3.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-prettytable_3.9.0.bb
@@ -1,9 +1,9 @@
SUMMARY = "Python library for displaying tabular data in a ASCII table format"
HOMEPAGE = "http://code.google.com/p/prettytable"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c9a6829fcd174d9535b46211917c7671"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c9a6829fcd174d9535b46211917c7671"
-SRC_URI[sha256sum] = "2e0026af955b4ea67b22122f310b90eae890738c08cb0458693a49b6221530ac"
+SRC_URI[sha256sum] = "f4ed94803c23073a90620b201965e5dc0bccf1760b7a7eaf3158cab8aaffdf34"
do_install:append() {
perm_files=`find "${D}${PYTHON_SITEPACKAGES_DIR}/" -name "*.txt" -o -name "PKG-INFO"`
@@ -12,9 +12,6 @@ do_install:append() {
done
}
-UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/PrettyTable/"
-UPSTREAM_CHECK_REGEX = "/PrettyTable/(?P<pver>(\d+[\.\-_]*)+)"
-
BBCLASSEXTEND = "native nativesdk"
inherit pypi ptest python_hatchling
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.24.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.24.3.bb
index 3014884a33..b78ae6a1b0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.24.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.24.3.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=53dbfa56f61b90215a
inherit pypi setuptools3
SRC_URI += "file://0001-message.c-Cast-uintptr_t-types-to-upb_MessageDef.patch"
-SRC_URI[sha256sum] = "7fda70797ddec31ddfa3576cbdcc3ddbb6b3078b737a1a87ab9136af0570cd6e"
+SRC_URI[sha256sum] = "12e9ad2ec079b833176d2921be2cb24281fa591f0b119b208b788adc48c2561d"
# http://errors.yoctoproject.org/Errors/Details/184715/
# Can't find required file: ../src/google/protobuf/descriptor.proto
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.3.0.bb
index d6a2749c24..d158876fcd 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.8.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.3.0.bb
@@ -4,10 +4,11 @@ DESCRIPTION = "A collection of ASN.1 modules expressed in form of pyasn1\
data structures (X.509, PKCS etc.)."
HOMEPAGE = "https://github.com/etingof/pyasn1-modules"
LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a14482d15c2249de3b6f0e8a47e021fd"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=190f79253908c986e6cacf380c3a5f6d"
-SRC_URI[md5sum] = "107e1ece7d0a41d782f69f8a95a4d9bc"
-SRC_URI[sha256sum] = "905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e"
+SRC_URI[sha256sum] = "5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c"
+
+PYPI_PACKAGE = "pyasn1_modules"
inherit pypi ptest setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybluez/0001-Use-Py_ssize_t-when-parsing-buffer-length-fix-426-42.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybluez/0001-Use-Py_ssize_t-when-parsing-buffer-length-fix-426-42.patch
index 9126aba8d3..fea87a2ff0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybluez/0001-Use-Py_ssize_t-when-parsing-buffer-length-fix-426-42.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybluez/0001-Use-Py_ssize_t-when-parsing-buffer-length-fix-426-42.patch
@@ -19,9 +19,10 @@ From python 3.8 changes:
> values for detail. (Contributed by Inada Naoki in bpo-36381.)
Fixes https://github.com/pybluez/pybluez/issues/426
----
-Upstream-Status: Accepted
+Upstream-Status: Backport [https://github.com/pybluez/pybluez/pull/427]
+Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
+---
bluez/btmodule.c | 23 ++++++++++++++---------
msbt/_msbt.c | 6 ++++--
2 files changed, 18 insertions(+), 11 deletions(-)
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_1.10.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_2.4.1.bb
index 9d59cf8598..6d06650eb0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_1.10.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_2.4.1.bb
@@ -1,11 +1,13 @@
SUMMARY = "Data validation and settings management using Python type hinting"
HOMEPAGE = "https://github.com/samuelcolvin/pydantic"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2c02ea30650b91528657db64baea1757"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=09280955509d1c4ca14bae02f21d49a6"
-inherit pypi setuptools3
+inherit pypi python_hatchling
-SRC_URI[sha256sum] = "cfc83c0678b6ba51b0532bea66860617c4cd4251ecf76e9846fa5a9f3454e97e"
+SRC_URI[sha256sum] = "b172505886028e4356868d617d2d1a776d7af1625d1313450fd51bdd19d9d61f"
+
+DEPENDS += "python3-hatch-fancy-pypi-readme-native"
RDEPENDS:${PN} += "\
python3-core \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify/0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify/0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch
index 933e086265..2fa3cb05d4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify/0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify/0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch
@@ -13,11 +13,11 @@ Upstream-Status: Inappropriate
1 file changed, 3 insertions(+)
diff --git a/src/ext.c b/src/ext.c
-index 2ba9a14..98ffc20 100644
+index e0bbe21..7d979d3 100644
--- a/src/ext.c
+++ b/src/ext.c
-@@ -18,6 +18,9 @@
- #include <sys/un.h>
+@@ -19,6 +19,9 @@
+ #include <sys/vfs.h>
#include <unistd.h>
+#ifndef FNM_EXTMATCH
@@ -27,5 +27,5 @@ index 2ba9a14..98ffc20 100644
PyDoc_STRVAR(ext__doc__,
"Wrapper for fanotify.\n"
--
-2.32.0
+2.34.1
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.1.bb
index 7c16750040..c9fd07144c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.1.bb
@@ -5,7 +5,7 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=636a36c9df04efcfacf839b8866d9a37"
SRC_URI += "file://0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch"
-SRC_URI[sha256sum] = "1ec1c61fba9dea96cf8eac7f1a0cca2517613da20d156b7da2a06f9d63c77aca"
+SRC_URI[sha256sum] = "fd62dccdf3c17ca117e3279f0cbc65c639e53c9dec8a459d44ed6a35c1a18e60"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.4.bb
index 888278af80..4ee84531e1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.4.bb
@@ -9,6 +9,9 @@ inherit pypi python_setuptools_build_meta
DEPENDS += "${PYTHON_PN}-hatch-vcs-native"
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/PyHamcrest/"
+UPSTREAM_CHECK_REGEX = "/PyHamcrest/(?P<pver>(\d+[\.\-_]*)+)"
+
RDEPENDS:${PN} += " \
${PYTHON_PN}-six \
${PYTHON_PN}-numbers \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyiface_git.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyiface_0.0.11.bb
index 29a0bc86c5..b5bd89de76 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyiface_git.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyiface_0.0.11.bb
@@ -1,24 +1,18 @@
SUMMARY = "Pyiface is a package that exposes the network interfaces of the operating system in a easy to use and transparent way"
-SECTION = "devel/python"
HOMEPAGE = "https://pypi.python.org/pypi/pyiface/"
+SECTION = "devel/python"
LICENSE = "GPL-3.0-or-later"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4fe869ee987a340198fb0d54c55c47f1"
DEPENDS += "python3-setuptools-scm-native"
+SRC_URI[sha256sum] = "e231e5735d329c5b2d4fc8854f069fdaa5436d3ef91ed64ee49e41e3f5e8a3f5"
+
+inherit pypi setuptools3
+
RDEPENDS:${PN} += " \
python3-ctypes \
python3-fcntl \
python3-io \
"
-
-inherit setuptools3
-
-SRC_URI = "git://github.com/bat-serjo/PyIface.git;protocol=https;branch=master"
-SRCREV = "4557dbda96d2e4b1142c60603d4a27d007a9ffe6"
-PV = "0.1.dev33+g4557dbd"
-
-PIP_INSTALL_PACKAGE = "pyiface"
-
-S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.175.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.176.bb
index 969e4b7b5a..56f34d4123 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.175.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.176.bb
@@ -4,7 +4,7 @@ LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20"
SRC_URI = "git://github.com/MISP/PyMISP.git;protocol=https;branch=main"
-SRCREV = "69e660ef03108cc16a52b170e7ab4440bd202520"
+SRCREV = "249cf20f3516100cea0adb0396635e2c13d7695d"
S = "${WORKDIR}/git"
inherit python_poetry_core
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.5.2.bb
index 1eb25afbaa..4cd3801ee7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.5.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.5.2.bb
@@ -4,7 +4,7 @@ LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=6a146397c35e3d0953758ce8803de347"
DEPENDS += "python3-six-native"
-SRC_URI[sha256sum] = "4c6fb9af3a6c5a5cba59e4c62812d911f1d5c02dc3aedaaec858990574bc6b4c"
+SRC_URI[sha256sum] = "26c1aa9919b24f2247794d5d9d80f65ec06fdfd9bd6b76b81d446b55335cabf3"
S = "${WORKDIR}/pymodbus-${PV}"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymysql_1.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymysql_1.1.0.bb
index 1f6fbd3bb1..f797674e84 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymysql_1.0.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymysql_1.1.0.bb
@@ -8,9 +8,12 @@ HOMEPAGE = "https://pymysql.readthedocs.io"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=528175c84163bb800d23ad835c7fa0fc"
-SRC_URI[sha256sum] = "816927a350f38d56072aeca5dfb10221fe1dc653745853d30a216637f5d7ad36"
+SRC_URI[sha256sum] = "4f13a7df8bf36a51e81dd9f3605fede45a4878fe02f9236349fd82a3f0612f96"
PYPI_PACKAGE = "PyMySQL"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/pymysql/"
+UPSTREAM_CHECK_REGEX = "/pymysql/(?P<pver>(\d+[\.\-_]*)+)"
RDEPENDS:${PN} += "${PYTHON_PN}-cryptography"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pynetlinux/0002-Fixed-relative-imports.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pynetlinux/0002-Fixed-relative-imports.patch
index 9b5d9d6364..65f38814c3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pynetlinux/0002-Fixed-relative-imports.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pynetlinux/0002-Fixed-relative-imports.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Fixed relative imports
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
-Upstream-Status: Accepted
+Upstream-Status: Backport [https://github.com/rlisagor/pynetlinux/commit/afb778669efbc658a29e6bdb1c4834fee42931aa]
pynetlinux/__init__.py | 8 ++++----
pynetlinux/brctl.py | 2 +-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyproj_3.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyproj_3.6.1.bb
index d8708f5e72..a4121c3934 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyproj_3.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyproj_3.6.1.bb
@@ -8,7 +8,7 @@ PYPI_PACKAGE = "pyproj"
inherit pypi setuptools3
-SRC_URI[sha256sum] = "a5b111865b3f0f8b77b3983f2fbe4dd6248fc09d3730295949977c8dcd988062"
+SRC_URI[sha256sum] = "44aa7c704c2b7d8fb3d483bbf75af6cb2350d30a63b144279a09b75fead501bf"
RDEPENDS:${PN} = " \
python3-certifi \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyproject-api_1.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyproject-api_1.6.1.bb
index 1b458fa2df..739df2a1ba 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyproject-api_1.5.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyproject-api_1.6.1.bb
@@ -6,7 +6,7 @@ HOMEPAGE = "https://pyproject-api.readthedocs.io"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=11610a9d8fd95649cf8159be12b98cb7"
-SRC_URI[sha256sum] = "435f46547a9ff22cf4208ee274fca3e2869aeb062a4834adfc99a4dd64af3cf9"
+SRC_URI[sha256sum] = "1817dc018adc0d1ff9ca1ed8c60e1623d5aaca40814b953af14a9cf9a5cae538"
PYPI_PACKAGE = "pyproject_api"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb
deleted file mode 100644
index 022cf39ac0..0000000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Shims to help you safely remove pytz"
-HOMEPAGE = "https://github.com/pganssle/pytz-deprecation-shim"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fca9fd5c15a28eb874ba38577a585d48"
-
-SRC_URI[sha256sum] = "af097bae1b616dde5c5744441e2ddc69e74dfdcb0c263129610d85b87445a59d"
-
-PYPI_PACKAGE = "pytz_deprecation_shim"
-PYPI_SRC_URI = "https://files.pythonhosted.org/packages/94/f0/909f94fea74759654390a3e1a9e4e185b6cd9aa810e533e3586f39da3097/${PYPI_PACKAGE}-${PV}.tar.gz"
-
-inherit pypi python_setuptools_build_meta
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-zoneinfo \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyu2f_0.1.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyu2f_0.1.5.bb
new file mode 100644
index 0000000000..c58981a327
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyu2f_0.1.5.bb
@@ -0,0 +1,20 @@
+SUMMARY = "U2F host library for interacting with a U2F device over USB."
+HOMEPAGE = "https://github.com/google/pyu2f/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[sha256sum] = "a3caa3a11842fc7d5746376f37195e6af5f17c0a15737538bb1cebf656fb306b"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-core \
+ ${PYTHON_PN}-crypt \
+ ${PYTHON_PN}-ctypes \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-netclient \
+ ${PYTHON_PN}-threading \
+ ${PYTHON_PN}-six \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_25.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_25.1.1.bb
index 39a7614fc5..504ef7abc0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_25.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_25.1.1.bb
@@ -3,17 +3,17 @@ DESCRIPTION = "This package contains Python bindings for ZeroMQ. ZMQ is a lightw
HOMEPAGE = "http://zeromq.org/bindings:python"
LICENSE = "BSD-3-Clause & LGPL-3.0-only"
LIC_FILES_CHKSUM = "\
- file://COPYING.BSD;md5=11c65680f637c3df7f58bbc8d133e96e \
- file://COPYING.LESSER;md5=12c592fa0bcfff3fb0977b066e9cb69e \
+ file://LICENSE.BSD;md5=1787206f198344195a671b60326c59dc \
+ file://LICENSE.LESSER;md5=0e99bfbdd8b9d33b0221986fe3be89ed \
"
-DEPENDS = "python3-packaging-native zeromq"
+DEPENDS = "python3-packaging-native python3-cython-native python3-setuptools-scm-native zeromq"
SRC_URI:append = " \
file://club-rpath-out.patch \
file://run-ptest \
"
-SRC_URI[sha256sum] = "f330a1a2c7f89fd4b0aa4dcb7bf50243bf1c8da9a2f1efc31daf57a2046b31f2"
+SRC_URI[sha256sum] = "259c22485b71abacdfa8bf79720cd7bcf4b9d128b30ea554f01ae71fdbfdaa23"
inherit pypi pkgconfig python_setuptools_build_meta ptest
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rapidjson_1.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-rapidjson_1.11.bb
index 7dac464bea..930ad34340 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-rapidjson_1.10.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-rapidjson_1.11.bb
@@ -5,7 +5,7 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4daf3929156304df67003c33274a98bd"
SRC_URI = "git://github.com/python-rapidjson/python-rapidjson.git;protocol=https;branch=master"
-SRCREV = "e9e209553a65db3568471f32392f54549c8a9816"
+SRCREV = "e1b41f64df1705770b7b70d7221a4812909c1d0f"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_5.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_5.0.1.bb
index f04e04bbe2..2c473c03ea 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_5.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_5.0.1.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "http://github.com/andymccurdy/redis-py"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=609ded3add9111c4c6e102f1d421d3f8"
-SRC_URI[sha256sum] = "5cea6c0d335c9a7332a460ed8729ceabb4d0c489c7285b0a86dbbf8a017bd120"
+SRC_URI[sha256sum] = "0dab495cd5753069d3bc650a0dde8a8f9edde16fc5691b689a566eda58100d0f"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-shellingham_1.5.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-shellingham_1.5.3.bb
new file mode 100644
index 0000000000..aff5f24a69
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-shellingham_1.5.3.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Tool to Detect Surrounding Shell"
+SECTION = "devel/python"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=78e1c0248051c32a38a7f820c30bd7a5"
+
+SRC_URI[sha256sum] = "cb4a6fec583535bc6da17b647dd2330cf7ef30239e05d547d99ae3705fd0f7f8"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.20.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.21.bb
index 414b2f6679..92db5045ce 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.20.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.21.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "http://www.sqlalchemy.org/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b707d50badb798e1d897f2c8f649382d"
-SRC_URI[sha256sum] = "ca8a5ff2aa7f3ade6c498aaafce25b1eaeabe4e42b73e25519183e4566a16fc6"
+SRC_URI[sha256sum] = "05b971ab1ac2994a14c56b35eaaa91f86ba080e9ad481b20d99d77f381bb6258"
PYPI_PACKAGE = "SQLAlchemy"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-term_2.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-term_2.5.bb
index bc6a4c3df6..3408b29c17 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-term_2.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-term_2.5.bb
@@ -3,7 +3,7 @@ SECTION = "devel/python"
LICENSE = "Python-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d90e2d280a4836c607520383d1639be1"
-SRC_URI[sha256sum] = "2cca4cf5f83035ca12627c4bbeff2891ad4711666247a790fd8200d73f38c3f0"
+SRC_URI[sha256sum] = "846fda941dbb8a7c9f246e99bf5ee731910fc4a4cc54b7e36457c133c9f6b78b"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.11.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.11.3.bb
index bbb77e713d..be42c4b6f6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.11.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.11.3.bb
@@ -6,7 +6,7 @@ HOMEPAGE = "http://tox.readthedocs.org/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=11610a9d8fd95649cf8159be12b98cb7"
-SRC_URI[sha256sum] = "8a8cc94b7269f8e43dfc636eff2da4b33a199a4e575b5b086cc51aae24ac4262"
+SRC_URI[sha256sum] = "5039f68276461fae6a9452a3b2c7295798f00a0e92edcd9a3b78ba1a73577951"
BBCLASSEXTEND = "native nativesdk"
inherit pypi python_hatchling
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.10.1.bb
index fc25271449..7df1d66ccc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.9.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.10.1.bb
@@ -1,9 +1,9 @@
SUMMARY = "Traitlets Python config system"
HOMEPAGE = "http://ipython.org"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING.md;md5=f17a3ba4cd59794dd6e005c8e150aef0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=13bed0ee6f46a6f6dbf1f9f9572f250a"
-SRC_URI[sha256sum] = "f6cde21a9c68cf756af02035f72d5a723bf607e862e7be33ece505abf4a3bad9"
+SRC_URI[sha256sum] = "db9c4aa58139c3ba850101913915c042bdba86f7c8a0dda1c6f7f92c5da8e542"
inherit pypi python_hatchling
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.1.5.bb
index 73935d090c..53a02dc4bc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.1.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.1.5.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://pypi.org/project/typeguard/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=f0e423eea5c91e7aa21bdb70184b3e53"
-SRC_URI[sha256sum] = "7d4264cd631ac1157c5bb5ec992281b4f1e2ba7a35db91bc15f442235e244803"
+SRC_URI[sha256sum] = "ea0a113bbc111bcffc90789ebb215625c963411f7096a7e9062d4e4630c155fd"
inherit pypi python_setuptools_build_meta ptest
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-types-setuptools_68.1.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-types-setuptools_68.2.0.0.bb
index 9d8022bf1c..ed0b1b2cd8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-types-setuptools_68.1.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-types-setuptools_68.2.0.0.bb
@@ -5,6 +5,6 @@ LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=ef4dc1e740f5c928f1
inherit pypi setuptools3
-SRC_URI[sha256sum] = "271ed8da44885cd9a701c86e48cc6d3cc988052260e72b3ce26c26b3028f86ed"
+SRC_URI[sha256sum] = "a4216f1e2ef29d089877b3af3ab2acf489eb869ccaf905125c69d2dc3932fd85"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_5.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_5.0.1.bb
index a59fd93643..9673c5d0ea 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_5.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_5.0.1.bb
@@ -10,5 +10,4 @@ inherit pypi python_setuptools_build_meta
RDEPENDS:${PN} += " \
python3-datetime \
python3-logging \
- python3-pytz-deprecation-shim \
"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-virtualenv_20.24.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-virtualenv_20.24.5.bb
index 889c73b2f1..d05c7f4927 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-virtualenv_20.24.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-virtualenv_20.24.5.bb
@@ -6,7 +6,7 @@ HOMEPAGE = "https://github.com/pypa/virtualenv"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=0ce089158cf60a8ab6abb452b6405538"
-SRC_URI[sha256sum] = "772b05bfda7ed3b8ecd16021ca9716273ad9f4467c801f27e83ac73430246dca"
+SRC_URI[sha256sum] = "e8361967f6da6fbdf1426483bfe9fca8287c242ac0bc30429905721cefbff752"
BBCLASSEXTEND = "native nativesdk"
inherit pypi python_hatchling
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.10.0.bb
index 92146696e0..cba7ffe0db 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.9.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.10.0.bb
@@ -4,7 +4,7 @@ SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=373fede350846fdffd23648fba504635"
-SRC_URI[sha256sum] = "cb454d0180e63ba1d83143dccf7c623581ba58e222edb006f48252d8a7b948e0"
+SRC_URI[sha256sum] = "ea89f8a6ee74b74c3ff21954eafe00ec914365adb904c6c374f559bc46d4a61c"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-webargs_8.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-webargs_8.3.0.bb
new file mode 100644
index 0000000000..d8ce4ab403
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-webargs_8.3.0.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Declarative parsing and validation of HTTP request objects, with built-in support for popular web frameworks."
+HOMEPAGE = "https://github.com/marshmallow-code/webargs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c3ff8567ef1f2a8cf223f30ac5a6f094"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "cab207941b0686c4d086c823632ddcd4343151644341a32fcf50b8eaa71e31c7"
+
+RDEPENDS:${PN} += "\
+ python3-marshmallow \
+ python3-packaging \
+ "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.5.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.6.3.bb
index f7650f9bb4..8104d37599 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.5.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-websocket-client_1.6.3.bb
@@ -5,9 +5,9 @@ This provide the low level APIs for WebSocket. All APIs \
are the synchronous functions."
HOMEPAGE = "https://github.com/websocket-client/websocket-client"
LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b969e9612325987c823fc0737063ebc8"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6eae3bb7247ccb2c3a087ea8de759c01"
-SRC_URI[sha256sum] = "b96f3bce3e54e3486ebe6504bc22bd4c140392bd2eb71764db29be8f2639aa65"
+SRC_URI[sha256sum] = "3aad25d31284266bcfcfd1fd8a743f63282305a364b8d0948a43bd606acc652f"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.1.3.bb
index 805a3b7dd1..6952d533da 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.1.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.1.3.bb
@@ -16,6 +16,6 @@ RDEPENDS:${PN} += " \
python3-io \
"
-SRC_URI[sha256sum] = "78751099a770273f1c98b8d6643351f68f98ae8e6acf9d09d37dc6798f8cd3de"
+SRC_URI[sha256sum] = "696c16458d50712a3a5f902676c045ddb4c1bd1b54595f501e582d549abdbdb9"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_3.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_3.3.0.bb
index c4d74306ce..e3aec97375 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_3.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xxhash_3.3.0.bb
@@ -3,13 +3,15 @@ SECTION = "devel/python"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3a9dab7f159514231249aa3e108ab26b"
-SRC_URI[sha256sum] = "1afd47af8955c5db730f630ad53ae798cf7fae0acb64cebb3cf94d35c47dd088"
+DEPENDS += "python3-setuptools-scm-native"
+
+SRC_URI[sha256sum] = "c3f9e322b1ebeebd44e3d9d2d9b124e0c550c1ef41bd552afdcdd719516ee41a"
SRC_URI += " \
file://run-ptest \
"
-inherit pypi setuptools3 ptest
+inherit pypi python_setuptools_build_meta ptest
RDEPENDS:${PN}-ptest += " \
${PYTHON_PN}-pytest \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.97.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.112.0.bb
index 9662c3fe3d..6ff4fffb08 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.97.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.112.0.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/jstasiak/python-zeroconf"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=6517bdc8f2416f27ab725d4702f7aac3"
-SRC_URI[sha256sum] = "9a06cd21182250100df6c4f4e9de2a47a0ea927c7d5a0446035bb3dfcc17a647"
+SRC_URI[sha256sum] = "f2457ed290c70dbca686b411f2351c3ff9f367afaae668d75cf378e9a439b8aa"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-extended/python-rich/python3-rich_13.5.2.bb b/meta-openembedded/meta-python/recipes-extended/python-rich/python3-rich_13.5.3.bb
index 2c31a33751..2c385fc66b 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-rich/python3-rich_13.5.2.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-rich/python3-rich_13.5.3.bb
@@ -8,7 +8,7 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b5f0b94fbc94f5ad9ae4efcf8a778303"
-SRC_URI[sha256sum] = "fb9d6c0a0f643c99eed3875b5377a184132ba9be4d61516a55273d3554d75a39"
+SRC_URI[sha256sum] = "87b43e0543149efa1253f485cd845bb7ee54df16c9617b8a893650ab84b4acb6"
inherit pypi python_poetry_core
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/0011-modules-mappers-config9.m4-Add-server-directory-to-i.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/0011-modules-mappers-config9.m4-Add-server-directory-to-i.patch
index 996eabf586..9accbf18a1 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/0011-modules-mappers-config9.m4-Add-server-directory-to-i.patch
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/0011-modules-mappers-config9.m4-Add-server-directory-to-i.patch
@@ -4,7 +4,7 @@ Date: Tue, 18 Apr 2023 15:38:53 +0200
Subject: [PATCH] * modules/mappers/config9.m4: Add 'server' directory to
include path if mod_rewrite is enabled.
-Upstream-Status: Accepted [https://svn.apache.org/viewvc?view=revision&revision=1909241]
+Upstream-Status: Backport [https://svn.apache.org/viewvc?view=revision&revision=1909241]
---
modules/mappers/config9.m4 | 5 +++++
diff --git a/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/cockpit_298.bb b/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/cockpit_298.bb
index 17f096f4c2..2623024243 100644
--- a/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/cockpit_298.bb
+++ b/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/cockpit_298.bb
@@ -60,6 +60,8 @@ PACKAGES =+ " \
${PN}-playground \
${PN}-docker \
${PN}-dashboard \
+ ${PN}-packagekit \
+ ${PN}-apps \
${PN}-bridge \
${PN}-ws \
${PN}-desktop \
@@ -112,6 +114,9 @@ FILES:${PN}-docker = " \
FILES:${PN}-dashboard = "${datadir}/cockpit/dashboard"
ALLOW_EMPTY:${PN}-dashboard = "1"
+FILES:${PN}-packagekit = "${datadir}/cockpit/packagekit"
+FILES:${PN}-apps = "${datadir}/cockpit/apps"
+
FILES:${PN}-bridge = " \
${bindir}/cockpit-bridge \
${libexec}/cockpit-askpass \
diff --git a/meta-raspberrypi/conf/layer.conf b/meta-raspberrypi/conf/layer.conf
index 85adf24eef..e9bbbd9e9f 100644
--- a/meta-raspberrypi/conf/layer.conf
+++ b/meta-raspberrypi/conf/layer.conf
@@ -9,7 +9,7 @@ BBFILE_COLLECTIONS += "raspberrypi"
BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/"
BBFILE_PRIORITY_raspberrypi = "9"
-LAYERSERIES_COMPAT_raspberrypi = "mickledore"
+LAYERSERIES_COMPAT_raspberrypi = "nanbield"
LAYERDEPENDS_raspberrypi = "core"
# Additional license directories.
diff --git a/meta-raspberrypi/conf/machine/include/rpi-base.inc b/meta-raspberrypi/conf/machine/include/rpi-base.inc
index 895fcfe139..64f60ab1e9 100644
--- a/meta-raspberrypi/conf/machine/include/rpi-base.inc
+++ b/meta-raspberrypi/conf/machine/include/rpi-base.inc
@@ -149,6 +149,7 @@ IMAGE_BOOT_FILES ?= "${BOOTFILES_DIR_NAME}/* \
${RPI_EXTRA_IMAGE_BOOT_FILES} \
"
do_image_wic[depends] += " \
+ virtual/kernel:do_deploy \
rpi-bootfiles:do_deploy \
${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'u-boot:do_deploy', '',d)} \
"
diff --git a/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc b/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc
index a7404400e3..311da21d5d 100644
--- a/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc
+++ b/meta-raspberrypi/recipes-bsp/common/raspberrypi-firmware.inc
@@ -1,9 +1,9 @@
-RPIFW_DATE ?= "20220830"
+RPIFW_DATE ?= "20230509~buster"
RPIFW_SRC_URI ?= "https://archive.raspberrypi.com/debian/pool/main/r/raspberrypi-firmware/raspberrypi-firmware_1.${RPIFW_DATE}.orig.tar.xz"
RPIFW_S ?= "${WORKDIR}/raspberrypi-firmware-1.${RPIFW_DATE}"
SRC_URI = "${RPIFW_SRC_URI}"
-SRC_URI[sha256sum] = "2b27e4b3c4d2664a0a1d0dd8602bd80ea41dd006eb0ad9c67d7b659c9c8bb4e5"
+SRC_URI[sha256sum] = "1d9eb83111826b708f461101766fd2000d45f1c171ad573936d000f623ca8098"
PV = "${RPIFW_DATE}"
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland_git.bb b/meta-raspberrypi/recipes-graphics/userland/userland_git.bb
index 9d37f474e9..198ad77a65 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland_git.bb
+++ b/meta-raspberrypi/recipes-graphics/userland/userland_git.bb
@@ -13,11 +13,11 @@ COMPATIBLE_MACHINE = "^rpi$"
SRCBRANCH = "master"
SRCFORK = "raspberrypi"
-SRCREV = "54fd97ae4066a10b6b02089bc769ceed328737e0"
+SRCREV = "cc1ca18fb0689b01cc2ca2aa4b400dcee624a213"
# Use the date of the above commit as the package version. Update this when
# SRCREV is changed.
-PV = "20220323"
+PV = "20230419"
SRC_URI = "\
git://github.com/${SRCFORK}/userland.git;protocol=https;branch=${SRCBRANCH} \
diff --git a/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro/31ad68831357d2019624004f1f0846475671088f.patch b/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro/31ad68831357d2019624004f1f0846475671088f.patch
deleted file mode 100644
index 4de5229914..0000000000
--- a/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro/31ad68831357d2019624004f1f0846475671088f.patch
+++ /dev/null
@@ -1,898 +0,0 @@
-From 31ad68831357d2019624004f1f0846475671088f Mon Sep 17 00:00:00 2001
-From: Phil Elwell <phil@raspberrypi.com>
-Date: Thu, 5 May 2022 13:17:21 +0100
-Subject: [PATCH] Braktooth fix for CYW43455
-
-This updated Bluetooth firmware contains Braktooth fixes for
-CYW43455, addressing the following vulnerabilities:
-
- CVE-2021-34145
- CVE-2021-34146
- CVE-2021-34147
- CVE-2021-34148
-
-Original firmware name: BCM4345C0_003.001.025.0187.0370.hcd
-
-Signed-off-by: Phil Elwell <phil@raspberrypi.com>
-Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
-Upstream-Status: Backport
----
- broadcom/BCM4345C0.hcd | Bin 57622 -> 63894 bytes
- 1 file changed, 0 insertions(+), 0 deletions(-)
-
-diff --git a/broadcom/BCM4345C0.hcd b/broadcom/BCM4345C0.hcd
-index 82c3647398b67474110fffb6f05986be7c1e3bc8..d4d7e47ad8115bf34cba5df237afaf4bf598e74b 100644
-GIT binary patch
-delta 30611
-zcmZU*30zZG_Beju%gPc7h#D2}1rdV+23NE$0r3%V0j+J-+8V5FgT)%R7S{xd2(pM?
-zRJw{*TWf1eR9X;F+S-ntX*)q>M!SsZECsclc~tFv+5hJzb~@kRA3n*u@7#0GJ$F0z
-z+;h&&p-&`-?n)X~&RskhA&De8d+x%?lO|7@!cCf%K6#;W8@HrrlV$bO8#iv{3X8c(
-z<J0sRnbVMjQHYZ{q%-IxjO@v=9Eun!VK?r7WozUD@0a1PYtbVJp$a^T`IG{#03Z-R
-zXb}E)2=K}qT2vdzKmpvv1~FD2(V|2svIEyjf`D<&S~O%Ll){foKaBtyzW{()10+&p
-zmlW`R{-_q=uN1rRMtMH1qx_f_mC-+ZSstX2|E3m6yzq|?D}sQS<G*1%qx@6}MZN)m
-z6kBEE@b_UH-X6A-(m8fQiykgmxRA%v@L<Jj-_j!CUI)Tg!qXI)!&&scumj5@c4jQN
-zh)`Ul3aOc>i0;)4Ixmcc@)O_IqArADRKbkM$fszA4j?8KJ{OU#$!SMuWlS(LI%mBU
-z?G^YAgsu(2gCZZJ?Q}zVbdFVFOJw{a#|4Cb8WBVuE>*MW1HlBvFS9|&2vZb`S_A^L
-zmy8TTMs{W>&=W#c8$yl{PTY5C3baZX3=nw&{x(vt>h477yRj-HXQVbA)~MoWrJtPC
-z0waHI$8%I8+3V?er7GdsUC_KsGlO);Sk}wX4#5Z9JU=T4N&acP6zvyA05?gqgOIUn
-zeq>Oq;D*Mm3_*0IL5L3^F8~B8++hf!rWk`6v{PO);2%_pwBPr>qeXfN<m0G8i{)`p
-zdFfpI%%BAM1xPmK;Jt&gtwtyjxdf1xoYJBoscGl@wAK&L10PF+kj%_Ia<onmp~b1o
-zgOKUm8xr)Y@ER0e8G_8vpOT<g1UpbZ6oNdoc@9EXgcY=uDOhTz+JMlP!Ubqy17(Ye
-znq}>Lh=P8C1~r91voFn{kP_(A<`85~<2OoV6gYrfUmYxFXgVfEl|m(uJ{iKvQg2~U
-zo3Ik9{}Le3o)PbAX${$h+i8XY3SSGM&b>4qA%^3C3xuqQBIRf*CFrp56AZ?^5YoK<
-z7wAOjgko!K!8-ZlQ-Mb>f*R-_l*%m`B}Xp^Yk*K@c@W3gFiL{n5T-)cA!!hj_Y+}J
-zvk(K6V?&Vq=3F^?PM8UhIH}4?3C;KBQ_y~>EHQ+%pmDAoZ59qg13#~zgrGrxhXzG0
-zycEnh0vYn%!5S8Mv*f5mhy^Zmp~3|#FVLy=A@u2&A)LZ0DV^w7fOmZeXYrax=sGc5
-z0hAd6Eio*oAS;Y%b_nwDrRU_RSjYyx7K9*6J0EA!DIp&qOGA)Hgm}7qCqrc`0Rl79
-z*bwCFQST-xIv_j>oW9o>ggmCMXVKe&4p7%XdrrLvqQV-?S!StVkzMcs?(>I&kmbkg
-zX#XpLnYP10$cn;p7M&C#p`9h6svno0lOw|j+nL~i(5m&X1vx;k2TQCxo+Lr93qL{=
-zH-}0*F>?pyX*JX%4dGayT)9n(s)V6XQEiBS<*{JtRTUG%&@4d?^)-e{o0>M!?kI=S
-z%^^rpiBX9j6;1;VG-%^#E&AiT!NRLkt7Yg#p%bW{452=C`JfDy2{WPRa^4T(tPu{$
-zkhM(60nm;Qf}p40tE9yk;P_0a*faO6GE^!Q!HhZ|f;=0Ur$CPj-vH@LA&7b993^^8
-zhyyxJ9|h?Y_qR$>gAh*V;rSqBZS04?K~h7I=Nek1Xtz~}1EeoQgi54PtRmQ9*QC&(
-z8Sg(33G05kBt`p#Yk=AmD*ZgSSc(n_EO4Rg2-dJ(XOyBEVHwQp??U7(uLW`90OxuL
-zXT!1-C0Z`jLVs=U43@HPl%7){lduw)?+$@BX)2WHVc`fsR&)iCHeUvaQ5Xar-yb5q
-zWoEEBa==+|A&B#W86XuxHguf;I4~I&bq61Y&w}|cF7TdUKhUCoJ}F0Q1trWuk&?19
-zQKd6KqFqC`p6emptqZn<qbb5JsBgjN!P47~2O&EFax4Vdeq0iU48nT=L9!suj>r$>
-z=xM<Voumvwb}FwT^k?BRKwi5X#MxE#X9_t9e18{&42rTg)gW|L=%(`E3mg-xv*y88
-z@=k&(G^-zc_r<9Y`#+EYc>mwO$KwC*y9e@_|3RSd6k}hJ4BeTgLVtZ+7R;5+2$gHi
-zP@x`3zigJ__SpF0uWD7O3qGq7Rp{#Ipg=uWszuf@_&>2j!<jS{8ns%ArjNr>LuL#e
-zzfgrT;PV-L`WC5B07(B-j#mxYy6ERh6$(QP;|o4n`9KGQ9_eJztn&=|3es;w`eP6n
-z!{PbAe__i1Z7o7C{Y`?VzlPmIW=sS$rmjMZ{tTbr{^<Lt<0|wbeEtd_n7ldLw1_}*
-z%n21PN?16O(*Lc<(<fAje*OTTpM&}HMl6S^SqC5cso#4N$V6_};@qLLaLv$KIlNwj
-z*P+8^#Uvq9u$i=}^lxx0E*UnPeX$k4H*5w)d~Jso|7+MRoT3SqTeDM(&uM01QKM&%
-zp2OpYub@b&yR`VF;j{43k#YDR!z~na4?s&s%)*C8m?)w+VjP8bTD4d^GKK%gIq2QF
-zN)(@?L@&c9Yn~ECwW&}YuS7?tE73>rInfG3Jwu7cz-J!FgJ)+d(Jg@eFiVN1fu#7N
-z6(1fMtiHmgg|3OmsyGf$j;p0A;DRzx0lVXptPgFZ-Jn3$;1i*Lz*7m3S(`%Lvtfe@
-zNnmK7T^oAWmeBWD^f){b8j6b7tI!}MM;XtD=<L}{pK^2rp5gF(A_$kGZ-ekb=rp{`
-zfnFArlOm-R9ejoY<Y?M1`a~!mwh9U2QSKHMqH}lHbHQPbE!UznK)3^R!hplUkS&24
-zM#ED<iwEBap?`g>LUB;+Pg7W+FGn}wDFKYrmJnYHq5Npbe--dYQN3U;G?3Q+COl<;
-zNPvI@5Ej2k2_sanLxpC;lL7v+;o0$k&#|B`NPv;yFR0L5fKLj(4?>T_dl=Ab57Lt(
-zPp~5?O9)MY&-bfnd(_`Sdm0gn3c`1dOr}$r+fB#mvVx}j|0ms2`8&LH&+lnN)$eI#
-z_3vrN|D>Dt{th?Q{GQg;{+<?oPp7ukQFzL%1zuU)Za6k9@J7bM^S8eRUZoOV=|DkJ
-z{U8UDk&vWId4X5=j|yxatFvn8Dr8_e-eal;-($jIupEkT)Gt}!<>@+x6A5aLsv6uJ
-zr9%@@;mlacOa@LZK!bLF6~I8m!^eh7Xqt{iNR~k&^aniFQbN#OKS6iC#+XnoYeH4<
-zX=3raW4k2hUeaQ<ZV0yNKGN<0)ZhMcfK|puxs~05l0ZS$UyhfhaEcx6Oe+%Fu{CA5
-zwbRwr?=9Qcf|8K1%w13VyXeyb-ygdn=Liy(db;|BJxJK%rB9AWJ6Rpm!|@Hd^<+Qn
-zegIvCgdI>K&QHrd;s?kP;G&fg9&)2DMpzH@7~wY113GBcZ6#uaC6sCzlOmk*Kp{Y8
-zg)_b<MClz%E;N-MVQBdYUewjqKM=(To!BsLm^JqTE3AbAtng=FfxseW;TDp3!7z<O
-ztnhgd;@r&fFOZ2HtdK>yK_8PN7aGNHkVN>K{}j1?A!`Sd!t|UXX%|nCM=vr>(8g72
-zULxFt+yfW7m1uxP&P}JtT-eqm!k|D`zxWbup+q=*QEC-3MKuuZ>bDrA!s~6ya|HsD
-zNQECnWoHRl)+rTUZU^q^fdI;6$%F$JLeI}0JmW4(`9|?1+DhDhq*FSWb6Q?5M2Sep
-zbTW>uWYa~;Gc6+*bZxeC3SP%&0LEaK&YsD4TX!IZtuvRL?V#V6I`roh!s{-5r<ugG
-zN1o$&g)lo1**Q$h@kQk02Yf1oCod|5Qvpkt5-OtKbs{GJzMvF3T(mN?#qdjpdJDmA
-zrU$7V=aqt*4%QK+Fx3O?Stbp(r%Y)T-U*IYnDD*``DJ0k%^(elwt?*QNQ{gbrUhvU
-zPL%hiaHwQ;xL~J)@A!m7T>OMYT@3YInDCbi@|JMnbZ}~Q^#@jk3)j2Cg@ttLl!ZDV
-zTxhv~S|eZ@qAoQ&KX<FU=0^ytJ)4QW9nkhf2*qC7fC%A_UOFi1)<_{2h6nQIMhfco
-z?)xT=!Y!>*{xx#OJ8a=W@j8=v78=BXPJ=h4CXF5Hh|Z5OFG*lc9RHaZ8T}g3xek)U
-z{)6I;=q!O@cEj@^!T7V(tdxE#oo{)w@)k6T4<Sa!IwZR3j+dOAS$X#3?XGrYMr)n+
-z1~Lt6(*|3imVT%uQYUlFTr{hoSJX2$MWiG2l=ZUQX8_^M^<;-wPfm*~oqBUI-+h-=
-z?;{_%Q4<m*2$q@S?>GL{H@%c;s>=TUhO@6xoQsP2edH~`uqmVtT^`dEX0FPXTxGcZ
-zWQSYfY#{eU&Yn-Ke-vfBcF{0rJxLZ3m*V`bXtg_|ijq@YMWYSB3`tz09d6W<*WFTQ
-zK52n6&_qW+kgg};VjcP1AK^4Bq`mb7+S4M3-2i}feyNkzXLQ#QPk`a-$kad`dEE!y
-zqUOxuLL!KiHC`CTOe2SqDl?ESi9_eoIW!KQ3Xq`gJj7itvgD@Sf;GaU0gcqQeIJ?b
-zW_ZqQK=tI!fRyjw0ZZ#yiB8tjnJu}Y<Lk&xmz0;KGB-N2(}M3UF8o89esE3z>CzpC
-zU`UV-m@HMm(8i~0m|{FDU7Pl_NQ<&A9S_qYtB!o%R;2tb{bC!PZNNmXQY+;SlAX9F
-zeQelIen-0=X0Z`>q-Rhy!k`3-Kc#DM!~|}1qpO@BsM5o@H3SyJNW{A2I?44LBC-?+
-zjPj7NluW>jCQK+Q3Fu8s;&h&a+L8MYXW9l(l+-~>?j!#a^`>F=FGQ(<al&^YZ~+|1
-zfP<epfSUp-549@8RA`&Afv;|Hhz?H0C)%mR4Qm19efvnW7yoU-2xc~RO&Bv`yx6>*
-zeV65n`FheFIJW)d_UCx%JN4vz0B7nGn8)#B`U%rORtJEr1IRW*em>6v#vy;2onq$)
-z@%Q=JrtY~m#UMwVQ~r(-T6bB*UHa8lw+}Vw%}hh9{r8II1b!!z<Nuw=Y(H(P+`%MI
-zb$)*fYHSJzQO<mIi)HTju`f3l=PCCQsVL_eU5eww0o(el8;C38)6Pn@(x!TH*(YtF
-zb6=v9UX{K4jfhZLHhv>xQRHD?mQvbqvbdgn9Kd3RJ{3rtB0$e^CXJE~Xq3$`gGPwg
-zMWn7LZ^4vMeoMRldk@Fgk{Y~p;+#n}E~yhGMuSAHBQJ?+ArKYTgVF~(P+|(N2iR7S
-z!jX<C!TjSM9h6&wKcASvK}9++<DFcqfg#vO=J^}!IrfG2lWUE^_gQ$@q^G45NW(>J
-zo0P;lz4)z3+;k`;K%wKJLS0sKTntlp!*>MY_*P=|AkNaIfDg!~Tq>PZ{7}9D_NZLq
-z^5DRve73O@&!3$7bP6nGm|6&FZK5~25IAID=M@wMJtbtM2vxMHR7f~0O_lagv<A`3
-zv~~Qu^gJ(39YG=Li9B<^Z2Mk*I=_s6i~QoDu!uWy6uvEdAdFcO_ZI2*;O{1LEb(Li
-z<U;FmSCX@kd<oTXJ&|^KYJ885-%FRiZ4ewXT*IAAsw4=~yUcbv&I-rhjHpy?|IXM-
-zuDJJ-a2LbD3_YSZ8)R&+j$cErcoBEMPu*HTt_P~fQSS@nhFDEv#X{03D%-0GD{8b~
-z8xIn{tBR<u0?LH|t3}*%WD5RfN}BZ;xfghW{Kd71{N%b|lv=v_)dnQUFTgrk#aAh|
-z>iGj?rdx`3IocKipT;N^x+yx#Z;CBvZi?R>D-Z%<F%vdjx!JD}YQi?;)*P-m_Wswk
-zHCO#Uug9$`{a_)ZlRK)&aG&w4p5H=l2GX7MneCGzjYB$MjYA5)ilqBAb_#X`!ksg<
-zy3$ticeknJ08x1Yu-9%OMqegi8U1SKB;N4LTNBr7UolP~UZ3&-_MhC>#T;~i+;@jL
-zp?g+Uk)55oQbwoerH(D+MBuWR)9_2*7NYP;`AK}iz0DifYio?qo&{>P3QZv2`ql*N
-zZw!R$i}gtd;;5Pcl%g+8qOxt3;g=gw?=GnKQWtU#3pQg%K*GI1zJd+l1=1?w#nWQb
-ze({|q9lpIVU553s0RAYLd4z7~t0>yfZ3oDRfEuQDHF*jjm^OzV*{-Wq*fDK5vk?zW
-z8*J@p{}zhp{Gw)**-?&0@di3+M_N5h?G)%zMwjM5TovJA;H$_(-a^tF;P^%4XQ~yf
-zI!r#h_yVaFH4jRtVdI(WoaLP6Om!wZDFbf=8M2B~U}CYln>~8|G+75sPYp8t*FJp_
-zbalN4jxi3Tts-l@NUH<Lliok}(ar~Mo1;~zGJCyt4D^NC_eq~V*gwya^o!?U6ga^E
-z%Q6S)VREkb%ypg<d1SbUEHj<W`zVJK$#DG7%$;fHFTm178yqhze5%CoE08sVRX&GZ
-z54BAo?|Er4q#Nr1l4_KK>!<4!fA&+%<+yA5aArLI>-140G_FSHCkogZ<g9}e7!>bh
-zWl6n_<Wc~uXXtc|<V@fkUB~*tDmV>t_mJs0kOl5Q9XU$w2cC7l=*(6`;G@%rjN0U1
-z<}8y%_5zlLVig3RIVc8Z;8Bu~8)sxO&*Hz#m=+EMMId;LgkkkVLuPRNJH!mE72F%N
-znr?j-!+Pxm($i6J&jy5`Lm*%4|92miN1&O50x(d3n)Z{n0Dk77^n&>=uEZdd^k%_c
-z)=Dmlv=0pm;G+bAVi1Ck4T{!KTIHgnoehGwf`ofe(|aU6P+ibA09<v)!cO|#Lz*G^
-z!5LEGhGBCf-OAwG6IeY{YrW)0O;zM;7c*uq%!Vzb+rNdp;Xipc(`=AxdM!p~44oC~
-zo_Z4Rc|I=;_Te`7=i#X7G^y}#=@C~xAK*~;nbR<`sA&tC>Zdfy{qfE<c^rqvC@sJC
-zQTm5naugYyKI`0im^{<moE`Y98Up8XI+Lr&Q|{A!a;M>!`7s-`%Z%vN2_)9@3aBVU
-z?3rdHRrhA|c`#rZ<dz$y!8Vep<-<5eND~npD8z#OBybU)`>28==l7F;`=w}ygDdG)
-zY=!mmq&kt84lG0a$$(#m208lone2@u$FJarB#7Tc?S>s9lW!yjzpgYuVgppft@i5q
-z_sFw&;jEPWRu|F&vxP%dFo(~P`T$*lj85ek7VNQj|1U7(tH?+f()}E4<ACc{A6=J<
-zo>8!-7@eetwoy-(<L+5w<A3td;}H@JE?InVEeJ}OfzUXhu?tIQ&l?4mX@;rLxU1*H
-z<mjsG<m+7Z(VD94#2!=i5Aek1+4|u#U?Rg*x@UtKoP*R|985H|;Wd(q?X#DsNj(hz
-zx)_Eu?WaXX4fLEq@3bgUKNlxI#esI-?55cjqK@ej@w7R~j21sRN6TJv;j%dzw#$!S
-zoilUBL+*KKip>a1Zd^3SzeM+?lNuEo@RtL(72-Tb&KLX|*ebolD?S3{+Bk2jBMTM6
-z&R&9}4I?LQ@*9{@y#<2J)Z)26P(0TF>e9C&P0Kvd%-f<q+Q3Bh(vs}xaXixQA!&G(
-z;jtX3#xh)mtZ~x&$2SMg?8#=YXiL6O{MrMlo&eqM%H}RAxOaSm-pqmKVu;hj>TM+3
-zy_tM~d>Kg6Hj*vaZHQ+UVolb%A|RJJLWRCX0Z{KTc~xxQx1XH#>54V&x*!3aDKwzc
-zo`d2PWJuTz-;_Kh8tXOhG9;K^z$6{C6?u<&7lPrWYr28F)k#+{w;TVMH8E*tK*sMO
-zO#w!y?BV#$<VU}uWIx&JqoT4+q>$I$cxJYS4lV-kpwt=Ag*gJ`s{q3*c}v%tIOmxF
-z`8<F(WzV**_7#w$E~<O%C%b*=#tC_-G|XIh`(sO(qmk_ONP*}c*uOWz(r+Y{9-VPN
-ziSukB<2)#-)IP?D%r;p>Z_+|tslmR5Z1u1@sUy{bK;_*+THP=yL0gFEO$g>E7*SOL
-z9ooyl)e2WUypAj&D_p6Tk-_|t!Td$85uqoZKX($_T#apWXE0CTj=9rlgBqwod4NGt
-z&Kp1*$(UXn$2xWVZj$B2(K(sSTAZJg5%G$P?hF>gdt@K3%$YFwM~|sA7S@af&YM7G
-z8JMB*$2l78%t=gM`e1%j*-J$xo!wPra689`2h$4eYsB7xb@OI2Q}NUD#?ylX2X=4V
-zFi(^44dS%#5fyBMFj=y~v|W7$nW7hg;66vLd+=BDG;E8A`{tRgBfVS+74Y1eEP2#5
-zBm*k_KxOhZj&BC-gRa!~NT=U)mZm7tcm2suMmG2wtX%aM@~B?AyK!qMb~|tk>q1cf
-zcQqG^YB&Z`3T6J#PDt};YpO`L2o($XYknN_0(S8uwb5=l8s#W5BVmeo-EJ~pB%cLj
-zD8>;K<SnD1W$C#?wKM#u%ropoW;ihAN}SV6^-%F;pUDjE%thK}l7~xjUy7}VExkg#
-z1Y%(}Y^l(uQci`vxx;asQ6s%bzJ+s&u{NsBT_7Zcr8ptq0M>f^rBQ?L7-ujeaB|)j
-zI;={t-?z+f6&2jbs#oC5`~H0TWNySH$2sx&yg2p?Kfa!KfTB78RX#9CE_XA(et3rI
-zfwLsa%s~T#5OU+{{1=$a1M{a-#HP{UTL@-r9%M7Z+OqyKdUC_d=C@EBQxY}*A~z$P
-z79-IJqeIkhoMxAtL=Dn+@z@20Z0ugVbwMgqg5O$@kpKmBW1xUulha_ZojEN^(LbtQ
-z%0|~U{Ap2%?=RTI<ltgz!^gW9YAJmI(BB5>8yXu9c1~6p?oYRT+oyEm&lU!GXiHY1
-z4@H?et?Hd@=IZ`z_C`!nnlsX=srXRDjf*CaYbHGbl~bC=I%M?YjMXCN5N#%mN3uIQ
-z2|3v$jxX&4&+T6P%OXAVJRV&TtlS0;npmSHH+nmpBE7MH2TBopqTxNtsMq7C3brwW
-z@ZSoiP&SP^aNC#@=dvcH*#I^?r73uj&MhTxp2rglC&pq>n$sP33+^sbPm6`KZ!0<B
-z!li{P)26`0y^c1Kn?4z+tw2hh0==%afrL6DGFk&XUl$QPD@kVnGmBHF9Ck0WUoyt(
-zk-1wY@69wfKV>dyAY*;+kv_MxiYjnlBTBQ51jM6N)hH~!mOPDDFP@jaz^$|!l93Z7
-zLp|4_o_dnzSGU)bHGXs!jcF9eq6}W5OK?Pj-C_*xT|7GalGt2Cm!`$Ai45zkC);q?
-zlBW%S_Z#fRa2VV~e)5*_1-yh#%;s@m@h|;XAIvAEEPYB3+aztMg!85i7Nk!7+1+k+
-zS@yUdX;UTHi{D=|jETXYFBvubO&HQm<Z;+&$HGQ!Dk(cN*dgKekV5QVGLqSaM?4(A
-zBH1nHo44*K>24W3j}PdidV3{V>W50r<5j2(%!cDoC5Z|kZZCOGyeSH{th|#0sY>PC
-z%b<<FN1k`RN8WQais?vgH$qRk{q&4bN#gMShsUa8#6zN}W)iF85m!y#_TtMAr?L%R
-z{OiNIaZrUm6+9v=5aPb?J1C0W2zv^z0qN8mfVck^TZ@fL=S$C#w*&a_(uv9iKCYyi
-zeC5GCONXj%bgs`+T7Z-Yr0~y6H4$+NCWY<E1Xgz8VUJ9RIt!{^u_LIAXKf;L@FS0m
-zwLTWG*z3p@PfK=qPaRp|%d}GoSx3b7`FV>)4&4qZ?|?t5Ls^P+nGUMRObJp=^LO8c
-z`nuD=Diy6vN$){I6wIn*C#}-pQ`@E7d^j~e1Ue5TI-hK5Pbp<mM)X*98pkx)7`png
-z=aHd|6vsTel}_-gbQRK>(VYskXG6xnlu*u+s{)&50GfeMJ(|ScD#wmT_fpit2`ZEj
-z-6(Qe!-%po+&WZkh-)yEWygLCVq@!Lv%@yInzNana*~d_AB(rvk$*!+exs&yOvY7`
-zpD#9wWiU>xj&sa*HgB&bH+;R~HFYg{!q);ek*F)J;@9x@XV9A<h3p<-AZspQpjx^$
-zYV_cr^n3=dv=GOa6Q3&qM0*YDzMBOzOw)5tY*3#Q>j7Q#G5o6BUjvr1Y}J)$IM$Ve
-z<tm6O2RYMQPDTb8XE}M_&w;kGAh<<Y4E1DoCpAnA;tNO?=*HYSYMzh@&-oe`>h?CA
-zH6+;1=*k%|&QU#VI__9DYa;OF1imsra8{E)1ax~D-Jl!vjW)WP6kKFrzpEw&SPK+V
-zP9DbNmM>=_amDhv927p80sc!^ybLvrz=!J2QXcI<+EP$_`<9OfopA7q$8(Rk{?nJD
-zZ6dF_(w)ghTdAhKQ8X}e&|Vr{+0h)xlA$hbe&Kc?X_*KT3#{z%PRL@^_6jkJxz}gq
-z+<n@0xOGLktiaa+VxxaW?#Ke~CGj}ACRV7m_B>@R*f!}qZ5@yEA0IgzsAW!4q1*mO
-zF@iyN46vKnMAoKo()9F|!|j<lS*3Y#Sr+H^6dvg~KFm>0UJcMaz8cP9Z$4fG>s+={
-zn|9O3@#o1OVF<wdD*#zEnK}t8;1y<R8SQnn?%O=JI?Vh?9DaCZ@(7pbWOl?2Is~60
-zqa8*SM)m-V?9U#ISB|p|xGsqm7CNqLL^`fn3a+<XZa<^w9RxG22CT9*pal#?a;FmB
-zUwZH^hZ<|p86(mnbNO11S{yF}BMrGadxNNhsY#oD&V5Zhsc#e$qpykYq2(IG0K{pC
-zC)JnW?V8vEIisWT%qLQ<vpm<t<1k-8b}RUE;v2|jZ_6HZT@NJw>5;(JUj{u{M<)2}
-zXXxzD@PX514_yHg-FVRElbE*bm>bR87m+rP-o7V~&iJrW<J`7v#SO~FX^#f<tN@uE
-zFw#?6!xR;25+$g4Gq=tmDx>q_!n)z1f(1~9g(u=QZ-|%eY%);cV1cSz#V^q$Q2oC2
-z;W1ApjlNB-%s_NB%)<aE=|}r$mosB*un0eKA1$sWxwz!Xl)>-9rXX>0a7I|<f=ZW7
-z1*vxQNe%9PQqOF`15Zw8p2Fi-X&ED4xGH|!pIq8?c6yTMrm4`^>K4zy03DGNVsr5&
-zQOa=Z-X<eq;9r8-*0?Hz8IC_+HJzzAU>dpF1$@+z8*o^Qa8N;T&6TBW1}@gRWIFcB
-zPez-VQwVhXfiBfcrGWgHk4`YwL3PlDeRX68m^*)aANOM&`4hO7qz<~w)P|SHB)ro!
-zW=M)JNh=%Z2OCt9FIFqNUuii&M&XZ4c|$Jx#ynjiZa0BDP1!|lPA!?x)ImiWoK}=G
-zxs3c8xNT0^!SQ9}`2ZZRUOX<=Tc{+W?V?M%j2r{mMo*wDm<B7z-2gsOq#Gu49SFLE
-z>PV)$A#WI6;ic1o@b^WUp$QudTy;T(_$HDkPLG$tQFtHuz=LB}>)4OIc;@OgRv+k`
-zwWQS7oIR`uN*ZQRt931TO$>F;L{X+2bhVaD@ao%Z$vwXYwhfD+mK^8^370yOeepLj
-zBL_o=F<Q-ChF0nqbNnF^2FH|nV1`7xkv$=-YVuRNX{{O-SGM|SSsjUe4h()FlFzj}
-zw^KXiT_2wGR4NR&>8X*4z>@MI70Qe22A`30`%Up&Lo*a^hGVo^LA#_9zy4I(5S^%9
-z*8>u|hP)eKkkY}e+YM6h=2Op&2LcWtP?5^P$|xsqc=RAHBOD+IBK3|&@pY6rHx))O
-z2b5{NWz90h8DJTcnfTh8;BmZZCiDlQw)*fMDoDET8W;rjr7}2?;>@RYBcAqMf+1o+
-zeJKOt=fo@OYw%t}oPNCR>9wQ(><iEVG0jq;-5}3eVW&7DCNNa!dUIub6%WS|#WTj3
-zgMOtwM^H-<XmibHs>r(@T=dLTwpqk4Ka*eu3cA^#59Nj1!%8Ea<+W=@ubBI3?HSMA
-zU*z*gmV#=2HLnyobF^ifZQ`S9OD;m|!BblTA9d>?5Iv0x7>fy}&;c;Os5xgvbA>uM
-z#cj1e)K+DK$qc5`Mv%DkQ3Kc{n>SVGNjT@`@KT0L1X+%!J{xNdr!21mnVAfhp&c1~
-zDfy>ZAwCAZnonK}+!Xum%EaZonLkUa{4ly;9KOE4`>t(RqnM9?e*yTXx*Qyn9XG|x
-zM_Et}B)Vk|scvV_Qy@?Z!Nyk#eB={_zoETaM7Bn;05zPI>#`iIZjJ+g@vNG?=fmGV
-zn>zfoE7MLfcl+g_tSv^F_H2+JwWJ7hX6?jQ-ycCu8xN3t@(f@k19f1aZH@{RA`PgI
-z1xRU^>k@j-i3T|I9~TXHlX-M>m5ADzWLn4x@*^MQ$J^$Vk&HLqPS;*OS>dS=6K&K{
-zACe8J_>MVcaaLz&_0K0`+SIKYx~gpk6&kuAHBo9BmdEiI;57HaFE`Z9MIZd~7&4h?
-zzsnZnlh52#^4F4~;P+M=c9TQxVk86|l;Wq06Nk1`Yf%*pp83^e7(l8KyhQ%s#;+I0
-z$=cj+kr;fTcnWpF8M9RAZ1#{F((#dwK%yG>JWZbVOypC*>J<rAYm4Dc@RE&OJ7y4Z
-zf%`AHQC!ZvMZWgoMQh^{zxB(Y_u?6_%U@ptMd;!5MIW*=$+~cA@4e!}wQHwR9Za3A
-zLRI8%K5C3!!57?CYb(TzXzrfXP;d|bu(ptW7nbaE*`xQ9e+5`xeh2KecRptxqZWZX
-zS!$a&eX)&>z;z&l_dln>Ezjws`^iTE{M~aam^wVIB!wR0o99BdsYHXVC3>b1x0J*)
-z^YGUt^QY`5Za5H+bTpU#P-+8}fQe>)$%uv$<{VHX!RR+6aKhAFD!XG-Gx0x|ekcVL
-zHD0tX38ep~bt%LD>DQSH?nM@%`;S}plkffhq!_1~H<JY1x^7h7W&c+oKD7eNFs3gS
-zo;2(1@03at**j&?`^kBKzgc6yRT{?ZC+Fw^K|c>_EY{c!zobF-`(X6cS<DvQ1`Z54
-zIR5!^W)E(DK8?0U1Wf$Z^O}ei^Q1lUMCx(djLGvSXkIrDd9SV4;EwgdBWG2v3f;OY
-zzyb>t*m#sw*0P^h%h_HzhZ^u+OD22Ji!WI=&+4Qs6dFO*dZlfEjbiVFF=1dPkbo1g
-zZ9o>Kgl~D2%n|044n!mLio_{{R05=qkz;<mWy2yygD-6enHlrIpLIlN{ca%|%_N;N
-zkK$wEYYl^)2f(w8bsNoWs|O$0$WMR@oq#%eW!?_SZALPBDYf==pJ~bd`RYVo%NzOW
-zPR*6M;MUCK?c{<7D>hAJk9+V#o2G&Q-?%AwoIRNjG8BS6WV&a-J%ohF$U%eDC>Gp7
-zLv;A_O~Ed(%vT}9<aKdBpJ@_VbzSy9uIj;;R@E2bmI?Ua<{(by0va44?$dxe@nHZp
-z)bPr=YaJKkCp$As@tQ3;?041p)Rwggz%zoF!bpe8iCzi69f6d$VQ}Y4dxjdqZb#sW
-zFC3nJ%B8m(rdZ<wXIe`4WdHN(cYT@sXMJh6!~!UM849a-x0bo1<_g?4_jw}-E=4>4
-zvDr|H*%uoh%5`z=O1E54%w?QIos2W@wsWgt@(Xdlf+q~hH!K2s@h7i|Eciw)UL7Jb
-z5vT4TCNH7DUFOC;FSgJru&e;4Kv}5<TV9NbVYmhZlPz;3mM+XQ#etz+#Ft8gfpuIV
-zpcQV_;PqQ)vK=0Ldg~(EO5fH*N~E9Wj@qWdv$q9_wk(GCf5W?K`%JADWJqcl-2m#z
-zAhCkj{I8QS-b3UI?>ppW-w8M>uH8P0NyK}%PolI+mq6LB?HWy4wzLPW^OGZ<IeAK3
-z$c@oJ?q9_Bw$D({_fCMtk|juBu{4klH=ey?5iM<a7)saf(BOA><WM8czz&V|3Gb8z
-zW_v7$!5x}Ua@~`R+I7qr##FQ}%XCg$re?~@iOQw6V{+ApoU`mK*GQ^BvHlN;=X^5C
-zr871_sDVMD?oD0*(F#fl)lZa5AvO~Xk_Lscmr0a@|1uv031q{b%$ca(wv;4!Guwgm
-zKSZwmG4hXqvOS+9;e$K#m@<5G=X@&A96%+kA#9))DI3^p)#9WxJAWtu6AmVaTsUvn
-z4E9?Q@7^_)$-|wyX3+vokAPeHOg@<}UY?J*Vm@wV_{t`J^=&B|z7%V$N!B8N2JC&2
-zuVC^Db$BD7$?gOrt}f7QKM!KFTc+-{gRxfUFVKEq#6;nGKQDw|{$Kp3dno2ozFRt|
-zw+tMl%fNGI2A&4MaZ8^+i;IHKTjFw3>ap0DlSe%daIEC!1Eg;O2^cm#szS8PU%^jO
-zTEsN96?KV9)b<k8`7$Pd5nl%WsyfWP65gW3?{6v9;fbI?!dbp1FN#xct_I<)7W`3<
-zIJhdCY)LOBk3#g!H(n{woFitoGh=k1uwMzjPZQhl4BO)L10bh=Ydf%@drXA}gTpDC
-zm%N*?GIpibFnp;YE?g&G)xdVT1-ILt9d>}c6DYJ#=MA8lyc*C!$_%MmJgsa3?REi3
-zC|^E6mIr?0u-w~X*9SSoyUUW<d$1(R5)z`_TsxSvOAQEvB}`}5n{-?C8_*cb6Z^;?
-zy!cjGI<p>Y%Hy+vX4^98nFJ1vtxQH%2$M0HI8;%`A^lb@+6C_iz!AiOQHDB$UJk5D
-zSQj@Yt>>yNF#|+g9Z}*J%ST0o`JFqv6|$b!L9;(vJ~!-$5vV}KLLvUSe3%s~vB6~)
-zy01s`OUR}!ZSa6FgsUZ2JE=Qe%7Z|OSVK;G3+=;T(|(E=+*FMaR<VglyO_)Yr_Mf-
-z<O)mPvk>WaI*QHC;_&U=cf0kU+(m3dwgME_6DSP)5sjePcPpN8s4~=v()(4Gqom(w
-zrI{nf76|dmI9)WL9tXv1Sa^Y;32Op7NTh?&MLA@khRHz!j|4+c3j|i>ljGiSr`e34
-z8pQ4gmFZ3O7Z9H^QWxuh_83<{r-d>Z4&1q8z0P7J9eJ%nJYi{c(g-b%Pa_lE@NTl!
-zI%#HjFBH&*=+Pp7^;U?-n|C?kyJ0(gpRkn%>n#bAiu`}DyMx%!B}dp`30GgS`5(p7
-zfl@{I_D}y$M;wRqkn%x?MAD}fLctOo5l-4Cnc%Qp<D*>NfRHZQSG|A&4N^Z2AtT6i
-zmeq}h{?LIMnhfe_67<VR=$GLRg)YyL8sv`y{))|pyWJC)#Hli9OI`p7yl3Ra(YLoe
-zDmZtaKtn*`q(dmTj*ie)lIv|yA9qDD!ZG)MiY^BqIxRHROUE=UIHn)pMU2s46Bu@R
-z(1s(dT0^FF{MM&+u41z~QI$bkBJn-kM~CXK9?BBThl!yop*`23J*tc~B()QQkQumU
-zWgJ6AKLj|zLf%IrL<Y?_wupXIa2r{`pRZ%SG3FtsG0&L6CCZ%iJqO-%@-&I`lxzX>
-z5Q3OK20qk0G?Z^{iR3|ryi=)&=G7;UlOIH?X42F>(GWMUM>>$hOoa1{j<+5scK|fA
-zXCmz26ycxnHU-|YU<Dl~-@{vaFi!({D_oR}5>k)2l<!R9$AM4mIJLYruLMWEYa9e=
-zM1xE?PL{ZeA^jlRwHDIS0gh2a&Z6L(@*SF<1LRD_Jf(b^Mm}&{3$^tyV2F|@s`Fm&
-zQzk~`y#hfpQqUnb2SSaMLl@PPUH@~oztcw-@4xzVl^iO}=TPasWF$g5($68mkGTqc
-zL@-Xz`~;jS0(fZ!&%B9Wtr(?Y1~_mwf8>=o<yz&*{p2~H@}!w)efUPjRO@c2qpLsD
-zU?y!H)e1$gnYL5^qzYZ}Al)c1GSIAhUEm6<MWa8yYhw-C-DFH4(OIQX0rEw_q7(cb
-zP@RT2%;Xy|?$8oDy3EAxDQ(aEe@ZIB^7R3-DcD|$SJ=me&^tQSt!DDF=Ly(eX|@Ei
-z)j;NhPW=Avse|hw=n&}+K~}+SU{3`0u(10X>s^S`swYeQ=>=-L;(qOmj8ietsi1f^
-zdDu05e1LTLb#^rzUzI28NQb!0-d`&l4F^Cr3*tC-lZ$>c@winjLKkZ6hxYxRv)&)1
-zLe+@wRiN8KQ-AdR+y^?I|90Qt2VCOb$|X2`&xn}OE;;Y4vB?#^rs5R7gS_LzEA}K0
-zN$?aEUoN(bi?}lLQEI!YG6CcDd(zpTMSNjTrZr>@j|M5V>tX}>OjPjZVl9*}@|lYh
-zA@a9_tn*Z4OB~t}dcY|OWYWc))j-a*1<j+VyQceYnS8OsRE%_sz_vbtyylW2w&yUZ
-zcURe0(Su)M5jaEde6Bc5s@$1ppP)PFJwueKxJ6uG!dt3_vNO-)x~j~inc8=<rB`OA
-zGdHI2$T@QiZAO^SR6GvW3$3(+JbxYwRpW+_bV*U4V}cQ`7Toz<ewgUoP>W_YG%U56
-zPyEpP8|R<6LxGlu$mgAZ75}NOVk3GH$2jq;)l=1bAE1ROH=f5oRF9y2?WA-()k&<~
-zg|&P2G5bZe{X7JkB{){yt}>zC7u0y|-ifg@yb33@SqqKexV4<#P9FB+mc2m|C!Ycm
-zf81-f?gdvBSdw$WqMZA0*h9T=BROPMRzkpC9T^En%?1#^Xl%jlLXD}^AV`tP!j*R4
-z{gh!-<W~&Ab~B?<;z6>agGn^-2T7X8U@xjNRDFE+3l`Y5tWlwIaK@SLe#sQsiU7>8
-zl5rBp*7;Qm>v%_+bK+Kgymj>1J4>S29z!WJ7C8%*iKRake{z?VT)N9j-^`Zu$RIKU
-z{E1F9AsQroR8OHo)sywBXkoI$9G~3%6s)9-L#f-=lL2C^hGYk}IIlw-_{QE=ag7CW
-z&)$tdtM97xz!6h)ca%X}nx~NTaQ6&W1G;ZB=uH%PM(?A>$G~gP*&hXkq`}U>S~c!7
-z#2NQI4DYON7;H78=$4xKv<fYTIifsEP4@=!bzq^Brd}lj0i)BnZz4|%X?Z2LnT&GJ
-zapnT9fepXLmGXJeZ%Anw6U1*M>#U;QsRt4#1F23dW`ZSN<KRjS3Yo)H1?!B_LEfG~
-ze{uKSOK1>m{_jAjAJWmhFBlcf<#&iT5EY~_!WH2RJn#fHk$D|xbXfcdP=)3ahsRXK
-zz^eU%4GkL|qB?hyktxj*tSnr4_!7a@8!&7=Fs&P^R1jp%K$k)nadKgs7;-q6w$bn`
-z(?%WNM1}|BGwDP@$v4HNw#mHo&Lu{3r%V>^kbwcChHUXDc-epwQWj5Ujyz{g+&|B#
-zQt!aw@Q-~|Fn>RlLoKf59QqCt-=)B3EQeBSGSK&s{__M5eYrg}6VX7JES9%bgX!5X
-zN5deB`5R;-{Q(7R8hXz#t@-TQtsCvGMT$FrkTK)*W@yi4Xb&!{i5p}i|GZdMoEIl|
-zRD+2Xzgxpej}zR5|6HRP;Uh2k3j{?N19spPbD1b>fDYKhZH>`lW$ncHry(FIvvh>>
-zPx+>;F=qA-QX?=Z0P%)rfp}qUY@`p2XDp}=KJsY*TWXV~J~F|NU#XoMv%8Pm9>E&~
-z8+#O7i9XUAz_)4>MvV~zx^En;6LEg>jHojkwj$lN9&RfTU1kQNqw2;1jT=6^ux<%{
-ztBw+!7r>6X1ZoQ9iopdkAZKLY74?ypKtT7EL+NBWvCmmrv{j;`-cldA6TmU`nd}oj
-zyr4c2Z>i5#`N&njpIV&yfdKBRPX($o0{G|pBuK0a;34~TIA@=cMliOlRpFX_xiie<
-znLv0`)>g*OTTa5-8&AUhku7j5B6B?H^11qUw8EH35m&h3oH!bsEH<wUl-~Ej4~GXg
-z7^#FRg}Yk#@rERJn+KOQB(Q5e_-I3Vq!-N4hrkEiq&LpRe-EJ=N&t1-{=^Z3J^x<x
-z5(Fpy-7w|(f_vLGp70<BjXq31@Zo3nCrS^K*L=8ke}cRpV0(S|qaf@>AO3!S+#^t>
-za-9m@e|i}|<(Yk?+x_$g7|bJdehz`yd0;lVmdtRQ?VWk1T`^<BN~^NNt{d#-B-?KT
-z)AAF3W4qL;;1tgFv|O11V2k}Y_rOGKJCI=A0Pbe(HVT~OFA6>%@|(74?517Pfp7)_
-zrr~%n-^=i(UBHI}_$ViO{|`H9focBcDp)lPO;7SW|C^rRZ*+}NQ|NR*w~f(-gKSYc
-zw7V!I-5=T$_K}(AwL1*_pmLG`e(LBTk&%9!gp(2$5u^84*l1S;?t*V7*uw2jyGLs=
-z?gKk9UWZ4FKjOI^v?E5rNjr~}o(JBVo~I!Nj7^z%AJim^A(VCCJbo9Ka10Aa8xS~$
-zA(C{gojxD-eSSs)l8UD1`0(sT4!Zs!pL0WhDG)Qk#l7YYaCF~b>9Vwjx;dZB74f#l
-z<h3u-y}mS`OcPBIuf-rYN%l7fQ+eds0JlA#%oa`XJzjK^A$~ATb8ZsvKX>0YC*o?s
-zuYL=c18$TJ;3B%O<K0B<Kj*oBFA3=6ksOHi+ehZZ^$Ck%14(Vi(Fc?0xlLyQOI*1Y
-znf7W?EgT5Va951p9h(eklBaHEIHiRcf6XgfT_DWN$SQ(>(_n)OU_(1hzVb3~ev@&B
-z$>m@w3{sy4Q%Xo(0Nq~-&qMH}I0xWKG3wz-^CR~{+^*X2gR!1`ei3&cOr6lXXi37E
-zZ21jTbrigC`z$e>aYOo#J^8?>0E{+*-&>j{0mV_sdV@T99>*TiKXL(ztNirD35o=y
-zAGv60?OceG?(9eam9t~fRP%?dq<6HSlrTwmHZLH&8>LDd{W}a0jM%?<eqUy*ePJwI
-za5(7lqRnJ)pda?M_i^)~u^Oqc*B=@xbr*2Z1~(Gv(s%=3KNQb?>H^!zM5Y3dJDh@7
-z9G*F8KHLC{;mjMJ`Bxgfn_z>Bph7OcL&jJ02ZD=94%YTTiPuD_4Gt9Ccw%<rPYx%~
-zn@|3Jfvb8OBKR4uZDR~qx+$oM<&GzRX-BPL`j1;a*~+#vi4KTqwBIkBAiY|nc|76l
-zeba>4tM>b7l=NzJP9C1zG-lLImzf_=?z*yC5KJu@xY*YbtLruu?Z!<YE;cl!vbWmt
-zk){#WpWCPZsBZ1q8q0_2m)m2t)$v6Zv{gEwWF&&ah3qjfKh<5)+F#)05T=)FWBJ7v
-zc57BVz0TJA-~9i7o(s%dEF6wQ<s&&ypZ=V5d*g<j?bkL)w$HaS<3~E!@guENA5d?G
-ztEOBb407QHeWxW?-`U<rr`?M$P7F>%15C-lw9!baMgh9@iD1LHGz{z(oo#*k&P%X>
-z@q$6LXJto=Gwdx8<Vh!Yq;@>9wAUHy$U$EtDfZVIPZV9c#Y(FIa=?c;y#;J$*49{X
-zn11b1+arSwrPHv6oV>6D;FRD?q}!u}yclXAXwX&DNUK|=DA5f5i*>HjJSqt#S8B;d
-zH{y_!HWu1*9on;_YqPP;{D~-6cf)sh@Dc_kNO$5I8Z(Kcj&VFA<2<BZ#LX{j9x4-Q
-zPpd-}vq&p}tQUWWX;tvPKKTAXV2z=a)`GwK5$t|>(wK5MY;jd7F#Rot@nm>=5Q_%)
-zHNy>EluVHg0X+Ye$<`yF1O=mTf6dCG`Y4UWRc6Z_G=L5iSrDQ9UV8hA^hH9D6Pv87
-z%6LHan>Kw&SdOV~q5Yf!)65|{<NU+~UUlW@wfqlp@x}&n$t80J5;?HhogzPpF=J?q
-z(+6-FBdkT=WubjeyP}-D?9$PzjApp$n+Mh^b^ChK?xWou<qU&Ss`IMydSUr1O%RWV
-zs%%n#ReLMQBIs-?HCt3#^d)#VM?S@%eegU9wye!+Eoy-@_=H-c`G&ahV7-%qF;0`e
-zPJ47?v{^b3Wd)yVwCR!<p^nYlFS@xSWJ53{MQs>I{(O-Rfs~I-3}^?z(#!<wLA0Yf
-zaqq@N^T%QYw;H~qxWwwC;$ZIBw)`!0z9{)|<SdkfyS6ZCp*{K+RY5T-Gpbu*0xOta
-z6YP8xbu(FU5n<b_BZt-!9y~h*LX2XX!=jwz(3$JVY!9}-YJ6fD+>oOKIga=PC{5aP
-zC%>4NH5CxMPXT90R?Aflb|woy$mxBe%MinMLcDE)T1BW8Oe|I7$d3U<OK=M`6p_;%
-zT-9`5(E>sdns?(Oe)P3>*zQuyy#5tiwG}&FUzYrcR{_fRF|yCqCYm7b!-0xG-9HXb
-z8uVWS=fQfC>&1)S7$L1Cw|%(ejSRMM8$R;J66rx;3g3U@$&vHOBfe9j2`vNT0v{Ly
-z;fpJ^GpM$w*^Zw-GA{XXmlMtdEci2b^-Oj;>(}z~fyqoAiS~SU1~oY=X<L@SarMZ8
-z+=E2tGdd56e+A8GDa3kEWJM79ukH{swMJ^hO#5LtS3wod?JCqQm-IU8)%SK;!@(Xm
-zkKFX)#m$AlA6%6>(afce14e0I9?#eE2>No3CljnYBK0|ecGDuxvNVWU&E0Xe#O=WY
-z&BJvkcc{=D&RI!ox81W?oRzX553Agt2N_O-c$Rr&qZdy+TFyT1#UCCW&02QiZ;w9D
-z#(MGmV-v08$ah|prs{D5(a9d^T4a`KjpSO;+-WgLv`>(l4(bet7G&;%Eh1}AHSi*@
-z*p9|z!VwHE!NP6a8gj?&0FjoXu9h>s!^RA8Ci02eS4o3Q?Nor-9+Y~I0;wIcRJG&y
-zz+gE4MBW&Y8tzC*#ol9)GslrvI@vL#4=lvs-ODt0pLv)RfH6hdqXmmpF?7?dzPDkU
-zqE{q?5>z@2<P)Q<CD?;=-sFa?>zn}=f{;Enj}+3?imZ6+n_sb)t=M>cqx!TfY+>^T
-zGh94Vz<6D7;XfXav(lbjy9gy&wyW(05TU(!ldv6bNreZ%>^iWm3^wmdF`~IrjA~v@
-ztp^Qo<Nw^Iqi{}s2!hLy6e0~|>&bfWhHVU}e#*HJF+|n}Y`3L~xg^JHHYjc*<sq>j
-zRu2;a5pa%5@pj80@fJE6Oy6m-R*L<GO7T`<IYfh^+e!ue^uui#GTdgA<>U(=#Fa7=
-z?83HyE(WG}Rrcf_njYjpi8n=Q*<N_3Vd|^Sszs$*k}}GX2%_*#ACvf>J_Z!kqi`;x
-z&ksG*@-lO%{Fh&$@5!F-Gs4CIJt<h1m8sB>p1H*D$t9!c?e2n?$nMTs^0~K`T=vkm
-zQ)gbKIH)D}msmt2*^-RiI}BiuswKy~NcSHodkrG8hW5N}_d}Q%$OBF)oB_*Zc-qJt
-z!nP1+lAc=fI#4_kq&S!S0cvylo3n>od(PPpiF$NMysbt$VOzMPh`c3+!J4|G7PieL
-zT~OdoLw{c``MV$bu7Pppk}v(jHp*x@c@6}b`k9dRuS&<!6~>jTP*yy(susYNm>9TO
-zt29w@R!xqBw2U$uh!IZJLwi(tk&xb(;;)9wK;hu4((4qCusr6D4KWZ2sW!-r%3S)C
-z7+K*T9qKNeabmW#hTQPuO(!PKhno7KCi9Eb(i`n^f+=0v%YfDRF|ryi|H$&B13HvV
-zhKVevdx6@2Er!R);`7e69NfP~Nn`k9i^81LeDQ`K3nzBWuOlx6oW*0PaBO)AoUHe3
-z>Syl$S^v!4dcCuVZgxi4>}ui8F9JKA0etDtoSo?0YLt~C?z20evFx2}mbt^m{=N7L
-zi$8iRId(Bg_fpT0yvJGG%}TCWNxz5(-YOhjN6nd~6>u%k$E~X;5fDhTlpKXkC6~<d
-za%Sk=0Dj_aO>7;x4`-7l<c=?NN3@VUDdL8=%juENup1P!n3FT0JGS`nV<-1gpt2Hx
-zKb%Y)kxNeaCpbrQ^mIiDzTqF_tji8}uyb+JJ9_CN@|7PiduJIf<Dg|)-qB2*(_zV_
-zdszv2>cReYJ!t+dA)h>Wck~&-R(=`Osb<)@s9IH9fn}$*Q8G<?fQ<E29PqQui;tX&
-zvsw(fq^X1Ux*Be{7Lyxrwb^2Lij421&s>smK6KS#CHW&<OtKgTX_u3{t`?Ecpl>YC
-zXf^PY0YAXKdW*qAhFu6@7n5f?Ln%z&z7T1IGgZ|m2ywaOC|G$d20xhszgJK?h8v8G
-z{R~QdE;KWNLsOLsFMKy17zAI~^Y6wbs2mPZ*~j*B5EvnGY0gSps8tENY}J0y1n~#&
-z&Sr<Y@PFP-r|r{KL;K?2n~6>DWot|xX$up?OoqtiPdl|cM{$cts}G-lZzA<63V^KW
-z37UVvti!^^^<$#ZPN~<EN)gLXCrE#Eb=&cT)5}!ZZ3t0IAk|c_<Hplk)jE;0uZaUP
-zZF`~4j?*K;ufxTM8IC;!Eb2E;Ycl7#Brwb2BBLnbxXoc)^JZ$X>ef3q>CCm{y4bww
-z?V{$j(fN#dKe(vpfU$5o1kKj^@YMGc2JImiF6iiGh^zu)YsahK*U{$LYM`pU?<Y|s
-zaLfBc@mKFpX8#~!$p@*@rDT&APx>G^3eb$TDr7@OQx!?`;i3-`llG9M5NS6VLXw_v
-zybM0s{*HblDn_zLd*SM=ucf0BBr$&f1FndM(Vr7b)Gc?iMulC`gPJo9E{JSYXF_1~
-z2Z0!!{wfRmQzcpLJ1%ZSQtqo;2<}f81LW_%=IxcF+h^wYz?C879O*<&S;|Mmwx~)n
-z->0L?Rb2<%>smO#Zt(V-P7Jikqyr|D1)JCTpcfv(0!?kkZZM;k!Jao7E}PN*YjMkU
-z@mJxJH^jZK6*rMWH_{#>3NJp`k|<qIAcm@=W#;2R|2oj$tY%XbJ%$A8x2+IM;fBT@
-z@)?BBZ$?ru2Hg}>kFC1>1>CroM#MUnlAT_fBb;R*aEk?VgGA?r)2H_c$8Ugurri+k
-zv<z<U;U)HQNlVFJJaAhaE(OdNr2{k3Tv8|M+tKKPdo3G1+KtAs<fI=r+cgu?;n-0j
-zZf?2I_lg)x<!p03sBk(v7-1<nm+QU0J>(E<*C&CsRUYiLbJi;Iqo)Bz!RTL9Fv@Kc
-z;ie$mlcXI_Z#KLJ@n^pc3C)=t91@zd&mW^pgCU{mY%d)W7?9S`fPCtu19H?$2jmYv
-zIv9__V8GQ5XC+DX>P=I{U2%qAHYD0Tzu?L<QPIGuc^_D5BGJo&xsq(~;3H=y;_GJ;
-zW*#K3!r<z(^>BxiUeZ>>ZHGy);ME4rk5yzWxL1bsgz`TS5%=#t#7V`?Q7qh&_%VPd
-zo}EYy5&8!3EWz424r_?oGbjHP`ay@2l^O7(4lbk86uQvfAXdRWxC;2D+#m7X%d?A1
-z)YWm7<P{HGZz%qurji`=2>A?zdR3vA(uQpH6&<vG1Vpw*eA6gC3feNb9%1Ys1x1&N
-znp|T2Qy1MAs^A1(A%flK0eGOx4|0^o1vZM0ph3JE+-vK>Q`jgzg_tp#c8G@o%TJV}
-z5bSdXJH=@`tK;Zd5!xd{dzh2ea89Bbma`9mhxuW&1k4Z8fi*}Dx~$;;!gzE$W6CmH
-zwStYwGBt`@)y(SV?HMp2%RJr2Pv;wIP(!0w!a-3rjb$u?nf0)=LY!L2l`aCquC`PP
-z0_&fyM6hAgZRdNBCdh}bopCZ+8n#@8=uZm-z%;1_n`<r^@7KfRd$f?QoLn$ffhUx!
-zSOjSFb*GQvvdLZ15BjNh6-t)!HgTS5DftHtQ|{icLPra3idDzpbLKDz3sA(umYsbC
-z#D$^bji9(l>aC>V2kmF$U_6HUj@F071pIUY`~Xq-wW57=B*J}o;A}b@S&p^mhDs~R
-z3qJhNIc_RcQFVZZ-9@=|_AqC2{m1BsN<+e5`e;?k_C0h@eNGL{%Tez?oBk{veZgIf
-z_n#YHv<GhZun_%y)>mX~fcv)_>0K5O0SjHUECMBuGKqBIJuAQ^0hb#cG_VgT*lW$(
-z*OM9WOEKOf(1CEn5>|&?2ehfc`h%MWNO^Omd_In79Yr^ULJScea1mw}Qh@oJ0q-OW
-z#EYO0*OO!yp5Gd`RBuGd1^4*j4N!B#*)*uHv?D#(IpceQcj&50h+MxZHrw``3H3`v
-zZ_z#~GBdsZx4#BMe^Gd<7k9KKuur=2x2<uRu~c=|G=juPp+S6JhH+%U>|so@vrEZs
-z*U`R{u%~nI137dt#laJmXQ0#P8EpS(%-E%**d>QKJ_|9x@$2HYpk`2JXH!%?bUD5O
-zA^bDd^YEMxhsBot2nU2*8^52A;%6;T!jCod`taHhx!E;T?QsGJ10E_wn>R5%6>zOw
-zJR=onN7aC!GFj+82EXTN>90FJFk8w<CG={!!G^e}lJUnMj*Q{*2CYO~4LJ{StqeS0
-zcj5aVCg%TL>^`H@Q^O~>M>hq8Y0#1LH-9bhxmCtnrHn<D7gqCeQ7tKPMFc~@_dtZ#
-zB65)a#6a%D<m5&AlT=@xJgCAwAH|QiwE7qN=j+T3qKj(~2h{&xQ`a8Q#Fg&PgaiVD
-zMnpxVI*EV*jRdPLTH7Y5X+lx)v94Rac66aPXn@$qZCbSnE>?W>);ih+t6j9~ie1|h
-zl`d#OP;0f;c2dA<rR~_&6}5X8AMKg&%Ke?_KK_`Tnar6p=Y78OeZTKFJN;!1J$aJS
-z#-}(9uzYS+wp&snBim@6B0gR}(r^b(-_cQ|y~86ZU+5gkLnR+NS#x)~Gk|NXQr%)%
-zJ^$Mu(WYiUOSXnQK^OE8|DY73v;4*H@c(+W`h(q_`)#HG)S&i;0sX>hp(c(d&e>E8
-zhway-9rPh!>bB4qy0_3^Uzsg4Y)Mw%9#3||iAL<J&x_vytTBvPn5mux=yNk&*DWq@
-z2+x(-zXvE26<4k-#ogcPI2mWU9kfxY@o#`Y%V4fGWENf0w+~R~Z2$TkP2hF<YsQH5
-z)a&$##`|G^lO1AkMc)>>N+EIrCJXjVP9LK`*g(63Jha&x=tteU2Z;Z!r#8^~<FQ6t
-z5L)oA4Q|Yh;^?EpW<3YD2legksEet=*Jg96W_Zoi=rr(YT;<f}B*TEe3}Y`*s&-v*
-zS(rRTDzUG)O}OfUD+Mn(v_kYlvP&zl0ev_qu0EPHc{boSYBE;hokb3SwFB@Wq4|)m
-zH_*slqwR5erB}%1_!`SxXW4Y4ZLVO4DMAoGKl+e2${1`N@B(WAWe!PIqw=|Q4Z7z$
-z`Q^&rar|FCGvej@_mwedefC@RIi+ZdmSEl-cSDR!KwI=XhQL3A9Cqn*v1YG@#$1{6
-zI?ZoVAY`gBgm;0?(#J)hx^@ws&D-{JWtWb4tlAjK+Z@IIR!J-hC$rn^CU2WhkA;*q
-z^)@bw)zms0*Y+07N$_j|YJ6)gH?|q`+IH~%B|wVZKv(t)a1G#$(SdiAhjm$DPK;`_
-z<aT8*rt|rLkP+j{(h<CAPFF;XaCcB7iw(XEuksV=JbXlvA<Q^iw<|z484FrbpsiKV
-zo-4nQ%EN-3bS16JLxj6gk*DuQ@qE`BoDWJXSMFA`cW3oCA7iuQXu0|op0r`3a1|Ct
-zX5W@@&Nd5em|#xg{HKjs<SN2RTW}AnG$tHxn1g8%Op_+yM5}YA2G-^>?|^ux4*Tov
-zN+t4RMz|dv`y|%RjEm(;ult;$wxq&U%}y7Bi|ly^%YSr5Mb3b)|1+cE3?j1wWt3;p
-zPDaneZW9<w|5X+*?jxR?+=jUwg<5X+A0lsaLb+1yu2jG>9u?U}#+-%`J_)<|ZIHan
-z6>jcAnfYO`=NMut+poU8TfJ`;@9}kk15w!>eZSgOJmR8J@w=*A+3QA!!qFE_w;9-F
-z9)?x#lAf8!{w@#@5a=(X!Fup6!hD#Hv#@OJB2V78WG_L6fW)sxFKliIdr0x`#E}hj
-zbze0GPY|Rhz*p0}9;2U8m6W65CfU{UqzC5@heJwOqen_ZWGp%1IGJ|uo$HwnR^ibY
-zc?>kS8vw8fX<RshhPz({EURzAbUxN@d6h@MJ3vU)8+0r*RP(7D5SpbJt+D7`?-J`T
-zJ*%`9&Io@NogI8Kdgx_1fhjQ<fm!f+xl)NSRfRFN0aDIVV)QajA)USpE!2quaoky4
-zR+kWCC(?VJRF_@7&U(`c$ar6D$|4C{(nvFUPz#PG9LI5df};@!>uo1+<Ow{P=*SAo
-ze@tVgMjy@WG0h@rrqRqdX$a=3-Mv6R7$MsM2_|JOAo7F-)vm)p;K=yh-CwROc4NjW
-z+d%sPrrfS923bV4Yb!iv^BW4V7;lC*8gnsXxWs>i5L*auAFTy+2O4Js6nZF6?Jg|2
-z#_v(5|9;$q###uHkwyLjdJ4&GFZ@?JU!fuwk_ijK@VOw%%^Ktexv(Cli<)E%p<XCi
-znBNN9s}Dc}sf>e>1JZS^FWPQ>HQH`j0<e}|B}V}eG!0V-6Q_%5A~eq8=ua%e_k@)X
-zyW_}`J|;%&q38SdFj1=XlVRePPk8lux~E^P{Ujr84>k13upzpMEU-|GFize>hd+3(
-z0?%djZEG|R`XhGsU4L*hf&$CC*om1NQ^duMe`Nbg?H_O*!gWT|H1!_3GbFBPnh3q{
-zi$SrvDbWg_vIYn|JjXLv_8S%Pe(m&5AD)x&94D7ezv1hw*h~|HTI0n_T-pV;fWRM-
-zg8_4s=L?T2Lku=0t7if`AdWabO1+;_AnK3LfJPD9+k2l!l9ZQ<{!(NFT!?fn?VSR(
-zrcY&RL;97~aim@~uDwQ;-VW9poqO5jVyGM+?Tq52(~9h_i5l8|LAgp!D_7l66VD+M
-zmonOMw&*Mr$3Cc5XLPC5DSm@Z1(|6N{l335f@?pm@T+RV;ph}**S7AVKQy`PM!=@X
-zFd7F1wNUQcLo0jZ#lg)(z0r<XcY-6vnbQTZil7cBJ{J0`1MZ*P9JnqBkuYg4gdWX<
-zV;<9|LCy9wLgZiA6GtXu6vV!&Cn*Sh`1?p9Pbv^D!BK!iQhXo`<hf>q?#Ar8j67l>
-z+YC;P?ZjP8&NNL%mNYh3b<4^{SCF@gu(7xU2sGfG;P|K^rEr?F_$}~k=F#>fp9@&<
-z%L|ODtXC0#Xr5+*iF|o13ShWL;$wu5?tH*@dd9tQ42K8LZjQt6(|jb>Y1UiCCtG+e
-zmmVJ|X6l5JmSNs$w6q&&%0ME|;OGo~GO%vCbEIb^C?f`qc|+mM5uP^`Vz%H{Mb5*D
-zd0vU)oxp#L>K=%Ny2~1x&AcRQJy_xbVUDk|Rh}Mu@0?c}9`i)Y+%2mr>ef2d*9ynS
-zJ1vTycO-9SxaKZo@otBg)30(v;2x52n802KpII&nc$#*Q!L%zHzFmpV4=AL0{7qGC
-z-c3zx3(hUcQ#@rkH#+7kM+RY`wj>IP&Lp5qeJ=&{iE^uQ1T&b=dJ-Yg$NcO4`HH@o
-z<>3TUa3oLlY|6Rafw*4&qCQ~PnM1T9r12kd8*O`GnVfTPW<r}{&O+zayrYS28|+Un
-zIUA)7)cE)M&pMh{zl9-P515M6k67H-dU6j1s(%kt%=69R#0o>kl2$!|wOu10XYLp(
-zCUmyx>%(^!h5$Tkth2Z4bzZ!A4m|gnCjc>UdL1@<Cm-NEIe=M{>&ynMMm)C_)vsfF
-zeQPKg=3%Q-ZJXu6URbf~te%K;7-`Z6N<-xkI5XgVEeXYzWT8+lKpHZSbG~pOM4kfO
-z2){}nqHQ4}r@GktyzGUWF>Bf(q%ugubO^?Fo=ZW2e18Pzum6N=_r~{g)U6lrTz|g`
-zIlbgBD+aHTKc~1Lb;a~UJ-6>vt%i#0;x~x#_kLAMoP3F0w_e2cwSEjc`4Z0LeoiL(
-z7BG;ovZ`#;o!b<<#T&t=G{hH=T(dKWv=W}A<NFgRwyti5lNi<&<`kYNP!&3`!_fpd
-zgHI{o2P40)gai*PcS!WbkWis(jPa0+sDP@tMTz8dJV|~F&QzG4n_b;#%%!uy8Og94
-z_I<!^K>doDW-gk9B>3N?-c`ufn*c@q1j8~beU8WA=Q4md%7D9%ykz4Tn_Awr@$yDa
-zPTsV5)9Wr<;c3_Fg_CWsyFMIQ<lhapOsfZ#YEZ*P3v{Li0wzILOtt){9Myw+Ev~Wx
-z*dYuoH^ea0xvt<uK~7<;ZC#<tn+`%mJ_Kl!<`#CB6>g|9=yg^gO(2IAgZHswp)jT!
-z{nOPpi)Wy%78VnZM}c&ILXX4lwam7>hyfEA52S`@;m-!Fag?QkFL=&9NOJp2{D2m@
-zH9h2ZVF9yFwf4e@4Gltwj`H?LA;aqMMPh&0bk*AcRAquxiDjudN(W#bhCd-ZrUHUK
-zD7;rR(H3``<9J);Q*0VAWB1noyZdXq#YsHAsQK;0z*M6l`Va6xEOR~Qu_W;Y#278}
-zm?tYX>&d(2`Y;8kG0n>pt^>=zOva)>7g3<i^qW4PO>pjY&O}o(wiOi0CSVGT#&(@i
-zs}2aL<T?I`v>4e?MC2cx|BMxhShYE7i7Dbj(0C4%OB?=Oa8wD>ex`T13&vR7-`8is
-zqU`OmZl>=wHeO?0QcE;at0M#L&l*M77=dH3!QtfO1j9z>E}DUXdLLh|wml2G)BtHS
-zE$fT2owm>LbK?g{tooP|=Iv_{{Pt@oPxXEnIcE(v=qAr_M#xRG5)9=|&t$Nnc}SNk
-zlF?gv)uHeOsl|?#Su{d)IBd6@LH7X4yK4*w5=&z6p1FM=IwEb4`#DoIu4dycZsgD1
-zc);#(>dY#6zkQ?AV~+N0jN;nZAYJA$c(~N54I}&!=^Q2p5K_^b{Up_lv@=2W#CrSA
-zJW$>1CSmaBJ1~a~K{PE4Y8(dE@8N`ChloEyx>m5vbHmT2r!mlnvj%|Ybh8uzQjM{g
-zY?}H&9`+xT4SVS3_4^af->yHHgs^Rt3x0q<gPm0Ry}7b$o^#&DtvPY6oPMBJUJZ9&
-zHveAkQ_G$Q=bC=t%3!2ZLtE>%Jda6p>)%+0HMUZFX`aQYo5cEAeES&N&f<B=1^gkf
-zV33}{{LaF}hD2K=@_)QnA2xuxEpLLpZh5Zx$ULXui1+BSwn6h6Ya3wOTa5CUy$9mR
-zVoyv18K;rBajJ`dE#8Tp+K+|z5iKu4gVbeRkhfsAXOh_i$|HDRjI}v7DlUMu?r=Tv
-zWKqLrx)r8A#bxw&!B(7+#QIiw@6SSQcq|NP7a$sHCB<b;4i+@H06Yn7rZ0DA7jC_}
-z8R`S?l;T59Yf?UZKrIm`Z#C=ux0(mtzKn;!9$~4#zp4`t{^c%nVD2H|&f5&`4pu=O
-z(tTN1131vQJQPSld3cWi(NldJz#H1v$Id)B1KkJDyLF9Ya&;3wy0bn@6&?@X9l_DL
-z9{jQ6!5?n~Z()|2;q-a1Di1va`#+Cimma|40RcKy`qhI~*C+tWdDrJ=%G?5y;k>M8
-zO%;o#ioVLUu?2YL$liA42!Ba``#PKA5_)+*G2jmWt-cepVGs>NQV5$99&#i<&=4oj
-zN_Md6Iyv`@yM|5L&F@2W{jeot(tfa9>6qvUgDac7_R}+=I9xM5AVVP!0e9I>C|{x-
-zT8|}Ji|Jf>Rg67h5GS7qqcbc1jD*&nm{9;tSZF8KyaA91JJC35Nd?<O2%h-rl>Kmc
-zONIk2yM7NgV7Fxxo!mr-Z3s^;jSfR|=WM8Ds#VR~%+2{1x~<;_^~QW?-oACK4~%*=
-z+qRavdc^T3dG>jv{DX01Eq$^_%s-i;UQ4I;ik_2GlPUp0)l`*2I?&G0Y(0V{9P*!P
-zT~5SBvGrv3L#Y5bhOr-Sa$}c6$BuLoKZt|s;3;~yN7SE6LrQ-JT;Wujy^>~!EXR14
-zFJeS{J*Meee=fXSowoBz?AEn(Z=cjK@1NJzYw6Cutqsfz)@h4)do30F7Bxg1a3a48
-zdd22b;V&@AAH<0_POXkzOMeBa&?Dv1tX}cuPbZF83-e>0GLNrQ@*#!1#&$0?AI6cF
-zdc<R&PDOs;>lyqsW7t}{J`_<|lXFulNS-nCW@{tXVc#gxayr}u?vKy}6{mS5e-yM9
-z|3LC@_lQSM=NMn3m%1V5<i7!VZ@kSYJ8jWbYXQJ89^Ty<MI!zjbuyx64c*=&rhYb&
-zZD_J<k<za}^QjNg<bLtT&t@<rFY(8Tsb|WP{*d!<Kz(Zl%)sloH(nj%h^~kR(c2o@
-z)-Qf`W`YAT&-fwPICF({&P_suFkSeappq@4s&hIovb9iWTR~s!i-1zTAbC4HV!`7G
-z>Z~X!(xj21?&BAq%A=i4;-hCL==RV|Ab+Z8Yxm1@V7%!P*PIQPb?YJI@YGqK`1I%I
-z>6wt)7~Iv2G<AqHntXX3R9VdPchO;dvjP`CT+gJT{!E%2(jH!c4b3BbCOsFLkQ;-o
-zO(vt;`^)EMa0%b)7jJ!T6qC+{vCI4seD&kp(44<wJ%zOnn^AIHXCDk<zlvIWs^~M_
-zrEoYYr5E}J!pN@`;v8DQxrrf0SOo(mwyjR$_dQij<3nQoxeW2fIeQ$k)OjS1^xId_
-zED$b!@v2z=h5bqVTU!^0?a2Pn=k~L?9odkAoo+xNT0!lkYdi(aln+Bm6=16L9ij8~
-z=3LIxh%N7NyPMuUE@q#9WLORTD7YW0-{Z_p*Hc4la8(!-H=iFrx`zHQE}jnhbIG9t
-z=*EYFL<g|)WxUq&G3xQF^S)7?3mS0es7DP0|JE|Chm)Cvf(_oYHFR==_~MrttYcXI
-zg6QvlX-sj`JN>JWx&82+(O^pcG8B1hhMM=)(DgyaesPd~-6!7sa*~+(Rk*#h^?0!O
-ztCIK{TH1HpV{{IeADJ`NGcWn;L*l)!cy$e3*e51RDfl$R7ZT#Go}LP8%J$|df<yLT
-zW>_*9u2yTY4Frf^w;Ha@2o*4!cc=vzEwL4h6o_`c_`H-Wo|M9GtZcv=2L$Ze8hW(%
-zPneLz#R0RpEfBsb9L3FV1N<ZV>CB@i_>)Y%m>z-sl@2Ak(GbQ6KoHtQT}mk>J*D&@
-zn)*ekh#9`)Qj=)@I@!C4ehUJ|G|Kl`{A#_HKSD<Z^TUQ%9(thJ4i4bp`-+K8^ek{4
-zOqJoJ{mjxP&4fyWsiz{s&#8jb8GHn>!%$lGEu?HjK7?WXr2Uj~k)+T;y(*}YYaw~U
-z-oKR_6K5+Scw=U8+L&h`QLqZ%8=7oSr(MBG_DK$s+I)i>%IVW#{`%<7DlW@z#oqNW
-zS0<#>AA{wJZ>|oDNEtWh-mvG#!A_e-_xEJjHEtY2HY9<ud9dq84rxaPz;2iZ5`WRs
-znly70T?%-XyKWO)joIJ3dUbh~{(<4b3}*sN7qZSSp(YHMY@5P-v3Wof8C;4@_ts-#
-zWoxoZS0;Yk%B!nsN{{$$>nJhQI!awdr6y6|mNps*)qetG7uvlUkX9xnL_%2&)y3p$
-zdaYZ0woOQ?!sg`hJYIOr-kDtmh8#hdV!w*BqL3)J88WM2vd_%>3cGHz1NH@|8Rsy)
-zo39ZfJvYH#1#r&zSwwGo$cV`$CnRRHC+Ri<T6aI2L|=vPREP`O4SW>{Py}boAr@~a
-zR>);5Ibje?AuZ1hwsS@LE^&8z()=pg2PAsSA+znub<7l;Kn_mlNjX<Q63X=C6I>?~
-zfe2h7*_9mDY}lLdC8tC-qktnP0ge`}!!cWc?YAvfKh*vKr9m;`!X)(v^m0&q>_Ud<
-zx)AQRy5s1!M=nf6y}ch4Z(hiWvLJnYnnaxX%}8|vjqetJ^NsQ8Z`k^A5pn(9OY%@_
-z=EaU`fpte_2;4?L1;RW6VN36vd)1bGpuk|rn@Ii_I-m!BLae#mT3&WnQ%g|%^qVKd
-zn2XtCKE?_)&0e!?n%#(FJR7Ig&2ePBK_fioFxox_1%tTs;=&nY0r2Ae6T{<x=|i*Z
-zf}UH&J#W!-FZ@gg^<_FtOcrT`v;*x;!a<(sKSeUBAPHU<M+y)=d_oLeOe%UD(`094
-zxVD@vapbpS<H(l9JQ2q6WXd9Z+iF1^IfcDWER1;e?P+8m&<lPT;15E3x&^-6<6w;R
-zZU@EUdOa~ac=DU^cowR6`3*hsVJ@%nLE1y|`a|OCOG(}x00_D8a$VhT07PcvoT1Rx
-z(>IT^VN3Kw`2Pmw%P9vjwA_d>JWc-#6w1qcjbIA=0vj~MrU~^Nzl3%Kj{pKp^l5Yp
-z^UgD$h$DBxQtoIQ83Vak_}DSj=Cjr1a<_evdv5!PCi8ho+aV@=JBoW>eE3_vH}i_S
-zh!<*$#$D+`XkIb)ihBjFSB$yRh0wfm^pyxxYv66ixit*6f9^%ANACv{ynF7dRP1f;
-z(TDoFoQPL6;0kAg1s0r?v8H2z2-%L*DvHPz_ex$s&J^UVc4e>Zb|G<>B1f2p2j;#)
-z(!B}NFi)i0>K@{rj}-6p|0ItvJtYn5h&S<4RENgokm5{_N;(q>B*<m*Fw+QWxM^)*
-zqMTw%ks>>iO+zJvX}C1T^g<v}PBTrAGEF6ck+QW|FZhZ-m0J*!k{0<4a-&_*D7Td0
-zy0k$)gR*H?*2#7+vRARvFP}lEb$uY)k-rMp0r?C<ZSg+&ObNo$J+i$N|CjETyAaRp
-zLV=o3;=^Nd7owSqcgV*~MN)D{is=a{wquy-e<XEBjOk_6#Q1;*<;jqeOk)G%<UG?O
-zxRYwil+sMzzyf)esn{#cHoY1sk?Vf0^ID|nj(vCLgX6FSOeI`b#>C>{wBiYm)ct(Y
-z`-rsfXWy!0Q)Ws7(;t^I(uKexd8uqIMKMbk$}I??nIv;%dol7^JWD=<P+Q`V?Z|&c
-z$xOLr1q!~>DqC0LiItDbEeMHgitKH1;e>6TDo(|b$+8ufK3A4(N269aO|lgg<||2;
-z?WnMd6{+$W)I$Jo!gxiDT4%Bhrz6>l)O{<4$!@&0wm4q4I&tkBD7PRaMKQ9q2-iiC
-zatlJTLM3-0p1DL2pavyyihK;7)q1cnF#T>iEd^MGeH@0_%zr8q|F2^hyu7aTirVjz
-znM{z6@hhf$H%TR}6QB8RlnO-BuYNaCJp5gTsT7!u3C^@GAKVLT!V5tSLOhdr8v7_r
-zG&KTAQOjn28JOwCi0?h(y6-J4O&Rya6W@<dW}k_IpH0d}dKqM6+#1W8GBCOlaH>Mn
-zf9Lx};@lsM?17rk@W3lSRExaKu1~qo;My*ysIIOPOJv>v((Rt%@OT$EOQfcquORv?
-t`iz40zENMnK?1zoBi70(NtpnQ@<0_-^)OY08V4b-JPb|aX7OiP|Njl#CCUH*
-
-delta 24701
-zcmZ6z30zc1@;Kh_F&D?kps1)EZxC=m&;c(rXa>Z`04iwIXyP##Oa_lQUJ*|QMF9mw
-z8x_qV8cooc$S5SBpd>L_cQ?rnQNB@gIA)W8F}wRvlYVnB^RJ#U-~Imn`hk93U0q$>
-zU0q#WUCoilen&p>t6e-Tco0H<e(H?rv&N4bKVbqlZqk_Xv-DfJxdj_c%U7&lzlF;$
-z;>L|eevDik&moOY>&Hl!j^a?@5I=Uo!4q48<|Bm4X1cxzcvFpV4D)G_$Ai!S0DMgW
-zj{#8SNk$$39DfS{pRk_>MMIVC09bwk00;d(4H}$+JQO3L0RRTcr-4i%8h`-ss6ma#
-zNUsNldO|%i$X`AQ2nGIw@o(}%yjhkLR7(Fr!LCzK@TKh2AU_xU2SCo-0C+?G>HlI3
-zJPm+Vicf<iq0%%dVBDpEcK>v|&3{+Wb9u97@c=w^27qS&P#h6(Ay9a71yL?mzN5z9
-z1SH9g!&vlzP>2HqcO-vz6`{01B~mfLft|}4bXoYQ9ifyUKu>vBjl2axK`+sQRwytB
-z;kLkxuv@Lr^AK-gNak7z+9&+aWrUuD;z2>rC!uCmNt<&(eIPq@<8di^O^Alt?N9)a
-zF#VfSv{^7f(?R%XP?W5^1EKZ9aeGj>VyW=<HH6|Kuq{Zd%!fLzI3<!Xl7>+@LK&{v
-zCw$XJX@AnFM(7V8x#;2|391x62V{kx7g<cg1<J^h0YK@eXS_|un$}9ucA*-YtV#1i
-z;(i+~K?j9%(38xmUdX7zUl`OP?1RDD?t^HGy^v~v903Th@y4@W)OfwOfR0GJ50da*
-zlN`+#xHg11U;=tM8oQMNL0XythWDL?2?-rAM|K`qsL#Nw21Lqc1And4@qqyuCAWc6
-z;v8>1K%RR}jV3j_DK|WfYvyy_g4EP<8CoM$0LL>IdLfg!xBSrSLLv;`b{}NQ#%B@g
-z5{^J4rx$y1o>A!#`a-x0jMe%WOKX3ILVkl@)%ze*ORi6$pw+-dgAX*V?ydsqg~iZ(
-z{xUD2XX{T%&|YCLG~ejM(On;n5W~?v(|^$C^sv2t=%{cTn*YLwlW`jQGyFX@nh34A
-z5cK#d>h#r7GPFrRz`JQniMNH!+9*HtmJkhX-uBg=@f%@LgWv|F-+U0hAxnl<2^whO
-zi4T(H%At@Qz`Mf-(br9vp$$S3Kpt)LQqI2ag-ifQ%62a#$CWNas|7@Pmncgp^SO(!
-zO3^l9Ch#cwkY-j$Sad<S3J`_FTWwb1d<k^uN9Yg;{X8g8`3h$17SUy}3OF6^gXCRb
-zB|}BR7-%!b2gz@Lkwxc(i2zCTLFP0@(50AJ0&_9m2bwE*K_dY&#RqxLwSh|NaEi0f
-z%f-CR%M5B3TtG<Y!<nzDVbQx@9K8>+z*NSfCLs`T_EmXnJ%75ILWaNu-m3OO7Uu6_
-zQ6u!H<lK2R65LRd@2kB?(kw%|;pU6J`2xwmRpVU%rw@2*zHmCm54|beh5=aUtMOvm
-zcFJWl3}_?ZK#iI@FY4m56n`{Tcml*tKGY@k8|cWG0J7Z&DOtK&uR!yJ`!KC3N4(XR
-zC00@;aSjHw%!g#SaafAXf(cqUU+={!5ROntF+hGg=7lUjzgJ52!}|BtQ29SVuEtmS
-zr6(m)R4n9yY#s4I3WKuc=tbcMG|*7u1Fcy6tO6|%@~Kdq^3r>`w?%?#glW)E<7qGC
-zmCz6Wgw**U#@Z$c+9L!2=|&%&A_>$g6K+ARCLd(wZ`Wxp1#}sm@zPnv&5@wP!bGT5
-zd&VdKt2KHF+Ar|Hb*r!1nm4>i(4i?Gs8K%P>fZ6zesy8I0zEHu0_t}@$XZFW94!-S
-zfp^WjUK~?cnF7rfZUW>JA7tGPfMf|S;On}tf%R$7n*&106hLZj^j6zo1W=iv1*9(k
-z2`2KxbKa!kg13C*PfKNJrSJzZbIV6$Q`$$A$aWC5)Fv;^Ycn?mpmD+nFt+D?kj<yP
-zkoN(?T4uUlVlO=1T#8To`J;TDa2$r_J0HC*K^J6bh43r1@RJX+RdExcFNNQLr=Ko*
-zTi90d4}`uFz5u>sE_or_>-Qt{weS-xlfp}QUZ|#|2)2&DMkswE{PedxT#4BK0||lr
-z|NXc5|Cb*DdFKBh&^)bipg@WOCn?c4FG{_ov6Fpty0uEw2j9nxQtS+k7<PqIqVM6S
-zM6E=RqrLlLbFmtoh{4H&hXkk-l_+Yt1TBika|TZtk~>q0=D^R-@FSnCL>?f0yA+=s
-zyd`?rP9^e33={87S=s+#3GM#D4}D*QjYFmkS_EQI4L`#U|8KYO>qDnfn<H~8?EXWm
-z@v5-2VUP{lrbaQy;BAApL;r0%f!o5SvG-13d)O2_Wmp=mcWav(Umg*U-x^kk{fB!&
-zZ){iN%;Cwb{|UT#_zU>94_dfGjsF!Mfwdz{_}vj{gP?BWPBlu}r9kcQZ#w+LbB2dv
-zzi=I`IU_s)zZR~UoqGa0I$ePxG8O0;{G`uN&=vdys&0lwSj{WYiOCA|5&S3{VDP6X
-zP%Qkse^QBFNmHOX0J}d`fhNJyO>R))z!9-HAYwfJ&ya9j5W&$Nw3n!{IiebeM#hv(
-zUrh%_j>^3$LJuKT00hv=%xW}ajc?qxtWqLB81S`)zI^=4G#`pyf)t@4XkC#KEIS#R
-zZ1j<Hdh5y1pjVYB0N^XUa2d*jJeZNF1@bbWSCS1CCD7uV1`3d&v72d%(BNX)0FSOf
-z1u0UYs1-_-1SQKL?+^Ipkop1Xqmar0{+>5K0L?nDMBz~X?-N*{D?|4n^#hEVuBw@(
-zYSgllwl6~;1Aimot0Z_WNF03RLI-L4??EaB{AEDL58&A*N*|%DO-eKkQu}L4lmY3b
-zr+h|jp?Dx<KxaC@M|<-F(8pdnKCzqt@cE0Cs18#4Z|8_OI=-#D!326q{dd+}h6~hR
-zGJ1TF`-)LvgZeAxHvP>ul+yy%Sm8~ymEJ`3C7t^q_k~|;#ePUXoI2AbZ3cSGOjpo(
-zNdNpd)1_#DEad|}8=scI=V|z)>wcz7vt>69j@JZAiva}nzkn6?PW+dC4ZGCX6F(U5
-zPxz?B__QJ=n+eqzGp#A@h7pAt(p!*5LQMn)XzI&(!T^-|lA)-LNI?U3^n$@9tZZXi
-zknpZu)7H_;=uZA_UcQvPaG8EDC9hpZ!Z~|KudDPx6D&cY*Iq+<J7{Wx-*X%ty-L>!
-zB>V&)LOBwo_^Z(oB|%VhzMmre+z;>*z*q|-{N0W^7{LP-8DXmrA1(V;ff(UOnk!|5
-zDNd*ZxU7)TzeJQgG-UzbH-K+i{hAYXboBNGGr~+45ZYNSGAiAp<d9S3M}P}ijPOkd
-zD>xjcjtQ)=tUpg+5i@HOiN30v#35E#;Dy*Wa{Ox~<q9iwQU1`!<iyoF@h<WcUd1O8
-zBTCk~&yhn{I~AypMYav+$aEMaKjAHRN3XaW8d>HijJoD0-0-NNZbz?4ClQib70r19
-z@{<VbL`C~*vanqu#J2(8)PRL5=~CgVc3;X+J|VxbL&DdIjc5yTxRFL-Wt!EzRLF(z
-z5~iK8ZXp}4QQox8G9k&WZ8ws*wxDK?mkYg)p!T6^jxQkHPurIZiYszq9*mn@X!HJ_
-z<ido#CKpzC`)4%45UDnicUuilziKbbh0ESqkqb8HmryDf5<RqjzQ<J3p%6BCCqW_n
-z%}EOtg40ErfeumI$xmHN_B;LbjFIDO$yFDil%Jo#A;$U%iMaL&QD5_oi@%W2Dr@o=
-z9*Y#Cqt~;{Ux>WoFJLcGiX)`^3x8ZeEdhdDL>($fgGAMgjsT%i+(<qJNfgQhgbP&4
-zP=KIv&;h4NmHjF@iqiwY^632Cz)`rVMZ&*9uDgcLIxOC1QZM1NV`9bt!<<x!hFC*#
-z1{&u^vIdU-ObiNngG{j>CTHD;#XBMC0>kWq^e{PtpNvT_p(`cnfh#>?CTCP!`gohY
-z4H?l&o28cI+w-2x7;Lm~#?s0;ZD_l{Ms5w#NUfo>L-V>tEn}7|t-e&+&2pasgfrHV
-z!(t8j90tHusx=nzosWT~USNq;9U%X3pn4?uAy&g!@89{UXL2!9zqlgfyF2%Kz%J2q
-zC}wXm(!_Ack&U<;1*WW|2Ov2->I;*Yw;dp79SqMIb?5*YBue<+?I3`!_-UkF?HPV|
-zG<-G5b4Yk;B6FubBgvcR9QdYIo7n6@nlaWR;xk}&C3G>|UiiALXQM-SzY01dDyRxf
-zHp!Ie4j!AVPU;pZwe@xlPm8O`thNHhpWi*L04oK)vJ`3wcbNPO??@iyzu04K(}HNU
-z;`fu2qn<TBKjU`SV#~>G=`&_q(WpBjSc|*>Hq{r!awWq3$=pbZV;A37p*0>LNSwnT
-zAZ2!$#_u*@n(_ojaYSECPGDWi*vRiZS_2b3ndg8bljAQJTl-M3#OkX#-;S$O!bUG{
-z2X^u#{8oJ}U)f|8t(=mNwt%E&`8NTx2cTJ<LJ6a$>c`fU;mim4VM^@q*Tsfy?0YO<
-z1dVIOQ`;K1t>PtT50C^ACya|^{*JT9jh%FWFo3p-&*9m#HALn~vQV@fK&+udrtk;5
-zz|GcoPB+U3Si^0yvwEPGYR4DGEiYN=MzvZaQ`=(sv!NPt!Si2g&F=rw`oK;5C9^Vd
-z6K&r=K+Km9SmyU0_E<wvw&DQUD9U(76K{nUt<d6!ede|4cMw;~CtZ@LCG|BV)h(%|
-za^<Iy+>{=>3&UNSfosRl4wAdm6_VP<q5~vZ#J`T$CXTelL`nL>6b&Fw`^4KK0;wD#
-zA`OtP4*)acTRP6OTpV9ToS2{R>^P@gVnZM*R3aXWD!~)%--X5uvZCmCUJI}XP&vpt
-z!CM~c(m=gWaO;F*u5o1;Ou+%t;;yx1T4q@qSL(faXvh$#MDJt&i7O;pf?DzVi7{+`
-zKdzt1O+GEkRi*n+i~g!k_#KEizJ>h9i8!dF2~r|ZR~*$0rYySlmHZIC7L<4vDRSYy
-zi8-vK15cfl7<o+OEL7r<+AO+4@_|D}!*mJqysp(`zldulg^dMz0?-32RSM7iUb<}`
-zKbc?1zeAS0C@k=y3<Ycr=<{dhhQC7=y6{(%IQA6}7AEDF{M8;~%O`1eM#FUlS!9V3
-zT^fEL>9!BEF^PWO?*_ZkLT6KM{Xq{6wJKpFD^^*))3=Ze=RUI4&Tt@=C$vVLl<n5=
-zg(RaNaliMdTJnirtRNx%uaRtfB`Fj0iNvmGt0e2iF!fjZ!{k**B~eZnE6Es<RU>W{
-z=&vtQlM>%1h2m?3cg!Y>9ar@dlW%vIU4=!ljIWSy(ej7Ld4~k;w6@N|iIc-hfGP6;
-zCED-5E^GhM{ii<os%rmDcfZT&&=g;o#b{*K3R2mxzodmNGfy02)AF0h#eNA2vr78H
-zk({p}Z}o>+XsJ#Nu%)Rr#Vus6)3Evw+2QoSHnoYg_NM|?t6OCo$Lk*LOIfQvt{+QQ
-zyA@vSk{0re^R}3Y4v`g3e;bU&vI_FAc1<y((ee`OYh<u^L(Hsw)U%0f?w9c6_`D};
-z)~{9X2NJpNLT|$o(brH}KV=E}qYw7(x<IJ(>Nu*kmgydKK)XAk()g>$Hq_gT-#mUC
-z4DM7rf+W`dEeMHD5^!s?9u>11S(lc7pDcI3Pe!}<LCMe_7O+Nnaf87W5|+_gOWF>R
-zeI6BvawWNm%ceYA;%{Ug>QuENob2RGH&P>;90s9<st1)yiGFl&t2r=AxWaS5110l1
-z8GV^Ho%u+`C^CYrb>bb=XhCW%R5}K8z-W@Jh^rtUy6ErsTyw|_k>h8RC3O2<R!=6h
-zzD8VP*wY#%W{1Q!-8R)W$(Cq~vr!%gczOPhIKkVmd)|J1-~T>&r=Rxgn;tDpj@t<q
-zwH2u=$SoIAYXI_<>u)`Dx>jbaRmZ}xnfpHhOxols^47Ix5&Cl*`jd$`L5EJm^l3qK
-z?>X_u&xA6S_<x?+k(6)^mL*zeeQnlDt95_Gv1@_uSQ6gfEb_4PjIuV1nJN?ybQ-`d
-zi_K{o`LiC1`3%00HjH^4|1~XYc!j;r_K6&}02yoL1O`ReSZPf6VKQFC>{LzcVG=D;
-za@-SSI1MTA0XzIDvO;{tw%G=xjRS#n-qbMWpV&Axg1L<MPEBXN!8fK(T6BtRaRk~v
-zmil*dPs}D-n~wZKx+`f1DM8nqCAZy_pHEo2*_m`})niF|d!82=x(($A-T&^P3J9!M
-zFd6#tQ2imI5%I!lV@j^rxz#$UUw1m}R4rtz9XgA2@}O>RHIhr7LXUcNsSjg^ozCe+
-zC&!nOtxi;bp1kF$%xmqN7W`@#<tz14x&EFQek$)t<2D2`0bGi}WsX-gzH`8QIgn<t
-zH}|C@)mWmFEa<KizeOI6zf~96`LGktjXEaaA){Kv*OBoaR9``+Ihfe#AR?QH*0YHW
-z@HAdZHR>c`-6lN~OP7GEtA<oNU(NOhD@Nn|JOI_dPo6lrF@axy-p8TNi|@mHqxwzc
-z9XF-%$Q@xT%;q>0t1$gh(nA}NJ7g%xD^=e+sFc0y;Jjj5L2f$U?~&PbkDeL0PQ6f%
-zULQ->M`x%Kl{t@tT{GB{YD5xMcLtvglbcKyIZ+bqGtp|^pJRk15!Hh!o_C0>1?xjR
-zK&>Jfe~>KoNYHjGx4KilB@LF*QdKlB>05{nk^+wu4Y2keFj(qHvs=y&7Vie{ft@53
-zhN8)>DfW<14^@j_yR`gy@(q4g7oQXBpi8isxIJ|E8I969)H_tw?ngbqYsFwCNPGp^
-zZ%3McdAnHPc+f*vtGp`;78;}R>!Jj-<gfUmZWO!Ng}>DeXa0@<(9MWSxY;bmg;Zq3
-z-R3G!?yty*?lM%~hZN}M4*`LFAzeG{oQH}Gh$aYjCQ@~9AcHF18{`fAcKV{EjZTJt
-zQ}jn+ZSTVY=zY;owJKb8jspW&<)rX3QNwi5H5xV)=*4HmF$ZyehB|z_L(v2$FRo0?
-zWZ=Z3{WAJd57kf2B*}xTGtx@lbId>!%z9Xy2_YQ68-{Kd%s`nqgOTxhe|WY?9`f>!
-zz_JC>HXyB^G0~ci@?qou&eP=lz0b@`ogwCT0b$v%dez`t^i;Kn{L`&tqPp`0vw`9i
-zP1o@?B-c*A0h<Br5FHcTP09MRBNKR}E+=o|In$rV7p8|LLQ9QdUUgnNeRkfH)9bWG
-z4s07;xE7Xr9eL<V<vrvJPmH>b{EUB_9>H|rfXp>fRP-4uCV}>b0|&`Sx27npO#?N7
-zoM{-0$&t*+m@=1fr!La?8YXXn*&^#Q?nE$cbgkEtAsuvOx9-NbGgD&z<&nZ%D?~=4
-z=;HW|WPwMw`XG7GPZgyGR_;ckbmB2H!tksaVRC38bvU%JV#c(kU-##c5C=6l4wB#d
-z$LPmqqhfz!{;waK{H=Aw;gkRYVy_@S0+BlMhf||JNUEHh$Z;o%DYnGwk<ly-?2ehG
-zDb`swkq1szBe5o$kXi~0F4l<|K2-BJdxRcU<dMJG6HOz$h$FmtU;~X%qO11d-t1L8
-zl^@5ZR^avg6y{6(K0hf6^)V>eb_W_kQl{I?u{I6Ahge)t^9Iz!ep#u^U7VJc92fx0
-zmk!H$;=#pPV@EG=8Hz(e?oDuHlkocO12i$#ftp}zD5!OhCIB=RPbH)lJdgP6tmwGw
-zPlXwQo~5djigE?n-Nx|&-fy}34We$x!}V#*JNSA1=&4h6NMv4AB>aApTkSta_r$E@
-z3Sq>kL@xyQ=v~CA&yyV<N(qjT>W&_rR1TXh6=b~&U(<)NoE_iM8%y@PV84BWOk82Q
-zEch0Zj=#n6C&5yof_a`KdJLE77pDfoT%-~}BRp|7Mmp#gY%8k2%7VM;_Qn;`O7Xs}
-zMo_^v18V|iu2WRme1!Vk-qq?YqaCau7e%_!<Id~^<`?`hd&I(0P=-;~0wWS8h_@{U
-zV<(v)O3^@TYv1tT;M)d(yPOLxy+$NwyY--k&bfi7Uf}7Raf+qD2*;@`KilMDE#Cn4
-zy}<|_&qC@3(uSAj>`rovbdg>MJuwaTTqQr$8VWkjLzcQwM74<WODn0K0D?_XFeL+W
-z!z7&~7fv?0RiiY{JR#CQ-qtLJnVZGo4b5VBlWjk$eRo%j=!a~(pi(h-gYoydQ<!}?
-zZ04q@rrZ`$&W)%zp5b@%gIt<2cLv6V)BRQlK4W}-W;i?9ga0=3P?W51fK29K{`l}B
-z(*?&<l$we92EeTspen$%jJM5tjcLS>W=)Rrm4`hoXM~ldy`}V+2bflhnKQcyGkM<C
-zRX-B)!}9Xk^A&hiULx}yuFp%x*1Rz4IW@#6aZla`rWwDOKY}sg&H3u6ckR*$-#pdA
-z2FnV=++$4N_9!UBnpmLqQGOGCb&i*|K=XU&jF+4w=_0;5XNc;EBP0gd*cgs4hEq8-
-z`O_RN^8+3{SB<C6_10+xr#+rOcPq0KTjx%QVvW($S%bo;1Fx3C;5{g36_Y_%pf&R-
-zz>Ik=CDhL?L1V0s^B&JuO$vqMYzrCez$>3yoOA}Zo7-pu$#YA=lx5UrzMKTx8MO{l
-zr5$<GM7j+08X)!fxkOg(#OisWQAhjFljohb3Tljf1*XhxR87{}PgYbS|A;Emjpxmq
-zF{a(2u;}8D4aL=vH{GhX8gk2xE}_^uaTH4C{WOvENU4ffq9CrC9L9f{H!@_ry`g}v
-zGLvotDQ~YKzhdXS6}q_|ouvrQcpJ##{!%`V_p=2Q|J(x;tdNeG(8bnEYRlmmX@<20
-z1aAXDjq0<<ovPA|gf2<_UgE$F^M^9KaO?c2VT0gsxq<xMNqJy2hSjAP2U-2Na?*)~
-z`6FPz3|bKJ!V!mzZ`g8>yycKWdb&>|(OUMB>+Vu;pe3Naq{M@`edJs5o+y~pvm5)M
-z(S`&iN>nJO-vAT$Jo&+Xo`gH<#4$)^(er!BN)J6K>?Kur_kvNXUE&c@R58(&5s0fK
-zL;LaN1&J)`$Gr<Q2?`b{aNqYF7DaBjC7ut1shS}kru{OGR-*q_yNjnhpDSr0Lq%Nq
-ze9G+her|Oond(}fZCh25tT3$8ug^yN6b8C%_mS+5wb=^OTJY*9Og^v9nprYFh>tHW
-z;bfG3Z6f%{<xD)=l?v?s8~ZOD8$8m9G(}dg4W7P%T)<fiN0t1=W3p6}3|CV|Kvy;S
-zTYsvBD#U7HyqudoN9542KARoz4_r|cBTcH6nkW;zRNr)WKK2Vy#E<DhLNJJ0oQ<~C
-z)UUEgIAB2p7INVX`3zVylxQybxh=k!i67ooq6xE3f?cDd7yoPF5N0EmEZP#KF`|cM
-zsC-@W&kCqu%2I-N&;$GfrOqS})i)N!u-&EjlSTWYB17s#POTeWdXZa$Ds|zty3&l$
-zZ@o*sVho_JdSP10KkW?}OxG@$@@BCD)mwCta90p?8ou)c2~#GPs%FDZTtk+^T-;Sr
-z`ILgtENQJ1OJR;#4QHKZYuHvrvfbU{EmalyvcC!3B*9;|h+jeOSr@~@7qU2ozVzvU
-zfvU&^*JqGYY>wYmLe@AULAUQmUWZ-&SS3ma@eJ!~7Hd__Vh!LM-3*`ghsRW!q5L`o
-z4uHGCbLFid0~OP~i|qF>wp}C=_9zdT>D{SJx*GC9JM~oz;PZ$DjA3pK^;pa%E_dB5
-z&A!@8x=8ay%`QeGl|korle75!7pJBqgBILJCW)GTjAp<cnxoyVq!x1+T-{x}#=yQ;
-zNt!^l(Slv%Qyji{5wjh?ws<<X#Hp|_)Jp<C)J~T0Xgg9D)5<oe{0+Xdcr@6C(j_ly
-zf*t?qiC5Q?K*tzcoZeg<)>bF#7#SQO>g*XI94Mf@c6CnvHhf@-SM4<>!(6?)WQ_D$
-z{}oU$cb8<1xaPVpo<_ICGL_nrt*9cc4w|Q3`4Fcq9f6lF4U2=8O({w=%#xa!UYs4C
-zZnABQ=aGiv{jIx6ph!3IO0oqXURnUFpDa}m$a8c26*2_|7aXbrPFm(|J#`$kK4V$j
-z@FG`ZM&KPflAj{I1?C3k=Mc=#5*OaHEMaT`uux`#DJ8eO(~~aex;tf-i}LOP++O1B
-zr&GoWLy*j-fc#_p!?K}KwOJZVt*8M(qO8X_Z;6fCIx#u~SV!Zb*-!&t@;*RMgD53C
-z<$SaF7BX8}GX~t&0{%RgAMC}Y(Cun+qTg~+3Up7xVck_uh0{+n+S)9}Fs&H_?=)<i
-zO*Ag8r97Joqkpk}dTWOK4sA2S6$ZwUhfMS6E%mSsH*DnASVcuhc6cZJR@&+`KnmEo
-z0qmr<HEi3Gtyt`*VZW{y;l9IGFEX?SERO+p%oK#OX>L5UAZFwXaB85`F^GzXY;&FL
-zp~A?-nqi@&I8PQ;k&p1wg80!RK<WG0X#J~p6szG)9kpU$2pb>v^~@afC{UG~8&V97
-z*G_=3xLBZNe#ZYSn9SV75zEy~D}Hu)M8Y!;^%@H-wI*j@A07L__J*SCqJ-hryi4}?
-zL*0cF=@EN3$j#p6$>1<(T|T+wi5=KmBjz@VUvVRfUzolxLvkC|hbjaHun4w^YLX3y
-z+(0W`*O`uVMFTK=*Di%_|E4#KnfX3zw3_^-pNbP}rB>#w9<MW-n*??g_`UxGC;U=P
-zo`Jl?N*9evx0}4(hD|TU3_jK$qn7sdf-|bFKU6LKeXr>dIe^c;l$|)%9lN4T+-86)
-zB}Iq6Ox$WN6L%Y!VulN8D-%y41$SC(pmWkYNr@v1XDD}(m&IR=@!L7Rl>C5Ag@Xs~
-zA_GBP(bFUguE9OzB@rJj)XdmqKjghisV0q%+U%j+bx|L3U7X3tK#X)up5XB>69W&P
-zrh86PsuD%6({Yt~W#ZdN7Ckva3MbqHB+7*)D>Q6!KOVE9uw;$>wxx>n_BUh<?V^Jf
-zWcLl$DN(8!aI=b>aB1n?R54uoSCK+b7;G9QT@_*5eHx^iT)g(DE_v-r-V=R@in{@Q
-z*UsViBV-F4Rc3%o5@|+s`LHU<;>(7WDp-3Ns*|PFB=lQw2>M8V+h*HFeU>k|aqP>9
-z(^~sAp!2L^uZjwCuZpf(E<|my!kr9-1clhP-4mN@8-P{=LV`-}-4%3Gl&F;afe*Z#
-zG`L<=uj%rt^bsKC3M;o}4=B8@msgE0OXNVLc98)tEojO>E8Q@(R<8-7fRMU3QR?(W
-znC?t4pYbcNER;t(I3APp`14n0L^UAlv!@3aEz|i}#~|=Em1cN%FDul=2}aHE?*8kr
-zK`>zUltLTL;@7HMkl#=8J$SWorQ}(+hr{=cUgcDu26gO4{XnTlVaXI!5(GA0!^H|R
-z!iAqJn#ii`cz;nOZYuI(8z4{*-zW;7bXc!yL2AZiP}k`XfiN7>tJEKtm6oZz$1HQz
-z{i=!#@PmPi=tp;*n2Tz`_t>zZ0*_d!er7AEch@pd?{VO~*`CZ7lX><s@p%}LToMG9
-zQLjZ2y@)sRmxu^wl?-%GynV3qv3Y2nn1gq&95w{xK{HK>UV=?8AKY`r&`b{5jNe%q
-z%NDxvmn#!zM>tYJALfwX-7>Jd=Acwd2Iz<?(gp40o6~H;Hi^1S%u&tO&(5wD<G}XK
-z)}vSykwaqLe*-gYG+^hD|AE?Z&<LKr%4@F+)0B9{s*xe0h}xJqijfccJ_i)Tu~qRS
-z*0~}qbbHGoe{+_J(Pq%1C+Ly08vG#NuZo{z@rtZUmrD+}s#?PILuMvMOAJG^IsO_P
-zuP!{gqiQI)@aTEEEL)#dB7=brrEF#nnc$?#y^8Gh(B;2}$S%K8tVUuGetvcI5PgLj
-zRlt3*@%1>kZlqiEZZgS<53CNCYMk$oUASrW1kI(4!FMF1gRGut6)^Zd>2{{@@!)WR
-zrp!7pp%GmHZ^N~fa!u@jSHN;badqM%<{dK4jdg3nqjSNhP$xz(;9<W#7i!W&V^2S_
-zFmajy>WIy7;GJtGMpcm6Zt5O>fzSI@1>>6>!aXU`<voFB^ywfsH`nB|BVcvCn(@pb
-zGGAnQ*+X!zKKz_{o}TL;rmM{2<T++>$~v?7OsQE+OE-(t4xX_9NmaI7)eU4+89?UL
-zs~X86GD^f>z4`*vkK@<IN2#V`d&W9!Pg5VwP~0s^kaR`n3@i??K$Y9H%DT1Ms7_CC
-z4#P_xW}<=6*mX1zeBX?<)}Ap(0S>tq+_^S)!XdH}4!R?(4aN71%?x_TgfMVnuYvMC
-zo->AqV(CM(iix;yxL*uq^o-gt9jNO}F|aMHFvSm>=g}DRo&*)3-(NHxB(ps3n1MDG
-zZzMJNT~kzcs^?2ko@#+*7{gy@H5xURv&E8V_F-wrL6YF<HHKLp6#Fv=NsI?PKo;Gj
-zB!EZ4c|l_`nl$S;*xR5*V<xm1ylxjm@S$}{3EAON+d*)9f+wG0em}ZS@=%AG;K&P@
-z+8Ijp!VF25ESg@l{e&N^I}^3OXNewdNo|AQMzdVny_k-?Q9%bv1a$oV`lhG{Hw9Rr
-zo;)*;VoIA1@+ukIE#puv;B@kUvwcG<EA7W0ZrG?!^svWU``BRip+Dmf?g2lz2yE?>
-z1}o_4tRf4Lb2koW2YT=;8)q{W_`{7eqJ$Gd%XhQTNG9f-F^V4;QKcJXJ0w0s2Qyy}
-z6^3szvav2)wu#4Go5F?yI4m2Scl=~q*w@qH{xX%fkTEW7-;~0Jx^U8K6JZ-Kd~E`5
-zc+IPzY=DegUu(i^H+%DqIgl^k+=QnUd-JAT$S)|)WH(meH;Pwc<reSKPMxX5F<XwZ
-z!yUL|OBnucix(Nq0^}!K>X?sk<<=2V+E3m9n`LjtwVQ)QCh*)t#AHY2IZCOA;0DF~
-zbZb-8J<(ViXj6yf7Vj$=q{}tMhgBAb=oEBAtep)whqgtt8aw`QTU8Wed~gYE)4~aW
-zwZb-QWo;}Rco}MSF3bbeg6(PSXcs=QeKuwGKii|D9$D9f|Lfv+J=8izv2dToC-MVl
-z%WY7D%ZD1;9Ziww;V!=j<0i`-OOi2DjLt_7_re<6<=yS`mDs&ws=5wzMxs9l`l5#H
-z6w8R<ev=$_9U+tZ&k}$4892i&-WkOl!rOO_n{)&;3U$Xb;Fizu$(br0QfRUXBC1O>
-zBwc8Yo1Abyo2@YWE*}n(6|MM}ol{g-Tw_7r(*-|}_gXUAiM1uOqp~Ybnr&uP$6#>v
-znX<xLiom?P=kYp#i|0Zg-Ym&1IS&kKwy05Pc{0*Ra;UMIgO~{vJCA(nnlRI73FR={
-zcjl0f9OLxrHB2mHC|HwjXciZ$n9^Njhh1gCWV##Krdn98j)-7P{|6~7Iply{qpyV!
-z0v%|RIEb0hDg3&?aap00E4rCz3EWKPf?nZ98FjFyLJxJ%f#qkQw%R;W=SpqcMV_;B
-zZ41eBqM|K_)Zub-Hq(c@%(+qiwf=ooNKwn)suagv+;KlooeCSa%<DXw2fccxbPAhm
-z$D2zhGHv*S(y3967jwuJ@kTD<iumxw0gLPT<-bbUfO*iWl~xGY6;smXPKI4D=r|?;
-zcDTMqK$_hF-r0IjgXJ>l*-ojd+X7zLdUu}sf*zC2_7Ads_>bsyw-<j!7sZ^%cS;7p
-zK`&2S2)7zWV6DI&=1rH_XM58{_C=)EX|gOLpMz`9i&H}Ko+9NwMar_H`r-nnzO|r3
-zRDi=78aoCI*Utxr32#3J{8d~r@`_`al!)IyP^bc;!BB)#`u^--PO-5Pl#NPo2hX>1
-z6=vz&ZVbUDH6#aaN-?=0rnWI)zt_N>GR?m$w&KLybAm8v<Ujj@Yj=kQKzoJ-aGL}k
-z^!IkZG8B_xV!mZEuY)>)q6WT<a696{@nvJ96vqyczk2@U<B_Y$qV@6tBs9+h%bUyM
-z*g{xfWs#Ak4z4W{oB=xM$Y6)Ys5NM|XxE`w(~<*ZQa}E-Yz%V`2keQ!WA=n4Kz#w~
-z?}TWVL!`{Zfv-gi&HIamk!!+Zle%t7qmw~TRg+>|v?nTXi`%xNQ!ed#6RdN*XS%;q
-zZ!pmKf=+yI&(M){PY>bel7Dunz2^O3u8K?tcRn=Ix)7pc;SB=rtQb;q+(GwjRpV*$
-zzC#y2qf644$)tb=(D0|pX@I14r9dPAEq@bo6CjrkJe(#+AUDQa76xU5ygR=Fz6LlI
-zXUFjgyaI4Mjs&=@4uPRNO#+=o@a=<3oh#v6(#J8XLMW1Zvx>7S_!fbkBA$|b*#Q^2
-z9M=Snmr{mv^vI(9v)`omPUb}rl>wRK5FjAo!PNp0GihLp|9P+xdT8H&?Fn*o5FO7U
-z&0hSEO0DDo3AN*ZeLMua%-I(e1%&i3z&P}Aa67im?Prsz6^#eUSdXI7NPc$XihUDH
-z_L2;^=1$ca$@Y#)xxCv*j=;Gp3QkoN)_M)$kE_tgj~|;^oq8`sRYcn=<VwKW4Ol^7
-zcArI|n!#2h+++G`=&l*brvBo#)Q<nR<`<wzE+8{_y(wNk@DJRnUIdpjZKvd_s>KL*
-z-Ah2nP%J;dQUQF!RlH>X#GnIY4&2-vfug)$@jLrpF8PQaE^ogG9!C&{A>x=kl|}x0
-z)n>*f?`xM+JhROImNvpeK6h&@DzM5Gjn$;Y0gm@7=}54L*>t$2-b;3iMsm%iY!W(9
-zT`zR=za`_qS?FWeNX~iw)#D)_x_|8%^prikziKY^LN_c{;_s?P4D12VrER}iChs;B
-z#e)}PjR*Tz#|`+=RZw)J$Rf_>N{uHiIJ0^TYjNO>)u}WX!?=WAEmD_T2tS5owAGSI
-zhnzPSsiA(X$5<52C&O2Ae_4i~RXtn_I9hwE7r&MiU-mkAQ0M;6$EC74Rznfe%m$y~
-zSYm)1ezxl<nd_>sEYpL5C_f5Lpwvs$Xi+`U1sjT*#F+*>x@HKA+VS+7)X~6-cBvAj
-zsn2FezD^s%+?l{5TUspb#+PnGQ39+C%H$Q2(vDBmBn-Ugkf0vxSUm*mKKxvEl>Fwz
-zKi2T^Tit)MycgnuXpJLe-_>u#pHvlWU^n6zy3>l#5Y9O;Q8oK1wvY0{c3gX4IJO*!
-zVK+JPHwU!C<~vlD%MeWyX<hbfg#mTHMs1wVWl(!qZAz%SUv7ggtD!3#x02IZ$WS+4
-zRy!P<YmIq;SYc42ec+r2Z&((1#j^el+QtQs>%4n^pT9JeH&<4J(?f=aLV(;|ICTC5
-zLw}kix`(QbmsW0BZ?VsoKm3c7NzfW`I}RUEN^F-)i?YLI)=DzIAOC{6sb|Q6R^yg1
-zOAu#R2fZjQSm&g+MHY=va)U2FPmudF;CP5PmWt9^z$oXo45ar@`32C6w7QguFOy&G
-zsl~%>f6p;&8E9l5A{7ENHr_at)33YPQx99ul;YZqAHL>*p2oq#vC0jxe)zq*IEfqf
-zKipk6k%r5MEmxvFJ>0fHUMHB@li=KTlXM4;I2;*fad<R$!8W3xN1&N?Tae~f7q<n!
-za5w>ItPpX<;koo8(*`u~-NSLvLYLjGNw)TbO*O*Ca)0#r_!-n=D}HH<pC$z~nv9Wx
-z>)uV$fclqK1z?F#S^%ZgrSB%29eCD}RQ7=fmmi6y)Ei#{>SvE+$lPQZP{-ntL}>kU
-zJJuYHfe*VK=O5KjL{lLk79Z8)zZ~V$i^y_EKz;fa#=@H#GyJ*|iOe1Zx7v!-MA9bO
-zd$zZrK7R?~^4B$sBf-J39S&Lt;5v=rfl}%Upp;dw$4Ba8*w@^+y*`qC*^R%eA2X<*
-znC(YIjjCR&pAMMlWxyPAOpjL_iyj{A{`c(N5DoLAZo;d1PqwZ<<3tP^Sx?>*@yTOw
-z6d?5?{>!mQCDgkC^?IRbuZSOdi#CWj<aqe(-&ZW;C%k-swD+%|a&dyn++c|11Xkm!
-z$i#l5r9IoQbKofd;))Fa+d9i`GR<xV57{ESzD;72b8_2SuRQ4hHp`B89Z#XkqV^Rf
-zs>t}^_Wd2%@^7tZ%pI$GD;v*P{o<Lf2F=$u50EweQeM54)|zZD@TQaOhOJ>1!%j(G
-z00Yr{us3FT7~ZgRH%YYL-$60Q*&8Y#+=ijwW9_#8{T^+vvkzBM=ma~rHIdN-SS1j;
-ztlmjM2~Pt=A>y$^y`4ga+a-M=ULr&7c-iYQvB2;`cvdi*WP1Jp&AH6;7(9^PA=qZK
-zIMpWo0Wz*1pL~6I%<Jx7y$9%EuphI@#tuf!m=)2#!|q_x`Cv62_?OpLzXT+?BG}4U
-zxP4+Yd_5@=M_Fi^Cw_j>&z1~(c|CbX{AC>&o$I8&=HSg7s}AKY53RxMZ7m3jsiPho
-z?6!5i#SLCOQ-`U=H#a%tSto9JBd%nF3p9Cg4jJb(7-=Mu6K;4Lyk9xwB?q@HhfHxA
-z;P)t}lbnQbT*NuaS+V(d^Rt0B^Zsy~xJ(G2SO?tp0=M86{awR5$s1y`^Y<q)KrV;q
-z;Ew$O$%0^NlWrZ+v=8Krz!yR`a75H6;^*ERQbL3IMKI&5z>GJd6jT8}<Kg>OwyK4J
-ztE5}{o7tty^MthI^a6;P@(u}Hm!P9yu`$s!YTzij?)~zIuWQ~f1$<rhAhiV2Ly%IO
-z8b~R|K1gY~&q;DMh{i8A!Sjp*<de(z$(xDHMXY{n@W2mp>fo+MlH>=rfsp<dd7%U6
-zy`^3JI?SfOof=?5dOdv4xom1VHVef(+#U($ME&fE#t&J)?vaARkBND>aVCv>O!Tw%
-zZr2G4)Vnd4T06z?L?gAOW>zSeMThM!w2AC>^lnG;{rJ{fqqKg)Ww&p>RNlLdZL>g>
-z<S4F1EJPncNK7bS0emf3cll@7WrX=6PC1dn6yOyn;;By2t%mhob0RHhCb`u{2m9rp
-zlOEvjPeihX{kZ=`T=-1#LmOA|F2tQOT<iLQT=53)E}J!)eBF+pZHOEQL=<b3DD<Y~
-zcN8VL8Il=?jSaD3-@1(aX!0LddJ_UMlEP)r8t}FMYQ*Oo64{^I@!f{uB@fys|3YVO
-z^X3%qOx}iB^-LNGF;B>opTi*$4rteh(gWJ=nFFYjke)0`w!pRqCmCqc-@7(~)T7CV
-z?K|`}aP@hZT(ED~pDDQhfR$_k2!!%-S`$5Gg~CD%g%Cx$AJM3J6?l4|{de1TD4=wA
-zLm0CH3J2PZMpUbTH~|TIP>iCD;2gW;GG<eC<o7jP<v>&_vJC_x+dB&JtW(2Es>lxx
-z21%?5JOi>`=!8phDD?&nn0*Z+H47!rJ88qJ7T~=eo&b59Ws%wsie^160+?C}`5E5)
-zQ<V^FuB;+W4!vatFcBgsf@NK`;vLm6OHgcxjg7@WoQjOxO<obXig=JQlWsIw2A6BJ
-zPbiL7-Rr>Wx5t+>z`~?4g1SG_({->IfDHq@1fnq<iVT^R#!Y}N0E09}l-L-K^aO#!
-zfQ{2sBtNCfwQGGkDz>tz31X|_VRnbOY~gP5FSxr=j9kgz4_E4INkG5U=85Lu<adsw
-zxCX}33-Sv@ao6eJq=j{i!%v45fU~eAgs%-BO|Cj6Xpl7^XN~&g`Vga}FBoNqhZwGl
-zfht+{LD9iAkUQX?rqeZ=OuC{10u>-Hz`Vu;*Ulg=QtB**Xc4BnfP4&=x=Oc+{BRj}
-zoem!YH^B}mT$B!!PqLa6<E$EEHTlGi{m$r@eCL$%bihWFT@X_z>3Wz`#7pb*L7&UP
-z*k#pR#UNXpa9>7axo5f;TF!{S8lX`D8ikv=iqT}HQ{Ln?<8%ci`5IR-nU~X33UImP
-z3T`}emTg^!pL^#^*1R4^zq>H*jz<oj%~NDhf2(MKn>i~gcpM0W591EdU<kphA%FMa
-zhIfZcs>!Q%eD&RAR=)xFy*pQO1en5EjY~)H<c@ewG@ymx)!;p`daJltJ%xJLR2y+;
-zV?x|Lm(Ak!^=Ni>jknoqR`RmG@eD*TxIepy>TP>zU;f95RcB{r9U<pMz3qtj4cG;@
-z`{g`EmV1$3e2Pqum~S{!El1&g1)8|MQHeTbe%-bj)svki0pJzq>9x(<XY+x-LJ^a*
-z94Ledb~=`)bJRSl&m+C=RM1Bv_4UE--Xu;n)r#p2o#9nvCj=r+0vaB2t-tot{hE`%
-zm*_mHOcylNun8|cH$?T%{?ENUC#|HnEPr@#*|}ZpJr7pAH<E=wwWRl6W$Qio&G%AD
-zMiYaGl9XLGpxf$}tVBksT2B^&^PDaQKlKt43=fEs9sq6aW+f8R%PWB$S=lxeo67Hp
-zct4Ycrfc0+&?}j$N*U8VG<L8pnvYh$PD1-t5VxEPI)L}ck;*DfR9R2=4T6^{L3f5H
-z23X@0@$B<K(W6OZD;rCC;FJ%J*HmNY#plRPc)=v;Qo}iUB^{~l=fl{c9(?3HH@NTG
-z6gay0&HyvWt#;r{+>HNz{!6yA7$1Lsy(+oie^$dfBgFd4VSY0Darg(}xvG{tQtAoL
-zhFA#$mGXT=aaq+8q)#X3As`~SD<In+z8^dGkuRucsA3De2GlFEQ3dnRj2H+~Q0e^i
-ziY&T<@RFu!67U2#@rkCCT;pcWm_xSp+lr7x(#?Pq|9SF7zr-fZmh@>*1}Sy1oaQy(
-za6V72T(zzAI?Q5X`BSr@q5Q3&hi&wQgTjf!E!%Tzh|Os$iZwvAn(F1p|IohtxJGL$
-zp!!7*`h|ufAUIp5lM?64mr`t7^wMI)efID(mVKDPG7s6%AB(<bfo|9~*q8oki3^<z
-zMkV#^$hvGrovh!j5;C_RM_kMguYr3|ZcPoGra68-33PG19$Y(|QBNkiaP7sg5jA9)
-zQ^P+;=F<VO0X^S~jeK&$h1)Og!tRSQoO@|}U=<AmXxy$u_w0E0rF}TGIT}PL*g4iV
-zl7lr}N=Yi518mh90aljU#HJm<TYj@vl1J}D%9<C>M>bHm@rrL%prg%V1Kc*e1*eq_
-z<m@$57WGi9Azymq5>&d|UXR5Zk_i0LNwLxmK6NL!p<_981NOTH&~J3#E8dNhTeg;@
-z=-G;ZOxB#NXNyBJ8Iu5;>F31~eh-Ae!K)Go6iA9v8-kK%e0{H1D#!v<VWAPxnWM*!
-zpX~J@pb~f>qSF%=LWE5^6+Brf0v8bdE`+-xnr4yLulm9omyq%BIM1XTpnic|YHJet
-z<c{7vlaA#Xbr?Le%e_hq*OAi8KJ=Bu+UonNBOzCU^k9!xe1Z_ChtLU%=^>L^O&!J1
-zEqyP85?65uwsdU%Fal(6DI6F+45x<h4Pa1dwSqM>s+)t$kTv~bmn2QT@D5?wL2|bP
-zfBWGy*4&Rrd^85<f0RazmRd7RK-EVXVSn>Tniv>IVObovk0iCJcSLb{B+7w*`6y+$
-zyo)RDeEccI8nD(H64bA^P_i{daN)_Vk%9T{PO3c@mIAF8!5?-Wo;T8yFf}~R<IYyK
-z>>C$nDGbN|ZXI5d;gO*!@C4)qXX_OY`5r>7$64Q5&T_VmBfOW^6;y_}T}pJJ-w&2h
-z1vvxZ58Ot7u3=+uQRm}Mt!;zGNEdU%hIb1ZR)*v-#)IJBes(0i63r)n*y*FA`vtc}
-ziAufvHh4e{%QeO_F%k9$=w12%2(Z1Pq0x@%dF0m)T+^n(9c?jD&x4l<S<h@Vbu{dM
-z0#^ONnN0L9-TnQ*OfN8l?QP@fZTQ&BiIVx`dl4_Y9H%fNy`hpEwd1<W(W5J12R<y0
-zhpWyd)?;v_?xpd0O}pXjrbk6cx}dufT)$0M%E=ukzI&OIl#@6Yc3&Q%D<{KT12x*4
-zEU3qF@`e4hxE@KkFCQRyL{$WknU02S<s`vjgt5p6qiBQ;)u$`wi><-sq{Xf=;1{oO
-zv&xA>>@}R}Yn4j+3@Dwnc`kds`V#Q!10Tg@O4O?Fgh?y~l{*q5$?3=r_sBF6H{ppF
-zL^|DaZ6KFHp}bAjiTL9y(Gn9`>cBl$(uQnQvGMXQT_knzmWjoP>8c=OMXYNdGIl=c
-z0cYDrBwS)N3#}}DM4;OPufMH+8W-5^t`i);4xE5{;QDkSdE1S5wkO2QhhSNFA%<#5
-zi%Zg%hNcq&(F16t?$M%wPW5`dh75G#FWSRO>cPe=6E`+p?Kv)n!mwJpsL(BhtN-&o
-z6%ZSRG>u*5a1c4uL&MKEqH};Z9xdQ)m!1P3@r^6<z2iO;#vRyF>{X(Cu@;8^qGNVm
-zl*25-g8+Cw(JZcq<7YXMfl0So)$}ku%KvLxGX7S{pG9`ZKur?N4n;dJ(%FHzY4OcX
-zlAX>?pq<W5GCaOaS1f>eLAJrRa&kn}8YYT6!*!3=MO&PY`rwTAh;a^t;2;Lc#9cw?
-zm|)yXzV!%(I&m{<g}!di2PRP76F#I9oyHG3Mic<&R^U8cFvC1TC-cX9m0qcZi4U=|
-z@x!dr_)%R)h!jLbqpl(G{q*gZ3PLO2^cv=2zf_Wg5aKczqBdyxFtEA*-GexZxG|XJ
-zYDm5dFTI*FpRUu>uwE1QC!_Jdaq##Z{v^uYWcq4#8H$teW^smL9$`H0ynCYSZTPu#
-z6h;~jg#HUJ0f+VFN^~3~UU$Xm9rBp&a`Lkszt|ZbUQWh4PS*H_71kv@VG6iaa6khi
-zsc~T3IVRk^yA{A@OT!K%Q@{h0sYs@gfFr7$)H(3?om@!;7#13fzpbI>V|0J7F7khR
-zj?zPmp+bqqBSl*UdC|_TQd#Q2;y8F|%qw&{28f?$=RJurDPUlyK`3_muV$5I1(msU
-za;Bf2A<9V?JY}l|x7-Gj1n-khkyUQmC8QZ(r9D9qa{dtr5z-{ftn{)RVyJI5Y%`IC
-zB9&@S4}CBIQXtbngGJ!p{n_&w_~cyRlY1Ax|8bN$8Nw;1A~|^F81P-QK(@dJTx%*}
-z>*UswOgH}5$Kms;^(YQzdsr<rU3+OCG+2CPzjp{n!%)Ec9uQa7eoqYDResSodV$>q
-z2dI`<VE=zdbr6gyh3DAul20Pp?H;`2lW_eyJ&LDS*)E2$`b223WgcA(0`Q^moa~uL
-z&bVn%&{V_#S9kjBpGp@Suk51oaTh{d(^LgG;?tp_Cw`$$M>Btr59SxmRDh)y;>7w-
-zx#3kL$$RnDuz~4<XCMagqC}h)Tt%YoxboBR2^ny8r?52ajkL9hzo1fiu(k6sgF2ap
-zy$#!dmDYXW5zZd47;*c_AMR9$E!<D;xbe+Tqe~*)ofkD)x?H$&%><Y~aL1&R;jU^j
-zS&Y{|C}vFY+5Y=KE~p}n?om(ojsp8^($x>zJ!>BM$r~D33n8Am@G|&KWkV~5XIsR%
-zs><-a@D2~6e~a$#-%H}$VGwmt2RH-45t{rp_1M2R0>Zfx@79S6;Gkj#Cd%L|iq4{W
-zzY=$S5{omhhfNNjz<D<oY8gD!N^P?W7|SvdyiBm&P-sD`sRiDr=4y<!qMfT1`&7p*
-zrEMSJb=L=FotydI>=@%j<M`>(8I1LfVq{xfJj}9a@yQHyCx|}-H@M(_=>D$QDt-Y0
-zPJ^xHZF|W@PrR`U@_Wft4=|&zg3amrb#C!t5Ff3Dw$g~6CA^3%!7;G$ZL9_O9uP2Z
-zxMr3VW^V{jpFo3q%O4r@hy%RrJFSOFu$ybEA}c)A<e{UKAM3r#kn|;@x5zFR&iZU7
-z^#H4?mFO_U0Kx4A497CK6WLETdhnUgQc5&1b7kUE0KcSSZ1AN54?=&V1s-j=Xk1Do
-zIO%3P&Oo?Ps%1}x6f}1>tR*1}rsT3O6|U&vsI=8lMPBMhwonM^p>@W?!BcK6C%?Hl
-z@WPdolOEO6AUh$ef}CsD@OJRw31iDmU>pLAw}Hi4u?}vJrCoL6n_g{O2I*n45PXu7
-zzB)7wyzj|)&*$or^ghHi6y7h?WGf8*5w_I|Ljw%(8F#}9I+2Bla<E5dGB!>(!TmCI
-zz2uQ$b_p6~<&5Fk5IP0%YT#yq6H*1-Uu*bj<feU44#PF-<`_$-Yxp^aY?9|3l&vr}
-zW+=Nn92%)G<ZcM#*9s+UP?)X+q%xHQo*Qc5h@r9H4BP<L#}*FV0!#0wQNEi5D|}NU
-zwh@fkPvQHw%4GBtq~ohNl#-pSR~UTp-t^(m_x7Y&C@v|A-rfxY6D!xrj6xbJ!Hjk6
-zJY*X)uVHmF*o8Luo!ehlBED#Xp)0L`gHID^&==wLSHtRBh?~!ETR{%NL@bAA$h4D%
-z5ZzxUzG(27P%FsvR@&u#a9sKUF6RDQuNWeHp+Ck0O0)o84=%K<AnSol#{ZJp0eW!(
-z8Z(dMSCE)zMaoVBumfDAHxpS$Gj!6Wfm2ZyLJBwlu<?Oi@@z#;_SQLz{o%fwwNYP2
-zn(9^ZRfj1HE5FbsogxEWR5zX?yIrT?ERYKC4B4*O!s{YB1kX|PZ;8J#Isur{*1|&B
-z`UNN1OP=q?Z+(#vcZ%G0+Q8##LN)_UC6Fp@r{I9$BRCBR_BipsztAXNxCShqFty;=
-zFJq|LEK*|GU!KNKeEH6UkPrJRO>zpN&G5pnQo#8D5B+Pt3WK|Kt`!tK$G~4*V1x%1
-z11*Z_y=KN%I{ksUw_-o}%7g#$RoEyXT5$;eutZnhlfNO|t1r&FFE<+GpevC|W$}=7
-z@Tu|SbU&8=BT~``x63&GADJbl7QmK*Z>{KTQCjW@<LhkVtx7hb+staZ^PV7;u^@2`
-zgnLf3$r<ZsqRr4C5AE(2e?p&$KN-ONkcVglP(B84cXV|2UyJ?<ehD)i+cN}~9d2Pk
-zhn*tF`)z(q_h%wk(BMsD3aDB;MP7&XFfSauuhPCCblxB_l$lSFdCtLlrkM7CjhA#u
-z3iF;QLOMk>Fep37G&DQFm?7xc0E67yls}x1&zgQSF@;vq41Y9(V>%%<bzq%!_@b05
-z@R@-y#6W6};861l4pl(97=8-jC$%MECa@k>M~|ZDP_$9XfAUzGAx%iO#^taN(;5E?
-zbg&52$pv_rD$&Gs9fqZBg14FYV`~`O=E2`u(_-$2Fv|mhtLP_aV1VJmqc=lJA-3-X
-z!@%!nI2kAfkg?1zj$ZWHpd}`LVArb<pRIuR44i>dlx3rbohStS0#fT#*ai{2%L{`t
-zQ^yzEI24f`?p>aymhf5O+3*K7io<hmm>P@m;JXRq&yqJBD)4g98)ycs@v~s?C?QWR
-z4f^cz9ysgXfY%cK*@|LaIK1lUc(Mg=xa+&-It<cw_^uxRbT<=%;!ir>AkRCn_S?|B
-zv*d{w4gqQs&O_dYdvY3u%fR0U;|Fo*P85frC#ECtSC!!JS(G<X(@uJXMk9*k-=dkH
-zO`^b>ziX15jhvLq@1$X^Ro`-wog~nWKl(NXK4czz@7pQr<7Bc!dTcFR2q-e8waubl
-z1w+p6%J91l^iz)lbK|~C9WsiHc6eQR2bfWXV0MRD^yC_Z0(=(-ls0?tMff;QBo6%D
-zcVXj7$g85YZ7#2d@P;p`4ng%0^4L%UA<wmKDPFMOkrJ{@T-fG!)(FgT9?X58faiR_
-zb<j?thQk}wxdC;Gt+PnK8-MeC%D@s*<7g4*axG%M%E*_HbT^LvVG1-}?#6~65+X{-
-z9EV?hW5%!6!tl%)zuxSCxG^*Rn?|+ApbHH@=<$Dk;DUCNy)LBr50G8%#v|@!j4c5p
-z@_o=O)uMlXBCoL->9(`*I5=;P?Ig&px%6hQ9QnN`|J1K>2Qj$uo_i_y>OFHHU~#W2
-z(Fdeg#2L0sTx~PcTiRZLoyZv11u>7{wb{i~ZylNKU*QiAD0h+uJ05j^3|@RcT(TOD
-zO?dnLNXcx{+=kz}KW6AD;)Ed3<M1S4a~>R7sE%uT0~r7Az8;VM(M;7;@tcr;??-J~
-zGEu^#(EzK~=IK!ZZWQ{e2Og9~-iP1!dXmZC?a8FquDG<4XVnwoee_Ysn4ADu|H-fo
-z;K+Y!CCTI?JD&Sb@8zlPEugyfpZWzVi2*gqIIxZlNIOZ5#>2|ovRe&*O_GMKp=&CA
-z2rQ!GMCm?G;`-N-P2xIoN*s_K1j|ARyCQ_7L<bnwlhe*XD)|<3)+u;dg`<8-pdk;6
-z6H2WADO={&uP6Nu{MJufX_u@gpz*Mu^{MN~2FKt2zY?xLD2nTjzl9U2;mm0i5K#9H
-zgcDgge-ThLTuiQelxS!&sg0zrnY20X_;C=^Ia|#gP1;aNXSB~wo#0F`(Rvu;4=fW!
-zP)^ehG;Oojm>D~voyW9MP}GBZK7Jg~&%6Bb=DTnA?c4W#yZgTH`}zJ*`^yK4`<=b6
-zMouTcL<p3r=QF_Afw&MLas%Hz`8Tz<T=EI6=qft8+C@M3rf6w93@AZf9J?y~;e73U
-zkBCt{(q<$<z9vTRep8U%&R<50wAlG_($Nn2(lJ3yu%muWi*5x3+M*qUX8+<PT<P)|
-z0Jt4&O7@9BiFgvCUF}@zrZ;Zo(>b@TIgM}tXu#Nl{1CwMS*-X;cb_rHfp%Vrupz7C
-z45Ec;<?Z!?J?n>H@0Yh#dgFH8l2foVj{2;wG*+~Iqwo7!|L8!Ah-mTRkZd@GTm{rO
-zl(X#TTUS6aJKS5MIhhYXdDQ}J6ZT>8ER;#g&uC~UHKFZo`p=<qF{>9pGE&R1lQs^k
-z$?Y)21;x^FZP+Fr9ypG!$A(pEza#sDd_m7O`8u{zWMyJll1&(YXLlTgvpyDX;l)#4
-zpqpOqLn%YXCsSDqKXJ*_Q<bEVnq*j;@L_bJyd=yDh!IQGTM*c9aOCk31p67pr>~xX
-z8X|Y{J5$fc!3r5l?lz||JjxFLw>|#uim>z;0R6(_8$S5YVmB*Nh$O;}*vbDswN=2l
-zXm08$Mym_>SD#Wp8^1|b@ULeQu-!XH45Prz4ocZZSWr9p)KqEq%N7Z^=^5lZ*`Vh0
-z?$~;Dy_2ly9hMeL=6rrGc6O{mTBE9Vh=dDLla|lV#NHVXRGP3SY?8J=Ol@2RJR^_4
-zF_W*(@uFzOkcD|d9-00CS43ZL(i2}{exP0C0idUCcQdxM@cb)c2id|c@zbtZQ^k?<
-z^W)5<>4FwxN(4(knu5n;1WJYWt)FHKH(sH$ce4^w0(9w!j4;y3G_{W`6YuLL9!GbL
-zEHkw7qnBvYNN##FUVksle8LwX30r*#{|(3Z`Dyy+5e+DO+2rO5S;L)eCyiv2I#k@s
-zH%@9=iTYn0ZJ4BG_bk>{E>9L#d;uwDb3#vm*S#==uU3KKPZm4}kaVfl(aPsf(nI$$
-zOb57(m~|m%2)duRL@(d7<hAl!6Phd3A=(X2nAF`KNqZc+Oz0;IRH@o57AjW|BcHyP
-zp|tY;i8i#gIR<ZI-H<eLdaF#{kzOOFfSGioo<%gGNk1k>vt;_c`<aF_{CbSK@2|(f
-z$r%0ce!iFqTRZyu>wT4GK3Iz>`e}?-K6rY5DY`g{F3@1S-ALbmkZI`R|Blg153JAJ
-z<ol<qDlk8`oz6B*d~*UAp!^U_)QO<Knce=dt?VRkpAcAglFa$*)3PuAX1vKV^B&_V
-zF<KDWBA(uR3Qu=OinA_4;*_ev-KDA(rC@V`WsbJVX?0xWznG+dio9g7^1sZ`<)i6^
-zkAxcD{IQXEW(%E)*e1Z7V8!~m=(J3l&LY+nd;C{mdUy@A^)%fzn&Cfzb$1AV)Z4iT
-zv)L&VZIw)Z2p7kG;Q)KUOj4kWs)ut)7+~MOfEt|!r1Rdda>)Z=C3B%>izI<IC+;c0
-zy+tx9ea}n+SgMcvkyHl#{u<Il!^|&A#|8_<g<?fM?;D_@{YVg8gRz)8cZ#7ue;Pvr
-zIBhEX?${#oF5d|g3VamIPsqqCH*?KNETQ3fmI@$JNGAjU=UsjTIoeFnhgp{-zrurv
-zcliz!>pZ?=dJND>#J=1?vQr$7X@7Jsb_5(3%B9gj(y>wOtO^_T<N>MBNZ%UEl#bK)
-z$ISj!gWhUcJ6D}I7y-4pvj@Fy)ZNPmBW?^X{S!=xX7gkYCMsWs4?92KC!7L4-(&Zg
-z&m&cmx3VFR|7Rk~_s&LKXjeUVP*Q->C<%Isk{eEBDmrbhjxnzXoqEQZw+6K4Axl)!
-z!j*f;O1klXDgHdH>O(9`S*brhkg8bpxdTS!N!_F@))y)yoXXx{Y05f%iBb;}Vh*kw
-z1}sXNo~^tdPG`BwYQ0c-HJr)pwPr0)d!2<qN!?Y}hes#7FSAe`_+a1zr|UmuePA!y
-zbAhQCQM2bP>+|?=qUK|!Vrb1ZCs`k8a_vW~uMV{S1E$vFe0?j6;09aG@7Xq`QBNPp
-zQMT$S80|icW}dPi?B;~uVoQ`lJwsU@wy_o9AXm}!3ee}2)bJkG8U4intiEudGkVIu
-zSx*|ctd#2~qJf4N{3Q)xg^9x-l&k<0=?>>J7n*na*Xo_o>;84|W|vF0>ho7tg-e;e
-z9t;J~2!;anFR)O(S;M}cY-4IIMp|3W`aqNG983iV&2>++kQ=OfwlKQ~cX&3k5GbiB
-zVxbz)+O>XW$3dWGHB<2pn_c<LUWa;JE>kgA&29@@#*ECw`Y;h;JSc;C(e9ipmD$m8
-zz`c+~FlDyd`ONM@-8GMeKuL8Hvsa^Doxnn%#0@WC7eNk|P4Kog!+}|-s`>n>ZY6FM
-z^5Rd8G?BQaV+gBF48Mx_5u}xK!pEb`o>U@*XZX}O^+vNOjjm7VZle9sWeM4{bU3<J
-z$YW#+rWub`<$9r5tajx_0>r8X;}ReUDnk+kHIidsHu+UvHANdA`NWDt&SS;7^Qerj
-z;RObf1eEUOJH&-PaUsmDza4KA)q@?VwvAiq7vnhzdJ~O~%a%2K!%UibZd{YflIDCR
-zHxu((UNi*(-(zl;WE=l<hCVrwW3~aX7dY&jNXBF8F`x){=bRlEjAZXRI1U`3Z%&y1
-E52KeC5&!@I
-
diff --git a/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb b/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb
index c0180eb087..d3d4e7d50a 100644
--- a/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb
+++ b/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb
@@ -25,10 +25,9 @@ NO_GENERIC_LICENSE[Firmware-cypress-rpidistro] = "LICENCE.cypress-rpidistro"
SRC_URI = " \
git://github.com/RPi-Distro/bluez-firmware;branch=master;protocol=https \
- file://31ad68831357d2019624004f1f0846475671088f.patch \
"
-SRCREV = "e7fd166981ab4bb9a36c2d1500205a078a35714d"
-PV = "1.2-4+rpt8"
+SRCREV = "9556b08ace2a1735127894642cc8ea6529c04c90"
+PV = "1.2-4+rpt10"
S = "${WORKDIR}/git"
diff --git a/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb
index 653f6e0705..095516435d 100644
--- a/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb
+++ b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb
@@ -7,19 +7,19 @@ SECTION = "kernel"
LICENSE = "GPL-2.0-only & binary-redist-Cypress-rpidistro & Synaptics-rpidistro"
LIC_FILES_CHKSUM = "\
- file://debian/config/brcm80211/copyright;md5=b0630b02d90e3da72206c909b6aecc8c \
+ file://debian/copyright;md5=03475efdcf4c53c8f2d8fb4bc1fc6965 \
"
# Where these are no common licenses, set NO_GENERIC_LICENSE so that the
# license files will be copied from the fetched source.
-NO_GENERIC_LICENSE[binary-redist-Cypress-rpidistro] = "debian/config/brcm80211/copyright"
-NO_GENERIC_LICENSE[Synaptics-rpidistro] = "debian/config/brcm80211/copyright"
+NO_GENERIC_LICENSE[binary-redist-Cypress-rpidistro] = "debian/copyright"
+NO_GENERIC_LICENSE[Synaptics-rpidistro] = "debian/copyright"
LICENSE_FLAGS = "synaptics-killswitch"
SRC_URI = "git://github.com/RPi-Distro/firmware-nonfree;branch=bullseye;protocol=https \
file://0001-Default-43455-firmware-to-standard-variant.patch \
"
-SRCREV = "541e5a05d152e7e6f0d9be45622e4a3741e51c02"
-PV = "20210315-3+rpt7"
+SRCREV = "2c3a8701193ba23d0ef85cdf0d0c9e47baf03dfc"
+PV = "20230210-5_bpo11+1"
S = "${WORKDIR}/git"
inherit allarch
@@ -30,7 +30,7 @@ do_compile[noexec] = "1"
do_install() {
install -d ${D}${nonarch_base_libdir}/firmware/brcm ${D}${nonarch_base_libdir}/firmware/cypress
- cp debian/config/brcm80211/copyright ${D}${nonarch_base_libdir}/firmware/copyright.firmware-nonfree-rpidistro
+ cp debian/copyright ${D}${nonarch_base_libdir}/firmware/copyright.firmware-nonfree-rpidistro
for fw in \
brcmfmac43430-sdio \
@@ -44,22 +44,13 @@ do_install() {
cp -R --no-dereference --preserve=mode,links -v debian/config/brcm80211/cypress/* ${D}${nonarch_base_libdir}/firmware/cypress/
rm ${D}${nonarch_base_libdir}/firmware/cypress/README.txt
-
- # add compat links. Fixes errors like
- # brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-compute-module.txt failed with error -2
- ln -s brcmfmac43455-sdio.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.txt
- # brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin failed with error -2
- ln -s brcmfmac43455-sdio.bin ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin
- # brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.bin failed with error -2
- ln -s brcmfmac43430-sdio.bin ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.bin
- # brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.bin failed with error -2
- ln -s brcmfmac43430-sdio.bin ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.bin
}
PACKAGES = "\
${PN}-bcm43430 \
${PN}-bcm43436 \
${PN}-bcm43436s \
+ ${PN}-bcm43439 \
${PN}-bcm43455 \
${PN}-bcm43456 \
${PN}-license \
@@ -68,6 +59,7 @@ PACKAGES = "\
LICENSE:${PN}-bcm43430 = "binary-redist-Cypress-rpidistro"
LICENSE:${PN}-bcm43436 = "Synaptics-rpidistro"
LICENSE:${PN}-bcm43436s = "Synaptics-rpidistro"
+LICENSE:${PN}-bcm43439 = "Synaptics-rpidistro"
LICENSE:${PN}-bcm43455 = "binary-redist-Cypress-rpidistro"
LICENSE:${PN}-bcm43456 = "Synaptics-rpidistro"
LICENSE:${PN}-license = "GPL-2.0-only"
@@ -79,6 +71,7 @@ FILES:${PN}-bcm43430 = " \
"
FILES:${PN}-bcm43436 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43436-*"
FILES:${PN}-bcm43436s = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43436s*"
+FILES:${PN}-bcm43439 = "${nonarch_base_libdir}/firmware/cypress/43439A0-7.95.49.00.combined"
FILES:${PN}-bcm43455 = " \
${nonarch_base_libdir}/firmware/brcm/brcmfmac43455* \
${nonarch_base_libdir}/firmware/cypress/cyfmac43455-sdio* \
@@ -89,18 +82,21 @@ FILES:${PN}-license = "${nonarch_base_libdir}/firmware/copyright.firmware-nonfre
RDEPENDS:${PN}-bcm43430 += "${PN}-license"
RDEPENDS:${PN}-bcm43436 += "${PN}-license"
RDEPENDS:${PN}-bcm43436s += "${PN}-license"
+RDEPENDS:${PN}-bcm43439 += "${PN}-license"
RDEPENDS:${PN}-bcm43455 += "${PN}-license"
RDEPENDS:${PN}-bcm43456 += "${PN}-license"
RCONFLICTS:${PN}-bcm43430 = "linux-firmware-raspbian-bcm43430"
RCONFLICTS:${PN}-bcm43436 = "linux-firmware-bcm43436"
RCONFLICTS:${PN}-bcm43436s = "linux-firmware-bcm43436s"
+RCONFLICTS:${PN}-bcm43439 = "linux-firmware-bcm43439"
RCONFLICTS:${PN}-bcm43455 = "linux-firmware-bcm43455"
RCONFLICTS:${PN}-bcm43456 = "linux-firmware-bcm43456"
RREPLACES:${PN}-bcm43430 = "linux-firmware-bcm43430"
RREPLACES:${PN}-bcm43436 = "linux-firmware-bcm43436"
RREPLACES:${PN}-bcm43436s = "linux-firmware-bcm43436s"
+RREPLACES:${PN}-bcm43439 = "linux-firmware-bcm43439"
RREPLACES:${PN}-bcm43455 = "linux-firmware-bcm43455"
RREPLACES:${PN}-bcm43456 = "linux-firmware-bcm43456"
diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_6.1.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_6.1.bb
index d326ca25de..b81e169b6c 100644
--- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_6.1.bb
+++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_6.1.bb
@@ -1,9 +1,9 @@
-LINUX_VERSION ?= "6.1.38"
+LINUX_VERSION ?= "6.1.54"
LINUX_RPI_BRANCH ?= "rpi-6.1.y"
LINUX_RPI_KMETA_BRANCH ?= "yocto-6.1"
-SRCREV_machine = "31dbf25138831241f31f7eee835b83a607eaa179"
-SRCREV_meta = "2eaed50911009f9ddbc74460093e17b22ef7daa0"
+SRCREV_machine = "df4d584e66a660195422ca2b7ce1d68d1181f2a2"
+SRCREV_meta = "e7488dd3776c76fb7d94cc92ae7a2216423f8ece"
KMETA = "kernel-meta"
diff --git a/meta-security/dynamic-layers/meta-python/recipes-security/mfa/python3-privacyidea_3.8.1.bb b/meta-security/dynamic-layers/meta-python/recipes-security/mfa/python3-privacyidea_3.9.bb
index aa7bafaedf..2f0ac3a7f7 100644
--- a/meta-security/dynamic-layers/meta-python/recipes-security/mfa/python3-privacyidea_3.8.1.bb
+++ b/meta-security/dynamic-layers/meta-python/recipes-security/mfa/python3-privacyidea_3.9.bb
@@ -6,7 +6,7 @@ LICENSE = "AGPL-3.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c0acfa7a8a03b718abee9135bc1a1c55"
PYPI_PACKAGE = "privacyIDEA"
-SRC_URI[sha256sum] = "e0dae763575c6300ccaebe6dcc8d3f119cb3e25c11302b1e78a96a12e8ab2b38"
+SRC_URI[sha256sum] = "1dce02789ee0a639c5518ab95e254823ca1b47aeb1aae754ec11c70d4248f38e"
inherit pypi setuptools3
diff --git a/meta-security/dynamic-layers/networking-layer/recipes-security/sssd/sssd_2.9.1.bb b/meta-security/dynamic-layers/networking-layer/recipes-security/sssd/sssd_2.9.2.bb
index 9fa9d3b0f6..d61471c4bf 100644
--- a/meta-security/dynamic-layers/networking-layer/recipes-security/sssd/sssd_2.9.1.bb
+++ b/meta-security/dynamic-layers/networking-layer/recipes-security/sssd/sssd_2.9.2.bb
@@ -26,8 +26,7 @@ SRC_URI = "https://github.com/SSSD/sssd/releases/download/${PV}/${BP}.tar.gz \
file://musl_fixup.patch \
file://0001-sssctl-add-error-analyzer.patch \
"
-
-SRC_URI[sha256sum] = "97703d38159994a869aad1c852de4582c76f189cf044f51e15ba26e1e4b75298"
+SRC_URI[sha256sum] = "827bc65d64132410e6dd3df003f04829d60387ec30e72b2d4e22d93bb6f762ba"
UPSTREAM_CHECK_URI = "https://github.com/SSSD/${BPN}/releases"
@@ -81,6 +80,7 @@ do_configure:prepend() {
}
do_compile:prepend () {
+ sed -i -e "s/__useconds_t/useconds_t/g" ${S}/src/tools/tools_mc_util.c
echo '#define NSUPDATE_PATH "${bindir}"' >> ${B}/config.h
}
do_install () {
diff --git a/meta-security/meta-tpm/recipes-tpm/swtpm/swtpm_0.8.0.bb b/meta-security/meta-tpm/recipes-tpm/swtpm/swtpm_0.8.1.bb
index da86c47062..7a538dabbd 100644
--- a/meta-security/meta-tpm/recipes-tpm/swtpm/swtpm_0.8.0.bb
+++ b/meta-security/meta-tpm/recipes-tpm/swtpm/swtpm_0.8.1.bb
@@ -6,9 +6,8 @@ SECTION = "apps"
# expect-native, socat-native, coreutils-native and net-tools-native are reportedly only required for the tests
DEPENDS = "libtasn1 coreutils-native expect-native socat-native glib-2.0 net-tools-native libtpm json-glib"
-SRCREV = "2ae7b019370760e17f4f2675195a91ca53950eda"
-SRC_URI = "git://github.com/stefanberger/swtpm.git;branch=master;protocol=https \
- "
+SRCREV = "d2849a9f5ced70438d67036693438344b47b4161"
+SRC_URI = "git://github.com/stefanberger/swtpm.git;branch=stable-0.8;protocol=https"
PE = "1"
S = "${WORKDIR}/git"
diff --git a/meta-security/meta-tpm/recipes-tpm1/hoth/libhoth_git.bb b/meta-security/meta-tpm/recipes-tpm1/hoth/libhoth_git.bb
index 0485afceb6..5c7305cefe 100644
--- a/meta-security/meta-tpm/recipes-tpm1/hoth/libhoth_git.bb
+++ b/meta-security/meta-tpm/recipes-tpm1/hoth/libhoth_git.bb
@@ -7,7 +7,7 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
SRC_URI = "git://github.com/google/libhoth;protocol=https;branch=main"
-SRCREV = "769296220dc88df33f4726aa11e39e049257b3c4"
+SRCREV = "0e3eec6937d35c602ce497444eda05f3c465b5a8"
DEPENDS += "libusb1"
diff --git a/meta-security/recipes-compliance/lynis/lynis_3.0.8.bb b/meta-security/recipes-compliance/lynis/lynis_3.0.9.bb
index 0a4981245c..8c796c0269 100644
--- a/meta-security/recipes-compliance/lynis/lynis_3.0.8.bb
+++ b/meta-security/recipes-compliance/lynis/lynis_3.0.9.bb
@@ -10,7 +10,7 @@ SRC_URI = "https://cisofy.com/files/${BPN}-${PV}.tar.gz \
file://0001-osdetection-add-OpenEmbedded-and-Poky.patch \
"
-SRC_URI[sha256sum] = "98373a4cc9d0471ab9bebb249e442fcf94b6bf6d4e9c6fc0b22bca1506646c63"
+SRC_URI[sha256sum] = "f394df7d20391fb76e975ae88f3eba1da05ac9c4945e2c7f709326e185e17025"
S = "${WORKDIR}/${BPN}"
diff --git a/meta-security/recipes-compliance/openscap/files/0003-CMakeLists.txt-make-2-variables-configurable.patch b/meta-security/recipes-compliance/openscap/files/0003-CMakeLists.txt-make-2-variables-configurable.patch
deleted file mode 100644
index 953b0d9e8e..0000000000
--- a/meta-security/recipes-compliance/openscap/files/0003-CMakeLists.txt-make-2-variables-configurable.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From f99c3f1f516a84d33794f8e3da59adea1a12ef54 Mon Sep 17 00:00:00 2001
-From: Kai Kang <kai.kang@windriver.com>
-Date: Tue, 20 Jun 2023 22:42:51 +0800
-Subject: [PATCH] CMakeLists.txt: make 2 variables configurable
-
-Variables PREFERRED_PYTHON_PATH and PYTHON3_PATH are set with
-${PYTHON_EXECUTABLE}. For cross compile, ${PYTHON_EXECUTABLE} may point
-to other path rather than standard dir such as /usr/bin. Then the
-generated library file contains such path which should NOT. Update to
-make variables PREFERRED_PYTHON_PATH and PYTHON3_PATH configurable to
-avoid such issue.
-
-Upstream-Status: Submitted [https://github.com/OpenSCAP/openscap/pull/1990]
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
- CMakeLists.txt | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 5db014e77..74628cdd4 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -125,8 +125,8 @@ endif()
- find_package(PythonInterp 3)
- find_package(PythonLibs 3)
-
--set(PREFERRED_PYTHON_PATH "${PYTHON_EXECUTABLE}")
--set(PYTHON3_PATH "${PYTHON_EXECUTABLE}")
-+set(PREFERRED_PYTHON_PATH "${PYTHON_EXECUTABLE}" CACHE PATH "Path to preferred Python")
-+set(PYTHON3_PATH "${PYTHON_EXECUTABLE}" CACHE PATH "Path to Python3")
-
- find_package(RPM)
- if(RPM_FOUND)
---
-2.34.1
-
diff --git a/meta-security/recipes-compliance/openscap/openscap_1.3.8.bb b/meta-security/recipes-compliance/openscap/openscap_1.3.9.bb
index 5abd5a69a8..97261df0c5 100644
--- a/meta-security/recipes-compliance/openscap/openscap_1.3.8.bb
+++ b/meta-security/recipes-compliance/openscap/openscap_1.3.9.bb
@@ -10,10 +10,8 @@ DEPENDS = "dbus acl bzip2 pkgconfig gconf procps curl libxml2 libxslt libcap swi
DEPENDS:class-native = "pkgconfig-native swig-native curl-native libxml2-native libxslt-native libcap-native libpcre-native xmlsec1-native"
#Jun 22th, 2023
-SRCREV = "a81c66d9bc36612dd1ca83a8c959a59e172eb4b9"
-SRC_URI = "git://github.com/OpenSCAP/openscap.git;branch=maint-1.3;protocol=https \
- file://0003-CMakeLists.txt-make-2-variables-configurable.patch \
- "
+SRCREV = "9b3e7563575f7e5b419f8a09999b40f30e3e7c29"
+SRC_URI = "git://github.com/OpenSCAP/openscap.git;branch=maint-1.3;protocol=https"
S = "${WORKDIR}/git"
diff --git a/meta-security/recipes-compliance/scap-security-guide/files/0002-scap-security-guide-Add-Poky-support.patch b/meta-security/recipes-compliance/scap-security-guide/files/0002-scap-security-guide-Add-Poky-support.patch
deleted file mode 100644
index 1639264136..0000000000
--- a/meta-security/recipes-compliance/scap-security-guide/files/0002-scap-security-guide-Add-Poky-support.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 2be977a60c944a54594d5786b2d8869ed72a9a06 Mon Sep 17 00:00:00 2001
-From: Armin Kuster <akuster808@gmail.com>
-Date: Wed, 5 Jul 2023 12:57:52 -0400
-Subject: [PATCH 2/2] scap-security-guide: Add Poky support
-
-Signed-off-by: Armin Kuster <akuster808@gmail.com>
-
-Upstream-Status: Pending
-Waiting to see if OE changes get merged.
-Signed-off-by: Armin Kuster <akuster808@gmail.com>
-
-
----
- products/openembedded/product.yml | 6 ++++
- shared/checks/oval/installed_OS_is_poky.xml | 33 +++++++++++++++++++++
- 2 files changed, 39 insertions(+)
- create mode 100644 shared/checks/oval/installed_OS_is_poky.xml
-
-diff --git a/products/openembedded/product.yml b/products/openembedded/product.yml
-index debf6870ef..d63479d5d3 100644
---- a/products/openembedded/product.yml
-+++ b/products/openembedded/product.yml
-@@ -17,3 +17,9 @@ cpes:
- name: "cpe:/o:openembedded:nodistro:"
- title: "OpenEmbedded nodistro"
- check_id: installed_OS_is_openembedded
-+
-+ - poky:
-+ name: "cpe:/o:openembedded:poky:"
-+ title: "OpenEmbedded Poky reference distribution"
-+ check_id: installed_OS_is_poky
-+
-diff --git a/shared/checks/oval/installed_OS_is_poky.xml b/shared/checks/oval/installed_OS_is_poky.xml
-new file mode 100644
-index 0000000000..b8805cf31b
---- /dev/null
-+++ b/shared/checks/oval/installed_OS_is_poky.xml
-@@ -0,0 +1,33 @@
-+<def-group>
-+ <definition class="inventory" id="installed_OS_is_poky" version="1">
-+ <metadata>
-+ <title>Poky</title>
-+ <affected family="unix">
-+ <platform>multi_platform_all</platform>
-+ </affected>
-+ <description>The operating system installed is a Poky based System</description>
-+ </metadata>
-+ <criteria comment="System is Poky based distribution" operator="AND">
-+ <extend_definition comment="Installed OS is part of the Unix family" definition_ref="installed_OS_is_part_of_Unix_family" />
-+ <criterion comment="Poky based distro" test_ref="test_os_poky" />
-+ <criterion comment="Poky based distribution is installed" test_ref="test_poky" />
-+ </criteria>
-+ </definition>
-+
-+ <unix:file_test check="all" check_existence="all_exist" comment="/etc/os-release exists" id="test_os_poky" version="1">
-+ <unix:object object_ref="obj_os_poky" />
-+ </unix:file_test>
-+ <unix:file_object comment="check /etc/os-release file" id="obj_os_poky" version="1">
-+ <unix:filepath>/etc/os-release</unix:filepath>
-+ </unix:file_object>
-+
-+ <ind:textfilecontent54_test check="all" check_existence="at_least_one_exists" comment="Check OpenEmbedded" id="test_poky" version="1">
-+ <ind:object object_ref="obj_poky" />
-+ </ind:textfilecontent54_test>
-+ <ind:textfilecontent54_object id="obj_poky" version="1" comment="Check Poky">
-+ <ind:filepath>/etc/os-release</ind:filepath>
-+ <ind:pattern operation="pattern match">^ID=poky$</ind:pattern>
-+ <ind:instance datatype="int">1</ind:instance>
-+ </ind:textfilecontent54_object>
-+
-+</def-group>
---
-2.34.1
-
diff --git a/meta-security/recipes-compliance/scap-security-guide/scap-security-guide_0.1.69.bb b/meta-security/recipes-compliance/scap-security-guide/scap-security-guide_0.1.69.bb
index ac839dee44..23637a5271 100644
--- a/meta-security/recipes-compliance/scap-security-guide/scap-security-guide_0.1.69.bb
+++ b/meta-security/recipes-compliance/scap-security-guide/scap-security-guide_0.1.69.bb
@@ -6,11 +6,10 @@ HOME_URL = "https://www.open-scap.org/security-policies/scap-security-guide/"
LIC_FILES_CHKSUM = "file://LICENSE;md5=9bfa86579213cb4c6adaffface6b2820"
LICENSE = "BSD-3-Clause"
-SRCREV = "d09e81ae00509a9be4b01359166cfbece06e47f4"
+SRCREV = "da283b9a360f2f42ad642c0c9b08b061501bc667"
SRC_URI = "git://github.com/ComplianceAsCode/content.git;branch=master;protocol=https \
file://run_eval.sh \
file://run-ptest \
- file://0002-scap-security-guide-Add-Poky-support.patch \
"
diff --git a/meta-security/recipes-ids/suricata/files/fixup.patch b/meta-security/recipes-ids/suricata/files/fixup.patch
index 4646aa9a12..0b2ae7c20d 100644
--- a/meta-security/recipes-ids/suricata/files/fixup.patch
+++ b/meta-security/recipes-ids/suricata/files/fixup.patch
@@ -4,27 +4,27 @@ Upstream-Status: Inappropriate [OE Specific]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
-Index: suricata-6.0.2/Makefile.am
+Index: suricata-7.0.0/Makefile.in
===================================================================
---- suricata-6.0.2.orig/Makefile.am
-+++ suricata-6.0.2/Makefile.am
-@@ -7,7 +7,7 @@ EXTRA_DIST = ChangeLog COPYING LICENSE s
- $(SURICATA_UPDATE_DIR) \
- lua \
- acsite.m4
+--- suricata-7.0.0.orig/Makefile.in
++++ suricata-7.0.0/Makefile.in
+@@ -424,7 +424,7 @@ EXTRA_DIST = ChangeLog COPYING LICENSE s
+ acsite.m4 \
+ scripts/generate-images.sh
+
-SUBDIRS = $(HTP_DIR) rust src qa rules doc contrib etc python ebpf \
+SUBDIRS = $(HTP_DIR) src qa rules doc contrib etc python ebpf \
$(SURICATA_UPDATE_DIR)
CLEANFILES = stamp-h[0-9]*
-Index: suricata-6.0.2/Makefile.in
+Index: suricata-7.0.0/Makefile.am
===================================================================
---- suricata-6.0.2.orig/Makefile.in
-+++ suricata-6.0.2/Makefile.in
-@@ -426,7 +426,7 @@ EXTRA_DIST = ChangeLog COPYING LICENSE s
+--- suricata-7.0.0.orig/Makefile.am
++++ suricata-7.0.0/Makefile.am
+@@ -8,7 +8,7 @@ EXTRA_DIST = ChangeLog COPYING LICENSE s
lua \
- acsite.m4
-
+ acsite.m4 \
+ scripts/generate-images.sh
-SUBDIRS = $(HTP_DIR) rust src qa rules doc contrib etc python ebpf \
+SUBDIRS = $(HTP_DIR) src qa rules doc contrib etc python ebpf \
$(SURICATA_UPDATE_DIR)
diff --git a/meta-security/recipes-ids/suricata/libhtp_0.5.43.bb b/meta-security/recipes-ids/suricata/libhtp_0.5.45.bb
index 582541958b..cc8285ccbe 100644
--- a/meta-security/recipes-ids/suricata/libhtp_0.5.43.bb
+++ b/meta-security/recipes-ids/suricata/libhtp_0.5.45.bb
@@ -5,7 +5,7 @@ require suricata.inc
LIC_FILES_CHKSUM = "file://LICENSE;beginline=1;endline=2;md5=596ab7963a1a0e5198e5a1c4aa621843"
SRC_URI = "git://github.com/OISF/libhtp.git;protocol=https;branch=0.5.x"
-SRCREV = "be0063a6138f795fc1af76cc5340bcb11d3b0b87"
+SRCREV = "8bdfe7b9d04e5e948c8fbaa7472e14d884cc00af"
DEPENDS = "zlib"
diff --git a/meta-security/recipes-ids/suricata/suricata-crates.inc b/meta-security/recipes-ids/suricata/suricata-crates.inc
index 535f53c17d..386d8d1c31 100644
--- a/meta-security/recipes-ids/suricata/suricata-crates.inc
+++ b/meta-security/recipes-ids/suricata/suricata-crates.inc
@@ -1,295 +1,759 @@
-# ak did manually
+# Autogenerated with 'bitbake -c update_crates suricata'
+
+# from rust/Cargo.lock
SRC_URI += " \
- crate://crates.io/autocfg/1.0.1;name=autocfg-1.0.1 \
- crate://crates.io/brotli/3.3.0;name=brotli-3.0.3 \
- crate://crates.io/crc/1.8.1;name=crc-1.8.1 \
- crate://crates.io/der-parser/0.5.0;name=der-parser-0.5.0 \
- crate://crates.io/der-parser/4.1.0;name=der-parser-4.1.0 \
- crate://crates.io/der-parser/3.0.4;name=der-parser-3.0.4 \
- crate://crates.io/flate2/1.0.20;name=flate2-1.0.20 \
- crate://crates.io/ipsec-parser/0.5.0;name=ipsec-parser-0.5.0 \
- crate://crates.io/kerberos-parser/0.5.0;name=kerberos-parser-0.5.0 \
- crate://crates.io/md5/0.7.0;name=md5-0.7.0 \
- crate://crates.io/memchr/2.3.4;name=memchr-2.3.4 \
- crate://crates.io/nom/5.1.1;name=nom-5.1.1 \
- crate://crates.io/ntp-parser/0.4.0;name=ntp-parser-0.5.0 \
- crate://crates.io/num/0.2.1;name=num-0.2.1 \
- crate://crates.io/num-derive/0.2.5;name=num-derive-0.2.5 \
- crate://crates.io/snmp-parser/0.6.0;name=snmp-parser-0.6.0 \
- crate://crates.io/tls-parser/0.9.4;name=tls-parser-0.9.4 \
- crate://crates.io/uuid/0.8.2;name=uuid-0.8.2 \
- crate://crates.io/widestring/0.4.3;name=widestring-0.4.3 \
- crate://crates.io/x509-parser/0.6.5;name=x509-parser-0.6.5 \
- crate://crates.io/build_const/0.2.1;name=build_const-0.2.1 \
- crate://crates.io/der-oid-macro/0.2.0;name=der-oid-macro-0.2.0 \
- crate://crates.io/proc-macro-hack/0.5.19;name=proc-macro-hack-0.5.19 \
- crate://crates.io/rusticata-macros/2.1.0;name=rusticata-macros-2.1.0 \
- crate://crates.io/miniz_oxide/0.4.4;name=miniz_oxide-0.4.4 \
- crate://crates.io/num-bigint/0.2.6;name=num-bigint-0.2.6 \
- crate://crates.io/num-bigint/0.3.1;name=num-bigint-0.3.1 \
- crate://crates.io/num-complex/0.2.4;name=num-complex-0.2.4 \
- crate://crates.io/num-integer/0.1.44;name=num-integer-0.1.44 \
- crate://crates.io/num-iter/0.1.42;name=num-iter-0.1.42 \
- crate://crates.io/num-rational/0.2.4;name=num-rational-0.2.4 \
- crate://crates.io/num-traits/0.2.14;name=num-traits-0.2.14 \
- crate://crates.io/num-traits/0.1.43;name=num-traits-0.1.43 \
- crate://crates.io/enum_primitive/0.1.1;name=enum_primitive-0.1.1 \
- crate://crates.io/phf/0.8.0;name=phf-0.8.0 \
- crate://crates.io/phf_codegen/0.8.0;name=phf_codegen-0.8.0 \
- crate://crates.io/phf_generator/0.8.0;name=phf_generator-0.8.0 \
- crate://crates.io/base64/0.11.0;name=base64-0.11.0 \
- crate://crates.io/time/0.1.44;name=time-0.1.44 \
- crate://crates.io/wasi/0.10.0+wasi-snapshot-preview1;name=wasi-0.10.0+wasi-snapshot-preview1 \
- crate://crates.io/lexical-core/0.6.8;name=lexical-core-0.6.8 \
+ crate://crates.io/adler/1.0.2 \
+ crate://crates.io/aead/0.4.3 \
+ crate://crates.io/aes/0.7.5 \
+ crate://crates.io/aes-gcm/0.9.4 \
+ crate://crates.io/aho-corasick/0.7.20 \
+ crate://crates.io/alloc-no-stdlib/2.0.4 \
+ crate://crates.io/alloc-stdlib/0.2.2 \
+ crate://crates.io/asn1-rs/0.5.2 \
+ crate://crates.io/asn1-rs-derive/0.4.0 \
+ crate://crates.io/asn1-rs-impl/0.1.0 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/base64/0.13.1 \
+ crate://crates.io/bendy/0.3.3 \
+ crate://crates.io/bitflags/1.2.1 \
+ crate://crates.io/block-buffer/0.10.4 \
+ crate://crates.io/brotli/3.3.4 \
+ crate://crates.io/brotli-decompressor/2.3.4 \
+ crate://crates.io/build_const/0.2.2 \
+ crate://crates.io/byteorder/1.4.3 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/cipher/0.3.0 \
+ crate://crates.io/cpufeatures/0.2.9 \
+ crate://crates.io/crc/1.8.1 \
+ crate://crates.io/crc32fast/1.3.2 \
+ crate://crates.io/crypto-common/0.1.6 \
+ crate://crates.io/ctr/0.8.0 \
+ crate://crates.io/data-encoding/2.4.0 \
+ crate://crates.io/der-oid-macro/0.5.0 \
+ crate://crates.io/der-parser/6.0.1 \
+ crate://crates.io/der-parser/8.2.0 \
+ crate://crates.io/digest/0.10.7 \
+ crate://crates.io/displaydoc/0.2.4 \
+ crate://crates.io/enum_primitive/0.1.1 \
+ crate://crates.io/failure/0.1.8 \
+ crate://crates.io/failure_derive/0.1.8 \
+ crate://crates.io/flate2/1.0.26 \
+ crate://crates.io/generic-array/0.14.7 \
+ crate://crates.io/getrandom/0.2.10 \
+ crate://crates.io/ghash/0.4.4 \
+ crate://crates.io/hex/0.4.3 \
+ crate://crates.io/hkdf/0.12.3 \
+ crate://crates.io/hmac/0.12.1 \
+ crate://crates.io/ipsec-parser/0.7.0 \
+ crate://crates.io/itoa/1.0.8 \
+ crate://crates.io/kerberos-parser/0.7.1 \
+ crate://crates.io/lazy_static/1.4.0 \
+ crate://crates.io/libc/0.2.147 \
+ crate://crates.io/lzma-rs/0.2.0 \
+ crate://crates.io/md-5/0.10.5 \
+ crate://crates.io/memchr/2.4.1 \
+ crate://crates.io/minimal-lexical/0.2.1 \
+ crate://crates.io/miniz_oxide/0.7.1 \
+ crate://crates.io/nom/7.1.3 \
+ crate://crates.io/nom-derive/0.10.1 \
+ crate://crates.io/nom-derive-impl/0.10.1 \
+ crate://crates.io/ntp-parser/0.6.0 \
+ crate://crates.io/num/0.2.1 \
+ crate://crates.io/num-bigint/0.2.6 \
+ crate://crates.io/num-bigint/0.4.3 \
+ crate://crates.io/num-complex/0.2.4 \
+ crate://crates.io/num-derive/0.2.5 \
+ crate://crates.io/num-integer/0.1.45 \
+ crate://crates.io/num-iter/0.1.43 \
+ crate://crates.io/num-rational/0.2.4 \
+ crate://crates.io/num-traits/0.1.43 \
+ crate://crates.io/num-traits/0.2.15 \
+ crate://crates.io/num_enum/0.5.11 \
+ crate://crates.io/num_enum_derive/0.5.11 \
+ crate://crates.io/num_threads/0.1.6 \
+ crate://crates.io/oid-registry/0.6.1 \
+ crate://crates.io/opaque-debug/0.3.0 \
+ crate://crates.io/phf/0.10.1 \
+ crate://crates.io/phf_codegen/0.10.0 \
+ crate://crates.io/phf_generator/0.10.0 \
+ crate://crates.io/phf_shared/0.10.0 \
+ crate://crates.io/polyval/0.5.3 \
+ crate://crates.io/ppv-lite86/0.2.17 \
+ crate://crates.io/proc-macro-crate/1.1.0 \
+ crate://crates.io/proc-macro2/0.4.30 \
+ crate://crates.io/proc-macro2/1.0.64 \
+ crate://crates.io/quote/0.6.13 \
+ crate://crates.io/quote/1.0.29 \
+ crate://crates.io/rand/0.8.5 \
+ crate://crates.io/rand_chacha/0.3.1 \
+ crate://crates.io/rand_core/0.6.4 \
+ crate://crates.io/regex/1.5.6 \
+ crate://crates.io/regex-syntax/0.6.29 \
+ crate://crates.io/rusticata-macros/4.1.0 \
+ crate://crates.io/rustversion/1.0.13 \
+ crate://crates.io/sawp/0.12.1 \
+ crate://crates.io/sawp-flags/0.12.1 \
+ crate://crates.io/sawp-flags-derive/0.12.1 \
+ crate://crates.io/sawp-modbus/0.12.1 \
+ crate://crates.io/serde/1.0.171 \
+ crate://crates.io/sha1/0.10.5 \
+ crate://crates.io/sha2/0.10.7 \
+ crate://crates.io/siphasher/0.3.10 \
+ crate://crates.io/snmp-parser/0.9.0 \
+ crate://crates.io/subtle/2.4.1 \
+ crate://crates.io/syn/0.15.44 \
+ crate://crates.io/syn/1.0.109 \
+ crate://crates.io/syn/2.0.25 \
+ crate://crates.io/synstructure/0.12.6 \
+ crate://crates.io/test-case/1.1.0 \
+ crate://crates.io/thiserror/1.0.43 \
+ crate://crates.io/thiserror-impl/1.0.43 \
+ crate://crates.io/time/0.3.13 \
+ crate://crates.io/time-macros/0.2.4 \
+ crate://crates.io/tls-parser/0.11.0 \
+ crate://crates.io/toml/0.5.11 \
+ crate://crates.io/typenum/1.16.0 \
+ crate://crates.io/unicode-ident/1.0.10 \
+ crate://crates.io/unicode-xid/0.1.0 \
+ crate://crates.io/unicode-xid/0.2.4 \
+ crate://crates.io/universal-hash/0.4.1 \
+ crate://crates.io/uuid/0.8.2 \
+ crate://crates.io/version_check/0.9.4 \
+ crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
+ crate://crates.io/widestring/0.4.3 \
+ crate://crates.io/x509-parser/0.15.0 \
"
-# test case support
+SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+SRC_URI[aead-0.4.3.sha256sum] = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877"
+SRC_URI[aes-0.7.5.sha256sum] = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8"
+SRC_URI[aes-gcm-0.9.4.sha256sum] = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6"
+SRC_URI[aho-corasick-0.7.20.sha256sum] = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+SRC_URI[alloc-no-stdlib-2.0.4.sha256sum] = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
+SRC_URI[alloc-stdlib-0.2.2.sha256sum] = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
+SRC_URI[asn1-rs-0.5.2.sha256sum] = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0"
+SRC_URI[asn1-rs-derive-0.4.0.sha256sum] = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c"
+SRC_URI[asn1-rs-impl-0.1.0.sha256sum] = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[base64-0.13.1.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+SRC_URI[bendy-0.3.3.sha256sum] = "8133e404c8bec821e531f347dab1247bf64f60882826e7228f8ffeb33a35a658"
+SRC_URI[bitflags-1.2.1.sha256sum] = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+SRC_URI[brotli-3.3.4.sha256sum] = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68"
+SRC_URI[brotli-decompressor-2.3.4.sha256sum] = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744"
+SRC_URI[build_const-0.2.2.sha256sum] = "b4ae4235e6dac0694637c763029ecea1a2ec9e4e06ec2729bd21ba4d9c863eb7"
+SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[cipher-0.3.0.sha256sum] = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7"
+SRC_URI[cpufeatures-0.2.9.sha256sum] = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+SRC_URI[crc-1.8.1.sha256sum] = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb"
+SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+SRC_URI[ctr-0.8.0.sha256sum] = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea"
+SRC_URI[data-encoding-2.4.0.sha256sum] = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
+SRC_URI[der-oid-macro-0.5.0.sha256sum] = "c73af209b6a5dc8ca7cbaba720732304792cddc933cfea3d74509c2b1ef2f436"
+SRC_URI[der-parser-6.0.1.sha256sum] = "4cddf120f700b411b2b02ebeb7f04dc0b7c8835909a6c2f52bf72ed0dd3433b2"
+SRC_URI[der-parser-8.2.0.sha256sum] = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e"
+SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+SRC_URI[displaydoc-0.2.4.sha256sum] = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
+SRC_URI[enum_primitive-0.1.1.sha256sum] = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180"
+SRC_URI[failure-0.1.8.sha256sum] = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
+SRC_URI[failure_derive-0.1.8.sha256sum] = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
+SRC_URI[flate2-1.0.26.sha256sum] = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
+SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+SRC_URI[getrandom-0.2.10.sha256sum] = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+SRC_URI[ghash-0.4.4.sha256sum] = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99"
+SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+SRC_URI[hkdf-0.12.3.sha256sum] = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"
+SRC_URI[hmac-0.12.1.sha256sum] = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+SRC_URI[ipsec-parser-0.7.0.sha256sum] = "2cf8413e5de78bcbc51880ff71f4b64105719abe6efb8b4b877d3c7dc494ddd1"
+SRC_URI[itoa-1.0.8.sha256sum] = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a"
+SRC_URI[kerberos-parser-0.7.1.sha256sum] = "c10e7cfd4759cbce37ea65e2f48caebd695c246196a38e97ba4f731da48996da"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+SRC_URI[lzma-rs-0.2.0.sha256sum] = "aba8ecb0450dfabce4ad72085eed0a75dffe8f21f7ada05638564ea9db2d7fb1"
+SRC_URI[md-5-0.10.5.sha256sum] = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca"
+SRC_URI[memchr-2.4.1.sha256sum] = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[miniz_oxide-0.7.1.sha256sum] = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+SRC_URI[nom-derive-0.10.1.sha256sum] = "1ff943d68b88d0b87a6e0d58615e8fa07f9fd5a1319fa0a72efc1f62275c79a7"
+SRC_URI[nom-derive-impl-0.10.1.sha256sum] = "cd0b9a93a84b0d3ec3e70e02d332dc33ac6dfac9cde63e17fcb77172dededa62"
+SRC_URI[ntp-parser-0.6.0.sha256sum] = "76084be9bf432d487336dd4e39b31ad93f94aecb14b81f08724f4a37b9abb7a5"
+SRC_URI[num-0.2.1.sha256sum] = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36"
+SRC_URI[num-bigint-0.2.6.sha256sum] = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"
+SRC_URI[num-bigint-0.4.3.sha256sum] = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+SRC_URI[num-complex-0.2.4.sha256sum] = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95"
+SRC_URI[num-derive-0.2.5.sha256sum] = "eafd0b45c5537c3ba526f79d3e75120036502bebacbb3f3220914067ce39dbf2"
+SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+SRC_URI[num-iter-0.1.43.sha256sum] = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+SRC_URI[num-rational-0.2.4.sha256sum] = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
+SRC_URI[num-traits-0.1.43.sha256sum] = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
+SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+SRC_URI[num_enum-0.5.11.sha256sum] = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9"
+SRC_URI[num_enum_derive-0.5.11.sha256sum] = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
+SRC_URI[num_threads-0.1.6.sha256sum] = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+SRC_URI[oid-registry-0.6.1.sha256sum] = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff"
+SRC_URI[opaque-debug-0.3.0.sha256sum] = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+SRC_URI[phf-0.10.1.sha256sum] = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
+SRC_URI[phf_codegen-0.10.0.sha256sum] = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
+SRC_URI[phf_generator-0.10.0.sha256sum] = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
+SRC_URI[phf_shared-0.10.0.sha256sum] = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+SRC_URI[polyval-0.5.3.sha256sum] = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1"
+SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+SRC_URI[proc-macro-crate-1.1.0.sha256sum] = "1ebace6889caf889b4d3f76becee12e90353f2b8c7d875534a71e5742f8f6f83"
+SRC_URI[proc-macro2-0.4.30.sha256sum] = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
+SRC_URI[proc-macro2-1.0.64.sha256sum] = "78803b62cbf1f46fde80d7c0e803111524b9877184cfe7c3033659490ac7a7da"
+SRC_URI[quote-0.6.13.sha256sum] = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
+SRC_URI[quote-1.0.29.sha256sum] = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[regex-1.5.6.sha256sum] = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1"
+SRC_URI[regex-syntax-0.6.29.sha256sum] = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+SRC_URI[rusticata-macros-4.1.0.sha256sum] = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632"
+SRC_URI[rustversion-1.0.13.sha256sum] = "dc31bd9b61a32c31f9650d18add92aa83a49ba979c143eefd27fe7177b05bd5f"
+SRC_URI[sawp-0.12.1.sha256sum] = "7e74f84d736420afcba72f689a494d275c97cf4775c3fe248f937e9d3bf83e30"
+SRC_URI[sawp-flags-0.12.1.sha256sum] = "1f2b22023d224b5314d51e53bfb2dbca53dc2cf90a4435aa4feb78172799dad0"
+SRC_URI[sawp-flags-derive-0.12.1.sha256sum] = "49a585d3c22887d23bb06dd602b8ce96c2a716e1fa89beec8bfb49e466f2d643"
+SRC_URI[sawp-modbus-0.12.1.sha256sum] = "2cbad9b003999a0f3016fb3603da113ff86f06279ccf6aacb577058168c0568d"
+SRC_URI[serde-1.0.171.sha256sum] = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9"
+SRC_URI[sha1-0.10.5.sha256sum] = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
+SRC_URI[sha2-0.10.7.sha256sum] = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+SRC_URI[siphasher-0.3.10.sha256sum] = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+SRC_URI[snmp-parser-0.9.0.sha256sum] = "773a26ad6742636f4259e7cc32262efb31feabd56bc34f0b2f28de9801aa24b3"
+SRC_URI[subtle-2.4.1.sha256sum] = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+SRC_URI[syn-0.15.44.sha256sum] = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[syn-2.0.25.sha256sum] = "15e3fc8c0c74267e2df136e5e5fb656a464158aa57624053375eb9c8c6e25ae2"
+SRC_URI[synstructure-0.12.6.sha256sum] = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
+SRC_URI[test-case-1.1.0.sha256sum] = "956044ef122917dde830c19dec5f76d0670329fde4104836d62ebcb14f4865f1"
+SRC_URI[thiserror-1.0.43.sha256sum] = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42"
+SRC_URI[thiserror-impl-1.0.43.sha256sum] = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f"
+SRC_URI[time-0.3.13.sha256sum] = "db76ff9fa4b1458b3c7f077f3ff9887394058460d21e634355b273aaf11eea45"
+SRC_URI[time-macros-0.2.4.sha256sum] = "42657b1a6f4d817cda8e7a0ace261fe0cc946cf3a80314390b22cc61ae080792"
+SRC_URI[tls-parser-0.11.0.sha256sum] = "409206e2de64edbf7ea99a44ac31680daf9ef1a57895fb3c5bd738a903691be0"
+SRC_URI[toml-0.5.11.sha256sum] = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+SRC_URI[typenum-1.16.0.sha256sum] = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+SRC_URI[unicode-ident-1.0.10.sha256sum] = "22049a19f4a68748a168c0fc439f9516686aa045927ff767eca0a85101fb6e73"
+SRC_URI[unicode-xid-0.1.0.sha256sum] = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+SRC_URI[unicode-xid-0.2.4.sha256sum] = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+SRC_URI[universal-hash-0.4.1.sha256sum] = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05"
+SRC_URI[uuid-0.8.2.sha256sum] = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[widestring-0.4.3.sha256sum] = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c"
+SRC_URI[x509-parser-0.15.0.sha256sum] = "bab0c2f54ae1d92f4fcb99c0b7ccf0b1e3451cbd395e5f115ccbdbcb18d4f634"
+# from rust/vendor/base64/Cargo.lock
SRC_URI += " \
- crate://crates.io/test-case/1.0.1;name=test-case-1.0.1 \
+ crate://crates.io/ansi_term/0.12.1 \
+ crate://crates.io/atty/0.2.14 \
+ crate://crates.io/autocfg/0.1.8 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/bstr/0.2.17 \
+ crate://crates.io/bumpalo/3.11.1 \
+ crate://crates.io/cast/0.2.7 \
+ crate://crates.io/cast/0.3.0 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/clap/2.34.0 \
+ crate://crates.io/cloudabi/0.0.3 \
+ crate://crates.io/criterion/0.3.2 \
+ crate://crates.io/criterion-plot/0.4.5 \
+ crate://crates.io/crossbeam-channel/0.5.6 \
+ crate://crates.io/crossbeam-deque/0.8.2 \
+ crate://crates.io/crossbeam-epoch/0.9.11 \
+ crate://crates.io/crossbeam-utils/0.8.12 \
+ crate://crates.io/csv/1.1.6 \
+ crate://crates.io/csv-core/0.1.10 \
+ crate://crates.io/either/1.8.0 \
+ crate://crates.io/fuchsia-cprng/0.1.1 \
+ crate://crates.io/heck/0.3.3 \
+ crate://crates.io/hermit-abi/0.1.19 \
+ crate://crates.io/itertools/0.9.0 \
+ crate://crates.io/itertools/0.10.5 \
+ crate://crates.io/itoa/0.4.8 \
+ crate://crates.io/itoa/1.0.4 \
+ crate://crates.io/js-sys/0.3.60 \
+ crate://crates.io/lazy_static/1.4.0 \
+ crate://crates.io/libc/0.2.135 \
+ crate://crates.io/log/0.4.17 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/memoffset/0.6.5 \
+ crate://crates.io/num-traits/0.2.15 \
+ crate://crates.io/num_cpus/1.13.1 \
+ crate://crates.io/once_cell/1.15.0 \
+ crate://crates.io/oorandom/11.1.3 \
+ crate://crates.io/plotters/0.2.15 \
+ crate://crates.io/proc-macro-error/1.0.4 \
+ crate://crates.io/proc-macro-error-attr/1.0.4 \
+ crate://crates.io/proc-macro2/1.0.47 \
+ crate://crates.io/quote/1.0.21 \
+ crate://crates.io/rand/0.6.5 \
+ crate://crates.io/rand_chacha/0.1.1 \
+ crate://crates.io/rand_core/0.3.1 \
+ crate://crates.io/rand_core/0.4.2 \
+ crate://crates.io/rand_hc/0.1.0 \
+ crate://crates.io/rand_isaac/0.1.1 \
+ crate://crates.io/rand_jitter/0.1.4 \
+ crate://crates.io/rand_os/0.1.3 \
+ crate://crates.io/rand_pcg/0.1.2 \
+ crate://crates.io/rand_xorshift/0.1.1 \
+ crate://crates.io/rayon/1.5.3 \
+ crate://crates.io/rayon-core/1.9.3 \
+ crate://crates.io/rdrand/0.4.0 \
+ crate://crates.io/regex/1.6.0 \
+ crate://crates.io/regex-automata/0.1.10 \
+ crate://crates.io/regex-syntax/0.6.27 \
+ crate://crates.io/rustc_version/0.4.0 \
+ crate://crates.io/ryu/1.0.11 \
+ crate://crates.io/same-file/1.0.6 \
+ crate://crates.io/scopeguard/1.1.0 \
+ crate://crates.io/semver/1.0.14 \
+ crate://crates.io/serde/1.0.146 \
+ crate://crates.io/serde_derive/1.0.146 \
+ crate://crates.io/serde_json/1.0.87 \
+ crate://crates.io/strsim/0.8.0 \
+ crate://crates.io/structopt/0.3.26 \
+ crate://crates.io/structopt-derive/0.4.18 \
+ crate://crates.io/syn/1.0.103 \
+ crate://crates.io/textwrap/0.11.0 \
+ crate://crates.io/tinytemplate/1.2.1 \
+ crate://crates.io/unicode-ident/1.0.5 \
+ crate://crates.io/unicode-segmentation/1.10.0 \
+ crate://crates.io/unicode-width/0.1.10 \
+ crate://crates.io/vec_map/0.8.2 \
+ crate://crates.io/version_check/0.9.4 \
+ crate://crates.io/walkdir/2.3.2 \
+ crate://crates.io/wasm-bindgen/0.2.83 \
+ crate://crates.io/wasm-bindgen-backend/0.2.83 \
+ crate://crates.io/wasm-bindgen-macro/0.2.83 \
+ crate://crates.io/wasm-bindgen-macro-support/0.2.83 \
+ crate://crates.io/wasm-bindgen-shared/0.2.83 \
+ crate://crates.io/web-sys/0.3.60 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
"
-# Autogenerated with 'bitbake -c update_crates suricata'
-# from vendor/base64/Cargo.lock
+SRC_URI[ansi_term-0.12.1.sha256sum] = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+SRC_URI[autocfg-0.1.8.sha256sum] = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bstr-0.2.17.sha256sum] = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
+SRC_URI[bumpalo-3.11.1.sha256sum] = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
+SRC_URI[cast-0.2.7.sha256sum] = "4c24dab4283a142afa2fdca129b80ad2c6284e073930f964c3a1293c225ee39a"
+SRC_URI[cast-0.3.0.sha256sum] = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clap-2.34.0.sha256sum] = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+SRC_URI[cloudabi-0.0.3.sha256sum] = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+SRC_URI[criterion-0.3.2.sha256sum] = "63f696897c88b57f4ffe3c69d8e1a0613c7d0e6c4833363c8560fbde9c47b966"
+SRC_URI[criterion-plot-0.4.5.sha256sum] = "2673cc8207403546f45f5fd319a974b1e6983ad1a3ee7e6041650013be041876"
+SRC_URI[crossbeam-channel-0.5.6.sha256sum] = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
+SRC_URI[crossbeam-deque-0.8.2.sha256sum] = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
+SRC_URI[crossbeam-epoch-0.9.11.sha256sum] = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348"
+SRC_URI[crossbeam-utils-0.8.12.sha256sum] = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac"
+SRC_URI[csv-1.1.6.sha256sum] = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1"
+SRC_URI[csv-core-0.1.10.sha256sum] = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
+SRC_URI[either-1.8.0.sha256sum] = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
+SRC_URI[fuchsia-cprng-0.1.1.sha256sum] = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+SRC_URI[heck-0.3.3.sha256sum] = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
+SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+SRC_URI[itertools-0.9.0.sha256sum] = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
+SRC_URI[itertools-0.10.5.sha256sum] = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+SRC_URI[itoa-0.4.8.sha256sum] = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
+SRC_URI[itoa-1.0.4.sha256sum] = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
+SRC_URI[js-sys-0.3.60.sha256sum] = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.135.sha256sum] = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c"
+SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[memoffset-0.6.5.sha256sum] = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+SRC_URI[num_cpus-1.13.1.sha256sum] = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+SRC_URI[once_cell-1.15.0.sha256sum] = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1"
+SRC_URI[oorandom-11.1.3.sha256sum] = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
+SRC_URI[plotters-0.2.15.sha256sum] = "0d1685fbe7beba33de0330629da9d955ac75bd54f33d7b79f9a895590124f6bb"
+SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+SRC_URI[proc-macro2-1.0.47.sha256sum] = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
+SRC_URI[quote-1.0.21.sha256sum] = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
+SRC_URI[rand-0.6.5.sha256sum] = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
+SRC_URI[rand_chacha-0.1.1.sha256sum] = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
+SRC_URI[rand_core-0.3.1.sha256sum] = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+SRC_URI[rand_core-0.4.2.sha256sum] = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
+SRC_URI[rand_hc-0.1.0.sha256sum] = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
+SRC_URI[rand_isaac-0.1.1.sha256sum] = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
+SRC_URI[rand_jitter-0.1.4.sha256sum] = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
+SRC_URI[rand_os-0.1.3.sha256sum] = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
+SRC_URI[rand_pcg-0.1.2.sha256sum] = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
+SRC_URI[rand_xorshift-0.1.1.sha256sum] = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
+SRC_URI[rayon-1.5.3.sha256sum] = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d"
+SRC_URI[rayon-core-1.9.3.sha256sum] = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f"
+SRC_URI[rdrand-0.4.0.sha256sum] = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+SRC_URI[regex-1.6.0.sha256sum] = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+SRC_URI[regex-automata-0.1.10.sha256sum] = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+SRC_URI[regex-syntax-0.6.27.sha256sum] = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+SRC_URI[rustc_version-0.4.0.sha256sum] = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+SRC_URI[ryu-1.0.11.sha256sum] = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"
+SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+SRC_URI[semver-1.0.14.sha256sum] = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4"
+SRC_URI[serde-1.0.146.sha256sum] = "6df50b7a60a0ad48e1b42eb38373eac8ff785d619fb14db917b4e63d5439361f"
+SRC_URI[serde_derive-1.0.146.sha256sum] = "a714fd32ba1d66047ce7d53dabd809e9922d538f9047de13cc4cffca47b36205"
+SRC_URI[serde_json-1.0.87.sha256sum] = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45"
+SRC_URI[strsim-0.8.0.sha256sum] = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+SRC_URI[structopt-0.3.26.sha256sum] = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
+SRC_URI[structopt-derive-0.4.18.sha256sum] = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
+SRC_URI[syn-1.0.103.sha256sum] = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d"
+SRC_URI[textwrap-0.11.0.sha256sum] = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+SRC_URI[tinytemplate-1.2.1.sha256sum] = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
+SRC_URI[unicode-ident-1.0.5.sha256sum] = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
+SRC_URI[unicode-segmentation-1.10.0.sha256sum] = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a"
+SRC_URI[unicode-width-0.1.10.sha256sum] = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+SRC_URI[vec_map-0.8.2.sha256sum] = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[walkdir-2.3.2.sha256sum] = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+SRC_URI[wasm-bindgen-0.2.83.sha256sum] = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
+SRC_URI[wasm-bindgen-backend-0.2.83.sha256sum] = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
+SRC_URI[wasm-bindgen-macro-0.2.83.sha256sum] = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
+SRC_URI[wasm-bindgen-macro-support-0.2.83.sha256sum] = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
+SRC_URI[wasm-bindgen-shared-0.2.83.sha256sum] = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
+SRC_URI[web-sys-0.3.60.sha256sum] = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+# from rust/vendor/displaydoc/Cargo.lock
SRC_URI += " \
- crate://crates.io/arrayvec/0.4.11;name=arrayvec-0.4.11 \
- crate://crates.io/atty/0.2.12;name=atty-0.2.12 \
- crate://crates.io/autocfg/0.1.4;name=autocfg-0.1.4 \
- crate://crates.io/bitflags/1.1.0;name=bitflags-1.1.0 \
- crate://crates.io/bstr/0.2.1;name=bstr-0.2.1 \
- crate://crates.io/byteorder/1.3.2;name=byteorder-1.3.2 \
- crate://crates.io/cast/0.2.2;name=cast-0.2.2 \
- crate://crates.io/cfg-if/0.1.9;name=cfg-if-0.1.9 \
- crate://crates.io/clap/2.33.0;name=clap-2.33.0 \
- crate://crates.io/cloudabi/0.0.3;name=cloudabi-0.0.3 \
- crate://crates.io/criterion/0.3.0;name=criterion-0.3.0 \
- crate://crates.io/criterion-plot/0.4.0;name=criterion-plot-0.4.0 \
- crate://crates.io/crossbeam-deque/0.6.3;name=crossbeam-deque-0.6.3 \
- crate://crates.io/crossbeam-epoch/0.7.1;name=crossbeam-epoch-0.7.1 \
- crate://crates.io/crossbeam-queue/0.1.2;name=crossbeam-queue-0.1.2 \
- crate://crates.io/crossbeam-utils/0.6.5;name=crossbeam-utils-0.6.5 \
- crate://crates.io/csv/1.1.1;name=csv-1.1.1 \
- crate://crates.io/csv-core/0.1.6;name=csv-core-0.1.6 \
- crate://crates.io/doc-comment/0.3.1;name=doc-comment-0.3.1 \
- crate://crates.io/either/1.5.2;name=either-1.5.2 \
- crate://crates.io/fuchsia-cprng/0.1.1;name=fuchsia-cprng-0.1.1 \
- crate://crates.io/getrandom/0.1.13;name=getrandom-0.1.13 \
- crate://crates.io/itertools/0.8.0;name=itertools-0.8.0 \
- crate://crates.io/itoa/0.4.4;name=itoa-0.4.4 \
- crate://crates.io/lazy_static/1.3.0;name=lazy_static-1.3.0 \
- crate://crates.io/libc/0.2.65;name=libc-0.2.65 \
- crate://crates.io/memchr/2.2.1;name=memchr-2.2.1 \
- crate://crates.io/memoffset/0.2.1;name=memoffset-0.2.1 \
- crate://crates.io/nodrop/0.1.13;name=nodrop-0.1.13 \
- crate://crates.io/num-traits/0.2.8;name=num-traits-0.2.8 \
- crate://crates.io/num_cpus/1.10.1;name=num_cpus-1.10.1 \
- crate://crates.io/proc-macro2/0.4.30;name=proc-macro2-0.4.30 \
- crate://crates.io/quote/0.6.13;name=quote-0.6.13 \
- crate://crates.io/rand/0.6.5;name=rand-0.6.5 \
- crate://crates.io/rand_chacha/0.1.1;name=rand_chacha-0.1.1 \
- crate://crates.io/rand_core/0.3.1;name=rand_core-0.3.1 \
- crate://crates.io/rand_core/0.4.0;name=rand_core-0.4.0 \
- crate://crates.io/rand_core/0.5.1;name=rand_core-0.5.1 \
- crate://crates.io/rand_hc/0.1.0;name=rand_hc-0.1.0 \
- crate://crates.io/rand_isaac/0.1.1;name=rand_isaac-0.1.1 \
- crate://crates.io/rand_jitter/0.1.4;name=rand_jitter-0.1.4 \
- crate://crates.io/rand_os/0.1.3;name=rand_os-0.1.3 \
- crate://crates.io/rand_os/0.2.2;name=rand_os-0.2.2 \
- crate://crates.io/rand_pcg/0.1.2;name=rand_pcg-0.1.2 \
- crate://crates.io/rand_xorshift/0.1.1;name=rand_xorshift-0.1.1 \
- crate://crates.io/rand_xoshiro/0.3.1;name=rand_xoshiro-0.3.1 \
- crate://crates.io/rayon/1.1.0;name=rayon-1.1.0 \
- crate://crates.io/rayon-core/1.5.0;name=rayon-core-1.5.0 \
- crate://crates.io/rdrand/0.4.0;name=rdrand-0.4.0 \
- crate://crates.io/regex-automata/0.1.7;name=regex-automata-0.1.7 \
- crate://crates.io/ryu/1.0.0;name=ryu-1.0.0 \
- crate://crates.io/same-file/1.0.4;name=same-file-1.0.4 \
- crate://crates.io/scopeguard/0.3.3;name=scopeguard-0.3.3 \
- crate://crates.io/serde/1.0.94;name=serde-1.0.94 \
- crate://crates.io/serde_derive/1.0.94;name=serde_derive-1.0.94 \
- crate://crates.io/serde_json/1.0.40;name=serde_json-1.0.40 \
- crate://crates.io/syn/0.15.39;name=syn-0.15.39 \
- crate://crates.io/textwrap/0.11.0;name=textwrap-0.11.0 \
- crate://crates.io/tinytemplate/1.0.2;name=tinytemplate-1.0.2 \
- crate://crates.io/unicode-width/0.1.5;name=unicode-width-0.1.5 \
- crate://crates.io/unicode-xid/0.1.0;name=unicode-xid-0.1.0 \
- crate://crates.io/walkdir/2.2.8;name=walkdir-2.2.8 \
- crate://crates.io/wasi/0.7.0;name=wasi-0.7.0 \
- crate://crates.io/winapi/0.3.7;name=winapi-0.3.7 \
- crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0;name=winapi-i686-pc-windows-gnu-0.4.0 \
- crate://crates.io/winapi-util/0.1.2;name=winapi-util-0.1.2 \
- crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0;name=winapi-x86_64-pc-windows-gnu-0.4.0 \
+ crate://crates.io/ansi_term/0.11.0 \
+ crate://crates.io/basic-toml/0.1.2 \
+ crate://crates.io/ctor/0.1.26 \
+ crate://crates.io/difference/2.0.0 \
+ crate://crates.io/glob/0.3.1 \
+ crate://crates.io/itoa/1.0.6 \
+ crate://crates.io/libc/0.2.142 \
+ crate://crates.io/once_cell/1.17.1 \
+ crate://crates.io/output_vt100/0.1.3 \
+ crate://crates.io/pretty_assertions/0.6.1 \
+ crate://crates.io/proc-macro2/1.0.56 \
+ crate://crates.io/quote/1.0.26 \
+ crate://crates.io/rustversion/1.0.12 \
+ crate://crates.io/ryu/1.0.13 \
+ crate://crates.io/serde/1.0.160 \
+ crate://crates.io/serde_derive/1.0.160 \
+ crate://crates.io/serde_json/1.0.96 \
+ crate://crates.io/static_assertions/1.1.0 \
+ crate://crates.io/syn/1.0.109 \
+ crate://crates.io/syn/2.0.15 \
+ crate://crates.io/termcolor/1.2.0 \
+ crate://crates.io/thiserror/1.0.40 \
+ crate://crates.io/thiserror-impl/1.0.40 \
+ crate://crates.io/trybuild/1.0.80 \
+ crate://crates.io/unicode-ident/1.0.8 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
"
-# from vendor/ryu/Cargo.lock
+SRC_URI[ansi_term-0.11.0.sha256sum] = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
+SRC_URI[basic-toml-0.1.2.sha256sum] = "5c0de75129aa8d0cceaf750b89013f0e08804d6ec61416da787b35ad0d7cddf1"
+SRC_URI[ctor-0.1.26.sha256sum] = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
+SRC_URI[difference-2.0.0.sha256sum] = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
+SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+SRC_URI[itoa-1.0.6.sha256sum] = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+SRC_URI[libc-0.2.142.sha256sum] = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317"
+SRC_URI[once_cell-1.17.1.sha256sum] = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+SRC_URI[output_vt100-0.1.3.sha256sum] = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66"
+SRC_URI[pretty_assertions-0.6.1.sha256sum] = "3f81e1644e1b54f5a68959a29aa86cde704219254669da328ecfdf6a1f09d427"
+SRC_URI[proc-macro2-1.0.56.sha256sum] = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
+SRC_URI[quote-1.0.26.sha256sum] = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+SRC_URI[rustversion-1.0.12.sha256sum] = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06"
+SRC_URI[ryu-1.0.13.sha256sum] = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+SRC_URI[serde-1.0.160.sha256sum] = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c"
+SRC_URI[serde_derive-1.0.160.sha256sum] = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df"
+SRC_URI[serde_json-1.0.96.sha256sum] = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1"
+SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[syn-2.0.15.sha256sum] = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822"
+SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+SRC_URI[thiserror-1.0.40.sha256sum] = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+SRC_URI[thiserror-impl-1.0.40.sha256sum] = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+SRC_URI[trybuild-1.0.80.sha256sum] = "501dbdbb99861e4ab6b60eb6a7493956a9defb644fd034bc4a5ef27c693c8a3a"
+SRC_URI[unicode-ident-1.0.8.sha256sum] = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+# from rust/vendor/asn1-rs/Cargo.lock
SRC_URI += " \
- crate://crates.io/cfg-if/1.0.0;name=cfg-if-1.0.0 \
- crate://crates.io/getrandom/0.2.7;name=getrandom-0.2.7 \
- crate://crates.io/hermit-abi/0.1.19;name=hermit-abi-0.1.19 \
- crate://crates.io/libc/0.2.134;name=libc-0.2.134 \
- crate://crates.io/no-panic/0.1.16;name=no-panic-0.1.16 \
- crate://crates.io/num_cpus/1.13.1;name=num_cpus-1.13.1 \
- crate://crates.io/ppv-lite86/0.2.16;name=ppv-lite86-0.2.16 \
- crate://crates.io/proc-macro2/1.0.46;name=proc-macro2-1.0.46 \
- crate://crates.io/quote/1.0.21;name=quote-1.0.21 \
- crate://crates.io/rand/0.8.5;name=rand-0.8.5 \
- crate://crates.io/rand_chacha/0.3.1;name=rand_chacha-0.3.1 \
- crate://crates.io/rand_core/0.6.4;name=rand_core-0.6.4 \
- crate://crates.io/rand_xorshift/0.3.0;name=rand_xorshift-0.3.0 \
- crate://crates.io/syn/1.0.102;name=syn-1.0.102 \
- crate://crates.io/unicode-ident/1.0.4;name=unicode-ident-1.0.4 \
- crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1;name=wasi-0.11.0+wasi-snapshot-preview1 \
+ crate://crates.io/asn1-rs/0.5.1 \
+ crate://crates.io/asn1-rs-derive/0.4.0 \
+ crate://crates.io/asn1-rs-impl/0.1.0 \
+ crate://crates.io/atty/0.2.14 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/base64/0.13.1 \
+ crate://crates.io/basic-toml/0.1.2 \
+ crate://crates.io/bitvec/1.0.1 \
+ crate://crates.io/colored/2.0.0 \
+ crate://crates.io/cookie-factory/0.3.2 \
+ crate://crates.io/displaydoc/0.2.3 \
+ crate://crates.io/funty/2.0.0 \
+ crate://crates.io/glob/0.3.1 \
+ crate://crates.io/hermit-abi/0.1.19 \
+ crate://crates.io/hex-literal/0.3.4 \
+ crate://crates.io/itoa/1.0.6 \
+ crate://crates.io/lazy_static/1.4.0 \
+ crate://crates.io/libc/0.2.139 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/minimal-lexical/0.2.1 \
+ crate://crates.io/nom/7.1.3 \
+ crate://crates.io/num-bigint/0.4.3 \
+ crate://crates.io/num-integer/0.1.45 \
+ crate://crates.io/num-traits/0.2.15 \
+ crate://crates.io/oid-registry/0.6.1 \
+ crate://crates.io/once_cell/1.17.1 \
+ crate://crates.io/pem/1.1.1 \
+ crate://crates.io/proc-macro2/1.0.51 \
+ crate://crates.io/quote/1.0.23 \
+ crate://crates.io/radium/0.7.0 \
+ crate://crates.io/rusticata-macros/4.1.0 \
+ crate://crates.io/ryu/1.0.13 \
+ crate://crates.io/serde/1.0.152 \
+ crate://crates.io/serde_derive/1.0.152 \
+ crate://crates.io/serde_json/1.0.94 \
+ crate://crates.io/syn/1.0.109 \
+ crate://crates.io/synstructure/0.12.6 \
+ crate://crates.io/tap/1.0.1 \
+ crate://crates.io/termcolor/1.2.0 \
+ crate://crates.io/thiserror/1.0.39 \
+ crate://crates.io/thiserror-impl/1.0.39 \
+ crate://crates.io/time/0.3.20 \
+ crate://crates.io/time-core/0.1.0 \
+ crate://crates.io/time-macros/0.2.8 \
+ crate://crates.io/trybuild/1.0.79 \
+ crate://crates.io/unicode-ident/1.0.8 \
+ crate://crates.io/unicode-xid/0.2.4 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+ crate://crates.io/wyz/0.5.1 \
"
-SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-SRC_URI[getrandom-0.2.7.sha256sum] = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
+SRC_URI[asn1-rs-0.5.1.sha256sum] = "cf6690c370453db30743b373a60ba498fc0d6d83b11f4abfd87a84a075db5dd4"
+SRC_URI[asn1-rs-derive-0.4.0.sha256sum] = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c"
+SRC_URI[asn1-rs-impl-0.1.0.sha256sum] = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed"
+SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[base64-0.13.1.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+SRC_URI[basic-toml-0.1.2.sha256sum] = "5c0de75129aa8d0cceaf750b89013f0e08804d6ec61416da787b35ad0d7cddf1"
+SRC_URI[bitvec-1.0.1.sha256sum] = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
+SRC_URI[colored-2.0.0.sha256sum] = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd"
+SRC_URI[cookie-factory-0.3.2.sha256sum] = "396de984970346b0d9e93d1415082923c679e5ae5c3ee3dcbd104f5610af126b"
+SRC_URI[displaydoc-0.2.3.sha256sum] = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886"
+SRC_URI[funty-2.0.0.sha256sum] = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
+SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-SRC_URI[libc-0.2.134.sha256sum] = "329c933548736bc49fd575ee68c89e8be4d260064184389a5b77517cddd99ffb"
-SRC_URI[no-panic-0.1.16.sha256sum] = "12f10d4b6dcf2138f0fc171f4cc8f49517cc71ac57e29aa061c61aa57ec2dffc"
-SRC_URI[num_cpus-1.13.1.sha256sum] = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
-SRC_URI[ppv-lite86-0.2.16.sha256sum] = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
-SRC_URI[proc-macro2-1.0.46.sha256sum] = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b"
-SRC_URI[quote-1.0.21.sha256sum] = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
-SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-SRC_URI[rand_xorshift-0.3.0.sha256sum] = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
-SRC_URI[syn-1.0.102.sha256sum] = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1"
-SRC_URI[unicode-ident-1.0.4.sha256sum] = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd"
-SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-# from vendor/flate2/Cargo.lock
+SRC_URI[hex-literal-0.3.4.sha256sum] = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0"
+SRC_URI[itoa-1.0.6.sha256sum] = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.139.sha256sum] = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+SRC_URI[num-bigint-0.4.3.sha256sum] = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+SRC_URI[oid-registry-0.6.1.sha256sum] = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff"
+SRC_URI[once_cell-1.17.1.sha256sum] = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+SRC_URI[pem-1.1.1.sha256sum] = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
+SRC_URI[proc-macro2-1.0.51.sha256sum] = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6"
+SRC_URI[quote-1.0.23.sha256sum] = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
+SRC_URI[radium-0.7.0.sha256sum] = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+SRC_URI[rusticata-macros-4.1.0.sha256sum] = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632"
+SRC_URI[ryu-1.0.13.sha256sum] = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+SRC_URI[serde-1.0.152.sha256sum] = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"
+SRC_URI[serde_derive-1.0.152.sha256sum] = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"
+SRC_URI[serde_json-1.0.94.sha256sum] = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[synstructure-0.12.6.sha256sum] = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
+SRC_URI[tap-1.0.1.sha256sum] = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+SRC_URI[thiserror-1.0.39.sha256sum] = "a5ab016db510546d856297882807df8da66a16fb8c4101cb8b30054b0d5b2d9c"
+SRC_URI[thiserror-impl-1.0.39.sha256sum] = "5420d42e90af0c38c3290abcca25b9b3bdf379fc9f55c528f53a269d9c9a267e"
+SRC_URI[time-0.3.20.sha256sum] = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
+SRC_URI[time-core-0.1.0.sha256sum] = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+SRC_URI[time-macros-0.2.8.sha256sum] = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36"
+SRC_URI[trybuild-1.0.79.sha256sum] = "db3115bddce1b5f52dd4b5e0ec8298a66ce733e4cc6759247dc2d1c11508ec38"
+SRC_URI[unicode-ident-1.0.8.sha256sum] = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+SRC_URI[unicode-xid-0.2.4.sha256sum] = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[wyz-0.5.1.sha256sum] = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
+# from rust/vendor/flate2/Cargo.lock
SRC_URI += " \
- crate://crates.io/adler/1.0.2;name=adler-1.0.2 \
- crate://crates.io/cc/1.0.77;name=cc-1.0.77 \
- crate://crates.io/cfg-if/1.0.0;name=cfg-if-1.0.0 \
- crate://crates.io/cloudflare-zlib-sys/0.3.0;name=cloudflare-zlib-sys-0.3.0 \
- crate://crates.io/cmake/0.1.49;name=cmake-0.1.49 \
- crate://crates.io/crc32fast/1.3.2;name=crc32fast-1.3.2 \
- crate://crates.io/getrandom/0.2.8;name=getrandom-0.2.8 \
- crate://crates.io/libc/0.2.137;name=libc-0.2.137 \
- crate://crates.io/libz-ng-sys/1.1.8;name=libz-ng-sys-1.1.8 \
- crate://crates.io/libz-sys/1.1.8;name=libz-sys-1.1.8 \
- crate://crates.io/miniz_oxide/0.6.2;name=miniz_oxide-0.6.2 \
- crate://crates.io/pkg-config/0.3.26;name=pkg-config-0.3.26 \
- crate://crates.io/ppv-lite86/0.2.17;name=ppv-lite86-0.2.17 \
- crate://crates.io/quickcheck/1.0.3;name=quickcheck-1.0.3 \
- crate://crates.io/rand/0.8.5;name=rand-0.8.5 \
- crate://crates.io/rand_chacha/0.3.1;name=rand_chacha-0.3.1 \
- crate://crates.io/rand_core/0.6.4;name=rand_core-0.6.4 \
- crate://crates.io/vcpkg/0.2.15;name=vcpkg-0.2.15 \
- crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1;name=wasi-0.11.0+wasi-snapshot-preview1 \
+ crate://crates.io/adler/1.0.2 \
+ crate://crates.io/cc/1.0.73 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/cloudflare-zlib-sys/0.3.0 \
+ crate://crates.io/cmake/0.1.48 \
+ crate://crates.io/crc32fast/1.3.2 \
+ crate://crates.io/getrandom/0.2.6 \
+ crate://crates.io/libc/0.2.124 \
+ crate://crates.io/libz-ng-sys/1.1.8 \
+ crate://crates.io/libz-sys/1.1.8 \
+ crate://crates.io/miniz_oxide/0.7.1 \
+ crate://crates.io/pkg-config/0.3.25 \
+ crate://crates.io/ppv-lite86/0.2.16 \
+ crate://crates.io/quickcheck/1.0.3 \
+ crate://crates.io/rand/0.8.5 \
+ crate://crates.io/rand_chacha/0.3.1 \
+ crate://crates.io/rand_core/0.6.3 \
+ crate://crates.io/vcpkg/0.2.15 \
+ crate://crates.io/wasi/0.10.2+wasi-snapshot-preview1 \
"
SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-SRC_URI[cc-1.0.77.sha256sum] = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4"
+SRC_URI[cc-1.0.73.sha256sum] = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
SRC_URI[cloudflare-zlib-sys-0.3.0.sha256sum] = "2040b6d1edfee6d75f172d81e2d2a7807534f3f294ce18184c70e7bb0105cd6f"
-SRC_URI[cmake-0.1.49.sha256sum] = "db34956e100b30725f2eb215f90d4871051239535632f84fea3bc92722c66b7c"
+SRC_URI[cmake-0.1.48.sha256sum] = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a"
SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-SRC_URI[getrandom-0.2.8.sha256sum] = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
-SRC_URI[libc-0.2.137.sha256sum] = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89"
+SRC_URI[getrandom-0.2.6.sha256sum] = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad"
+SRC_URI[libc-0.2.124.sha256sum] = "21a41fed9d98f27ab1c6d161da622a4fa35e8a54a8adc24bbf3ddd0ef70b0e50"
SRC_URI[libz-ng-sys-1.1.8.sha256sum] = "4399ae96a9966bf581e726de86969f803a81b7ce795fcd5480e640589457e0f2"
SRC_URI[libz-sys-1.1.8.sha256sum] = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf"
-SRC_URI[miniz_oxide-0.6.2.sha256sum] = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
-SRC_URI[pkg-config-0.3.26.sha256sum] = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
-SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+SRC_URI[miniz_oxide-0.7.1.sha256sum] = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+SRC_URI[pkg-config-0.3.25.sha256sum] = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
+SRC_URI[ppv-lite86-0.2.16.sha256sum] = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
SRC_URI[quickcheck-1.0.3.sha256sum] = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[rand_core-0.6.3.sha256sum] = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
-SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-# from vendor/nom/Cargo.lock
+SRC_URI[wasi-0.10.2+wasi-snapshot-preview1.sha256sum] = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+# from rust/vendor/toml/Cargo.lock
+SRC_URI += " \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/hashbrown/0.12.3 \
+ crate://crates.io/indexmap/1.9.2 \
+ crate://crates.io/itoa/1.0.5 \
+ crate://crates.io/proc-macro2/1.0.50 \
+ crate://crates.io/quote/1.0.23 \
+ crate://crates.io/ryu/1.0.12 \
+ crate://crates.io/serde/1.0.152 \
+ crate://crates.io/serde_derive/1.0.152 \
+ crate://crates.io/serde_json/1.0.91 \
+ crate://crates.io/syn/1.0.107 \
+ crate://crates.io/unicode-ident/1.0.6 \
+"
+
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+SRC_URI[indexmap-1.9.2.sha256sum] = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
+SRC_URI[itoa-1.0.5.sha256sum] = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
+SRC_URI[proc-macro2-1.0.50.sha256sum] = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2"
+SRC_URI[quote-1.0.23.sha256sum] = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
+SRC_URI[ryu-1.0.12.sha256sum] = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
+SRC_URI[serde-1.0.152.sha256sum] = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"
+SRC_URI[serde_derive-1.0.152.sha256sum] = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"
+SRC_URI[serde_json-1.0.91.sha256sum] = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883"
+SRC_URI[syn-1.0.107.sha256sum] = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
+SRC_URI[unicode-ident-1.0.6.sha256sum] = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
+# from rust/vendor/nom/Cargo.lock
SRC_URI += " \
- crate://crates.io/aho-corasick/0.7.6;name=aho-corasick-0.7.6 \
- crate://crates.io/arrayvec/0.4.11;name=arrayvec-0.4.11 \
- crate://crates.io/atty/0.2.13;name=atty-0.2.13 \
- crate://crates.io/autocfg/0.1.6;name=autocfg-0.1.6 \
- crate://crates.io/bitflags/1.2.1;name=bitflags-1.2.1 \
- crate://crates.io/bstr/0.2.7;name=bstr-0.2.7 \
- crate://crates.io/byteorder/1.3.2;name=byteorder-1.3.2 \
- crate://crates.io/cast/0.2.2;name=cast-0.2.2 \
- crate://crates.io/cc/1.0.40;name=cc-1.0.40 \
- crate://crates.io/cfg-if/0.1.9;name=cfg-if-0.1.9 \
- crate://crates.io/clap/2.33.0;name=clap-2.33.0 \
- crate://crates.io/cloudabi/0.0.3;name=cloudabi-0.0.3 \
- crate://crates.io/criterion/0.2.11;name=criterion-0.2.11 \
- crate://crates.io/criterion-plot/0.3.1;name=criterion-plot-0.3.1 \
- crate://crates.io/crossbeam-deque/0.6.3;name=crossbeam-deque-0.6.3 \
- crate://crates.io/crossbeam-epoch/0.7.2;name=crossbeam-epoch-0.7.2 \
- crate://crates.io/crossbeam-queue/0.1.2;name=crossbeam-queue-0.1.2 \
- crate://crates.io/crossbeam-utils/0.6.6;name=crossbeam-utils-0.6.6 \
- crate://crates.io/csv/1.1.1;name=csv-1.1.1 \
- crate://crates.io/csv-core/0.1.6;name=csv-core-0.1.6 \
- crate://crates.io/doc-comment/0.3.1;name=doc-comment-0.3.1 \
- crate://crates.io/either/1.5.2;name=either-1.5.2 \
- crate://crates.io/fs_extra/1.1.0;name=fs_extra-1.1.0 \
- crate://crates.io/fuchsia-cprng/0.1.1;name=fuchsia-cprng-0.1.1 \
- crate://crates.io/itertools/0.8.0;name=itertools-0.8.0 \
- crate://crates.io/itoa/0.4.4;name=itoa-0.4.4 \
- crate://crates.io/jemalloc-sys/0.1.8;name=jemalloc-sys-0.1.8 \
- crate://crates.io/jemallocator/0.1.9;name=jemallocator-0.1.9 \
- crate://crates.io/lazy_static/1.3.0;name=lazy_static-1.3.0 \
- crate://crates.io/lexical-core/0.6.7;name=lexical-core-0.6.7 \
- crate://crates.io/libc/0.2.62;name=libc-0.2.62 \
- crate://crates.io/memchr/2.2.1;name=memchr-2.2.1 \
- crate://crates.io/memoffset/0.5.1;name=memoffset-0.5.1 \
- crate://crates.io/nodrop/0.1.13;name=nodrop-0.1.13 \
- crate://crates.io/num-traits/0.2.8;name=num-traits-0.2.8 \
- crate://crates.io/num_cpus/1.10.1;name=num_cpus-1.10.1 \
- crate://crates.io/proc-macro2/1.0.1;name=proc-macro2-1.0.1 \
- crate://crates.io/quote/1.0.2;name=quote-1.0.2 \
- crate://crates.io/rand_core/0.3.1;name=rand_core-0.3.1 \
- crate://crates.io/rand_core/0.4.2;name=rand_core-0.4.2 \
- crate://crates.io/rand_os/0.1.3;name=rand_os-0.1.3 \
- crate://crates.io/rand_xoshiro/0.1.0;name=rand_xoshiro-0.1.0 \
- crate://crates.io/rayon/1.1.0;name=rayon-1.1.0 \
- crate://crates.io/rayon-core/1.5.0;name=rayon-core-1.5.0 \
- crate://crates.io/rdrand/0.4.0;name=rdrand-0.4.0 \
- crate://crates.io/regex/1.2.1;name=regex-1.2.1 \
- crate://crates.io/regex-automata/0.1.8;name=regex-automata-0.1.8 \
- crate://crates.io/regex-syntax/0.6.11;name=regex-syntax-0.6.11 \
- crate://crates.io/rustc_version/0.2.3;name=rustc_version-0.2.3 \
- crate://crates.io/ryu/1.0.0;name=ryu-1.0.0 \
- crate://crates.io/same-file/1.0.5;name=same-file-1.0.5 \
- crate://crates.io/scopeguard/1.0.0;name=scopeguard-1.0.0 \
- crate://crates.io/semver/0.9.0;name=semver-0.9.0 \
- crate://crates.io/semver-parser/0.7.0;name=semver-parser-0.7.0 \
- crate://crates.io/serde/1.0.99;name=serde-1.0.99 \
- crate://crates.io/serde_derive/1.0.99;name=serde_derive-1.0.99 \
- crate://crates.io/serde_json/1.0.40;name=serde_json-1.0.40 \
- crate://crates.io/static_assertions/0.3.4;name=static_assertions-0.3.4 \
- crate://crates.io/syn/1.0.3;name=syn-1.0.3 \
- crate://crates.io/textwrap/0.11.0;name=textwrap-0.11.0 \
- crate://crates.io/thread_local/0.3.6;name=thread_local-0.3.6 \
- crate://crates.io/tinytemplate/1.0.2;name=tinytemplate-1.0.2 \
- crate://crates.io/unicode-width/0.1.6;name=unicode-width-0.1.6 \
- crate://crates.io/unicode-xid/0.2.0;name=unicode-xid-0.2.0 \
- crate://crates.io/version_check/0.9.1;name=version_check-0.9.1 \
- crate://crates.io/walkdir/2.2.9;name=walkdir-2.2.9 \
- crate://crates.io/winapi/0.3.7;name=winapi-0.3.7 \
- crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0;name=winapi-i686-pc-windows-gnu-0.4.0 \
- crate://crates.io/winapi-util/0.1.2;name=winapi-util-0.1.2 \
- crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0;name=winapi-x86_64-pc-windows-gnu-0.4.0 \
+ crate://crates.io/autocfg/1.0.1 \
+ crate://crates.io/bit-set/0.5.2 \
+ crate://crates.io/bit-vec/0.6.3 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/byteorder/1.4.3 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/doc-comment/0.3.3 \
+ crate://crates.io/fnv/1.0.7 \
+ crate://crates.io/getrandom/0.2.3 \
+ crate://crates.io/lazy_static/1.4.0 \
+ crate://crates.io/libc/0.2.106 \
+ crate://crates.io/memchr/2.4.1 \
+ crate://crates.io/minimal-lexical/0.2.1 \
+ crate://crates.io/num-traits/0.2.14 \
+ crate://crates.io/ppv-lite86/0.2.15 \
+ crate://crates.io/proptest/1.0.0 \
+ crate://crates.io/quick-error/1.2.3 \
+ crate://crates.io/quick-error/2.0.1 \
+ crate://crates.io/rand/0.8.4 \
+ crate://crates.io/rand_chacha/0.3.1 \
+ crate://crates.io/rand_core/0.6.3 \
+ crate://crates.io/rand_hc/0.3.1 \
+ crate://crates.io/rand_xorshift/0.3.0 \
+ crate://crates.io/redox_syscall/0.2.10 \
+ crate://crates.io/regex-syntax/0.6.25 \
+ crate://crates.io/remove_dir_all/0.5.3 \
+ crate://crates.io/rusty-fork/0.3.0 \
+ crate://crates.io/tempfile/3.2.0 \
+ crate://crates.io/wait-timeout/0.2.0 \
+ crate://crates.io/wasi/0.10.2+wasi-snapshot-preview1 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
"
-# from vendor/brotli/Cargo.lock
+SRC_URI[autocfg-1.0.1.sha256sum] = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+SRC_URI[bit-set-0.5.2.sha256sum] = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de"
+SRC_URI[bit-vec-0.6.3.sha256sum] = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[doc-comment-0.3.3.sha256sum] = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+SRC_URI[getrandom-0.2.3.sha256sum] = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.106.sha256sum] = "a60553f9a9e039a333b4e9b20573b9e9b9c0bb3a11e201ccc48ef4283456d673"
+SRC_URI[memchr-2.4.1.sha256sum] = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[num-traits-0.2.14.sha256sum] = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+SRC_URI[ppv-lite86-0.2.15.sha256sum] = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba"
+SRC_URI[proptest-1.0.0.sha256sum] = "1e0d9cc07f18492d879586c92b485def06bc850da3118075cd45d50e9c95b0e5"
+SRC_URI[quick-error-1.2.3.sha256sum] = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+SRC_URI[quick-error-2.0.1.sha256sum] = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
+SRC_URI[rand-0.8.4.sha256sum] = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.6.3.sha256sum] = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
+SRC_URI[rand_hc-0.3.1.sha256sum] = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7"
+SRC_URI[rand_xorshift-0.3.0.sha256sum] = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
+SRC_URI[redox_syscall-0.2.10.sha256sum] = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"
+SRC_URI[regex-syntax-0.6.25.sha256sum] = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
+SRC_URI[remove_dir_all-0.5.3.sha256sum] = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+SRC_URI[rusty-fork-0.3.0.sha256sum] = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f"
+SRC_URI[tempfile-3.2.0.sha256sum] = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
+SRC_URI[wait-timeout-0.2.0.sha256sum] = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
+SRC_URI[wasi-0.10.2+wasi-snapshot-preview1.sha256sum] = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+# from rust/vendor/brotli/Cargo.lock
SRC_URI += " \
- crate://crates.io/alloc-no-stdlib/2.0.3;name=alloc-no-stdlib-2.0.3 \
- crate://crates.io/alloc-stdlib/0.2.1;name=alloc-stdlib-0.2.1 \
- crate://crates.io/block-buffer/0.7.3;name=block-buffer-0.7.3 \
- crate://crates.io/block-padding/0.1.5;name=block-padding-0.1.5 \
- crate://crates.io/brotli-decompressor/2.3.2;name=brotli-decompressor-2.3.2 \
- crate://crates.io/byte-tools/0.3.1;name=byte-tools-0.3.1 \
- crate://crates.io/byteorder/1.4.3;name=byteorder-1.4.3 \
- crate://crates.io/cfg-if/1.0.0;name=cfg-if-1.0.0 \
- crate://crates.io/digest/0.8.1;name=digest-0.8.1 \
- crate://crates.io/fake-simd/0.1.2;name=fake-simd-0.1.2 \
- crate://crates.io/generic-array/0.12.4;name=generic-array-0.12.4 \
- crate://crates.io/libm/0.1.4;name=libm-0.1.4 \
- crate://crates.io/opaque-debug/0.2.3;name=opaque-debug-0.2.3 \
- crate://crates.io/packed_simd_2/0.3.7;name=packed_simd_2-0.3.7 \
- crate://crates.io/sha2/0.8.2;name=sha2-0.8.2 \
- crate://crates.io/typenum/1.15.0;name=typenum-1.15.0 \
+ crate://crates.io/alloc-no-stdlib/2.0.3 \
+ crate://crates.io/alloc-stdlib/0.2.1 \
+ crate://crates.io/block-buffer/0.7.3 \
+ crate://crates.io/block-padding/0.1.5 \
+ crate://crates.io/brotli-decompressor/2.3.2 \
+ crate://crates.io/byte-tools/0.3.1 \
+ crate://crates.io/byteorder/1.4.3 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/digest/0.8.1 \
+ crate://crates.io/fake-simd/0.1.2 \
+ crate://crates.io/generic-array/0.12.4 \
+ crate://crates.io/libm/0.1.4 \
+ crate://crates.io/opaque-debug/0.2.3 \
+ crate://crates.io/packed_simd_2/0.3.7 \
+ crate://crates.io/sha2/0.8.2 \
+ crate://crates.io/typenum/1.15.0 \
"
SRC_URI[alloc-no-stdlib-2.0.3.sha256sum] = "35ef4730490ad1c4eae5c4325b2a95f521d023e5c885853ff7aca0a6a1631db3"
@@ -308,417 +772,379 @@ SRC_URI[opaque-debug-0.2.3.sha256sum] = "2839e79665f131bdb5782e51f2c6c9599c133c6
SRC_URI[packed_simd_2-0.3.7.sha256sum] = "defdcfef86dcc44ad208f71d9ff4ce28df6537a4e0d6b0e8e845cb8ca10059a6"
SRC_URI[sha2-0.8.2.sha256sum] = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69"
SRC_URI[typenum-1.15.0.sha256sum] = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
-# from vendor/alloc-stdlib/Cargo.lock
+# from rust/vendor/failure/Cargo.lock
SRC_URI += " \
- crate://crates.io/alloc-no-stdlib/2.0.4;name=alloc-no-stdlib-2.0.4 \
+ crate://crates.io/backtrace/0.3.46 \
+ crate://crates.io/backtrace-sys/0.1.37 \
+ crate://crates.io/cc/1.0.52 \
+ crate://crates.io/cfg-if/0.1.10 \
+ crate://crates.io/failure_derive/0.1.7 \
+ crate://crates.io/libc/0.2.69 \
+ crate://crates.io/proc-macro2/1.0.12 \
+ crate://crates.io/quote/1.0.4 \
+ crate://crates.io/rustc-demangle/0.1.16 \
+ crate://crates.io/syn/1.0.18 \
+ crate://crates.io/synstructure/0.12.3 \
+ crate://crates.io/unicode-xid/0.2.0 \
"
-SRC_URI[alloc-no-stdlib-2.0.4.sha256sum] = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
-# from vendor/brotli-decompressor/Cargo.lock
+SRC_URI[backtrace-0.3.46.sha256sum] = "b1e692897359247cc6bb902933361652380af0f1b7651ae5c5013407f30e109e"
+SRC_URI[backtrace-sys-0.1.37.sha256sum] = "18fbebbe1c9d1f383a9cc7e8ccdb471b91c8d024ee9c2ca5b5346121fe8b4399"
+SRC_URI[cc-1.0.52.sha256sum] = "c3d87b23d6a92cd03af510a5ade527033f6aa6fa92161e2d5863a907d4c5e31d"
+SRC_URI[cfg-if-0.1.10.sha256sum] = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+SRC_URI[failure_derive-0.1.7.sha256sum] = "030a733c8287d6213886dd487564ff5c8f6aae10278b3588ed177f9d18f8d231"
+SRC_URI[libc-0.2.69.sha256sum] = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005"
+SRC_URI[proc-macro2-1.0.12.sha256sum] = "8872cf6f48eee44265156c111456a700ab3483686b3f96df4cf5481c89157319"
+SRC_URI[quote-1.0.4.sha256sum] = "4c1f4b0efa5fc5e8ceb705136bfee52cfdb6a4e3509f770b478cd6ed434232a7"
+SRC_URI[rustc-demangle-0.1.16.sha256sum] = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
+SRC_URI[syn-1.0.18.sha256sum] = "410a7488c0a728c7ceb4ad59b9567eb4053d02e8cc7f5c0e0eeeb39518369213"
+SRC_URI[synstructure-0.12.3.sha256sum] = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545"
+SRC_URI[unicode-xid-0.2.0.sha256sum] = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
+# from rust/vendor/alloc-stdlib/Cargo.lock
SRC_URI += " \
- crate://crates.io/alloc-no-stdlib/2.0.4;name=alloc-no-stdlib-2.0.4 \
- crate://crates.io/alloc-stdlib/0.2.2;name=alloc-stdlib-0.2.2 \
+ crate://crates.io/alloc-no-stdlib/2.0.4 \
"
SRC_URI[alloc-no-stdlib-2.0.4.sha256sum] = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
-SRC_URI[alloc-stdlib-0.2.2.sha256sum] = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
-# from vendor/phf_generator/Cargo.lock
+# from rust/vendor/bendy/Cargo.lock
SRC_URI += " \
- crate://crates.io/arrayvec/0.4.12;name=arrayvec-0.4.12 \
- crate://crates.io/atty/0.2.13;name=atty-0.2.13 \
- crate://crates.io/autocfg/0.1.6;name=autocfg-0.1.6 \
- crate://crates.io/bitflags/1.2.1;name=bitflags-1.2.1 \
- crate://crates.io/bstr/0.2.8;name=bstr-0.2.8 \
- crate://crates.io/byteorder/1.3.2;name=byteorder-1.3.2 \
- crate://crates.io/c2-chacha/0.2.2;name=c2-chacha-0.2.2 \
- crate://crates.io/cast/0.2.2;name=cast-0.2.2 \
- crate://crates.io/cfg-if/0.1.10;name=cfg-if-0.1.10 \
- crate://crates.io/clap/2.33.0;name=clap-2.33.0 \
- crate://crates.io/criterion/0.3.0;name=criterion-0.3.0 \
- crate://crates.io/criterion-plot/0.4.0;name=criterion-plot-0.4.0 \
- crate://crates.io/crossbeam-deque/0.7.1;name=crossbeam-deque-0.7.1 \
- crate://crates.io/crossbeam-epoch/0.7.2;name=crossbeam-epoch-0.7.2 \
- crate://crates.io/crossbeam-queue/0.1.2;name=crossbeam-queue-0.1.2 \
- crate://crates.io/crossbeam-utils/0.6.6;name=crossbeam-utils-0.6.6 \
- crate://crates.io/csv/1.1.1;name=csv-1.1.1 \
- crate://crates.io/csv-core/0.1.6;name=csv-core-0.1.6 \
- crate://crates.io/either/1.5.3;name=either-1.5.3 \
- crate://crates.io/getrandom/0.1.12;name=getrandom-0.1.12 \
- crate://crates.io/itertools/0.8.0;name=itertools-0.8.0 \
- crate://crates.io/itoa/0.4.4;name=itoa-0.4.4 \
- crate://crates.io/lazy_static/1.4.0;name=lazy_static-1.4.0 \
- crate://crates.io/libc/0.2.64;name=libc-0.2.64 \
- crate://crates.io/memchr/2.2.1;name=memchr-2.2.1 \
- crate://crates.io/memoffset/0.5.1;name=memoffset-0.5.1 \
- crate://crates.io/nodrop/0.1.14;name=nodrop-0.1.14 \
- crate://crates.io/num-traits/0.2.8;name=num-traits-0.2.8 \
- crate://crates.io/num_cpus/1.10.1;name=num_cpus-1.10.1 \
- crate://crates.io/phf_shared/0.8.0;name=phf_shared-0.8.0 \
- crate://crates.io/ppv-lite86/0.2.5;name=ppv-lite86-0.2.5 \
- crate://crates.io/proc-macro2/1.0.5;name=proc-macro2-1.0.5 \
- crate://crates.io/quote/1.0.2;name=quote-1.0.2 \
- crate://crates.io/rand/0.7.2;name=rand-0.7.2 \
- crate://crates.io/rand_chacha/0.2.1;name=rand_chacha-0.2.1 \
- crate://crates.io/rand_core/0.5.1;name=rand_core-0.5.1 \
- crate://crates.io/rand_hc/0.2.0;name=rand_hc-0.2.0 \
- crate://crates.io/rand_os/0.2.2;name=rand_os-0.2.2 \
- crate://crates.io/rand_pcg/0.2.0;name=rand_pcg-0.2.0 \
- crate://crates.io/rand_xoshiro/0.3.1;name=rand_xoshiro-0.3.1 \
- crate://crates.io/rayon/1.2.0;name=rayon-1.2.0 \
- crate://crates.io/rayon-core/1.6.0;name=rayon-core-1.6.0 \
- crate://crates.io/regex-automata/0.1.8;name=regex-automata-0.1.8 \
- crate://crates.io/rustc_version/0.2.3;name=rustc_version-0.2.3 \
- crate://crates.io/ryu/1.0.2;name=ryu-1.0.2 \
- crate://crates.io/same-file/1.0.5;name=same-file-1.0.5 \
- crate://crates.io/scopeguard/1.0.0;name=scopeguard-1.0.0 \
- crate://crates.io/semver/0.9.0;name=semver-0.9.0 \
- crate://crates.io/semver-parser/0.7.0;name=semver-parser-0.7.0 \
- crate://crates.io/serde/1.0.101;name=serde-1.0.101 \
- crate://crates.io/serde_derive/1.0.101;name=serde_derive-1.0.101 \
- crate://crates.io/serde_json/1.0.41;name=serde_json-1.0.41 \
- crate://crates.io/siphasher/0.3.1;name=siphasher-0.3.1 \
- crate://crates.io/syn/1.0.5;name=syn-1.0.5 \
- crate://crates.io/textwrap/0.11.0;name=textwrap-0.11.0 \
- crate://crates.io/tinytemplate/1.0.2;name=tinytemplate-1.0.2 \
- crate://crates.io/unicode-width/0.1.6;name=unicode-width-0.1.6 \
- crate://crates.io/unicode-xid/0.2.0;name=unicode-xid-0.2.0 \
- crate://crates.io/walkdir/2.2.9;name=walkdir-2.2.9 \
- crate://crates.io/wasi/0.7.0;name=wasi-0.7.0 \
- crate://crates.io/winapi/0.3.8;name=winapi-0.3.8 \
- crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0;name=winapi-i686-pc-windows-gnu-0.4.0 \
- crate://crates.io/winapi-util/0.1.2;name=winapi-util-0.1.2 \
- crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0;name=winapi-x86_64-pc-windows-gnu-0.4.0 \
+ crate://crates.io/addr2line/0.14.0 \
+ crate://crates.io/adler/0.2.3 \
+ crate://crates.io/aho-corasick/0.7.15 \
+ crate://crates.io/autocfg/1.0.1 \
+ crate://crates.io/backtrace/0.3.54 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/failure/0.1.8 \
+ crate://crates.io/failure_derive/0.1.8 \
+ crate://crates.io/gimli/0.23.0 \
+ crate://crates.io/lazy_static/1.4.0 \
+ crate://crates.io/libc/0.2.80 \
+ crate://crates.io/memchr/2.3.4 \
+ crate://crates.io/miniz_oxide/0.4.3 \
+ crate://crates.io/object/0.22.0 \
+ crate://crates.io/proc-macro2/1.0.24 \
+ crate://crates.io/quote/1.0.7 \
+ crate://crates.io/regex/1.4.2 \
+ crate://crates.io/regex-syntax/0.6.21 \
+ crate://crates.io/rustc-demangle/0.1.18 \
+ crate://crates.io/serde/1.0.117 \
+ crate://crates.io/serde_bytes/0.11.5 \
+ crate://crates.io/serde_derive/1.0.117 \
+ crate://crates.io/syn/1.0.48 \
+ crate://crates.io/synstructure/0.12.4 \
+ crate://crates.io/thread_local/1.0.1 \
+ crate://crates.io/unicode-xid/0.2.1 \
"
-# from vendor/rand/Cargo.lock
+SRC_URI[addr2line-0.14.0.sha256sum] = "7c0929d69e78dd9bf5408269919fcbcaeb2e35e5d43e5815517cdc6a8e11a423"
+SRC_URI[adler-0.2.3.sha256sum] = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
+SRC_URI[aho-corasick-0.7.15.sha256sum] = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
+SRC_URI[autocfg-1.0.1.sha256sum] = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+SRC_URI[backtrace-0.3.54.sha256sum] = "2baad346b2d4e94a24347adeee9c7a93f412ee94b9cc26e5b59dea23848e9f28"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[failure-0.1.8.sha256sum] = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
+SRC_URI[failure_derive-0.1.8.sha256sum] = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
+SRC_URI[gimli-0.23.0.sha256sum] = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.80.sha256sum] = "4d58d1b70b004888f764dfbf6a26a3b0342a1632d33968e4a179d8011c760614"
+SRC_URI[memchr-2.3.4.sha256sum] = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
+SRC_URI[miniz_oxide-0.4.3.sha256sum] = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d"
+SRC_URI[object-0.22.0.sha256sum] = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397"
+SRC_URI[proc-macro2-1.0.24.sha256sum] = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
+SRC_URI[quote-1.0.7.sha256sum] = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
+SRC_URI[regex-1.4.2.sha256sum] = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"
+SRC_URI[regex-syntax-0.6.21.sha256sum] = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"
+SRC_URI[rustc-demangle-0.1.18.sha256sum] = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232"
+SRC_URI[serde-1.0.117.sha256sum] = "b88fa983de7720629c9387e9f517353ed404164b1e482c970a90c1a4aaf7dc1a"
+SRC_URI[serde_bytes-0.11.5.sha256sum] = "16ae07dd2f88a366f15bd0632ba725227018c69a1c8550a927324f8eb8368bb9"
+SRC_URI[serde_derive-1.0.117.sha256sum] = "cbd1ae72adb44aab48f325a02444a5fc079349a8d804c1fc922aed3f7454c74e"
+SRC_URI[syn-1.0.48.sha256sum] = "cc371affeffc477f42a221a1e4297aedcea33d47d19b61455588bd9d8f6b19ac"
+SRC_URI[synstructure-0.12.4.sha256sum] = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
+SRC_URI[thread_local-1.0.1.sha256sum] = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
+SRC_URI[unicode-xid-0.2.1.sha256sum] = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
+# from rust/vendor/regex/Cargo.lock
SRC_URI += " \
- crate://crates.io/base-x/0.2.5;name=base-x-0.2.5 \
- crate://crates.io/bumpalo/2.6.0;name=bumpalo-2.6.0 \
- crate://crates.io/c2-chacha/0.2.2;name=c2-chacha-0.2.2 \
- crate://crates.io/cfg-if/0.1.9;name=cfg-if-0.1.9 \
- crate://crates.io/discard/1.0.4;name=discard-1.0.4 \
- crate://crates.io/getrandom/0.1.12;name=getrandom-0.1.12 \
- crate://crates.io/itoa/0.4.4;name=itoa-0.4.4 \
- crate://crates.io/lazy_static/1.4.0;name=lazy_static-1.4.0 \
- crate://crates.io/libc/0.2.62;name=libc-0.2.62 \
- crate://crates.io/log/0.4.8;name=log-0.4.8 \
- crate://crates.io/packed_simd/0.3.3;name=packed_simd-0.3.3 \
- crate://crates.io/ppv-lite86/0.2.5;name=ppv-lite86-0.2.5 \
- crate://crates.io/proc-macro2/0.4.30;name=proc-macro2-0.4.30 \
- crate://crates.io/proc-macro2/1.0.3;name=proc-macro2-1.0.3 \
- crate://crates.io/quote/0.6.13;name=quote-0.6.13 \
- crate://crates.io/quote/1.0.2;name=quote-1.0.2 \
- crate://crates.io/rand_chacha/0.2.1;name=rand_chacha-0.2.1 \
- crate://crates.io/rand_core/0.5.1;name=rand_core-0.5.1 \
- crate://crates.io/rand_hc/0.2.0;name=rand_hc-0.2.0 \
- crate://crates.io/rand_pcg/0.2.1;name=rand_pcg-0.2.1 \
- crate://crates.io/rustc_version/0.2.3;name=rustc_version-0.2.3 \
- crate://crates.io/ryu/1.0.0;name=ryu-1.0.0 \
- crate://crates.io/semver/0.9.0;name=semver-0.9.0 \
- crate://crates.io/semver-parser/0.7.0;name=semver-parser-0.7.0 \
- crate://crates.io/serde/1.0.100;name=serde-1.0.100 \
- crate://crates.io/serde_derive/1.0.100;name=serde_derive-1.0.100 \
- crate://crates.io/serde_json/1.0.40;name=serde_json-1.0.40 \
- crate://crates.io/sha1/0.6.0;name=sha1-0.6.0 \
- crate://crates.io/stdweb/0.4.18;name=stdweb-0.4.18 \
- crate://crates.io/stdweb-derive/0.5.1;name=stdweb-derive-0.5.1 \
- crate://crates.io/stdweb-internal-macros/0.2.7;name=stdweb-internal-macros-0.2.7 \
- crate://crates.io/stdweb-internal-runtime/0.1.4;name=stdweb-internal-runtime-0.1.4 \
- crate://crates.io/syn/0.15.44;name=syn-0.15.44 \
- crate://crates.io/syn/1.0.5;name=syn-1.0.5 \
- crate://crates.io/unicode-xid/0.1.0;name=unicode-xid-0.1.0 \
- crate://crates.io/unicode-xid/0.2.0;name=unicode-xid-0.2.0 \
- crate://crates.io/wasi/0.7.0;name=wasi-0.7.0 \
- crate://crates.io/wasm-bindgen/0.2.50;name=wasm-bindgen-0.2.50 \
- crate://crates.io/wasm-bindgen-backend/0.2.50;name=wasm-bindgen-backend-0.2.50 \
- crate://crates.io/wasm-bindgen-macro/0.2.50;name=wasm-bindgen-macro-0.2.50 \
- crate://crates.io/wasm-bindgen-macro-support/0.2.50;name=wasm-bindgen-macro-support-0.2.50 \
- crate://crates.io/wasm-bindgen-shared/0.2.50;name=wasm-bindgen-shared-0.2.50 \
+ crate://crates.io/aho-corasick/0.7.18 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/getrandom/0.2.6 \
+ crate://crates.io/lazy_static/1.4.0 \
+ crate://crates.io/libc/0.2.125 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/quickcheck/1.0.3 \
+ crate://crates.io/rand/0.8.5 \
+ crate://crates.io/rand_core/0.6.3 \
+ crate://crates.io/regex-syntax/0.6.26 \
+ crate://crates.io/wasi/0.10.2+wasi-snapshot-preview1 \
"
-SRC_URI[arrayvec-0.4.11.sha256sum] = "b8d73f9beda665eaa98ab9e4f7442bd4e7de6652587de55b2525e52e29c1b0ba"
-SRC_URI[atty-0.2.12.sha256sum] = "ecaaea69f52b3b18633611ec0007d188517d0366f47ff703d400fa6879d6f8d5"
-SRC_URI[autocfg-0.1.4.sha256sum] = "0e49efa51329a5fd37e7c79db4621af617cd4e3e5bc224939808d076077077bf"
-SRC_URI[bitflags-1.1.0.sha256sum] = "3d155346769a6855b86399e9bc3814ab343cd3d62c7e985113d46a0ec3c281fd"
-SRC_URI[bstr-0.2.1.sha256sum] = "6cc0572e02f76cb335f309b19e0a0d585b4f62788f7d26de2a13a836a637385f"
-SRC_URI[byteorder-1.3.2.sha256sum] = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
-SRC_URI[cast-0.2.2.sha256sum] = "926013f2860c46252efceabb19f4a6b308197505082c609025aa6706c011d427"
-SRC_URI[cfg-if-0.1.9.sha256sum] = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
-SRC_URI[clap-2.33.0.sha256sum] = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
-SRC_URI[cloudabi-0.0.3.sha256sum] = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-SRC_URI[criterion-0.3.0.sha256sum] = "938703e165481c8d612ea3479ac8342e5615185db37765162e762ec3523e2fc6"
-SRC_URI[criterion-plot-0.4.0.sha256sum] = "eccdc6ce8bbe352ca89025bee672aa6d24f4eb8c53e3a8b5d1bc58011da072a2"
-SRC_URI[crossbeam-deque-0.6.3.sha256sum] = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13"
-SRC_URI[crossbeam-epoch-0.7.1.sha256sum] = "04c9e3102cc2d69cd681412141b390abd55a362afc1540965dad0ad4d34280b4"
-SRC_URI[crossbeam-queue-0.1.2.sha256sum] = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
-SRC_URI[crossbeam-utils-0.6.5.sha256sum] = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c"
-SRC_URI[csv-1.1.1.sha256sum] = "37519ccdfd73a75821cac9319d4fce15a81b9fcf75f951df5b9988aa3a0af87d"
-SRC_URI[csv-core-0.1.6.sha256sum] = "9b5cadb6b25c77aeff80ba701712494213f4a8418fcda2ee11b6560c3ad0bf4c"
-SRC_URI[doc-comment-0.3.1.sha256sum] = "923dea538cea0aa3025e8685b20d6ee21ef99c4f77e954a30febbaac5ec73a97"
-SRC_URI[either-1.5.2.sha256sum] = "5527cfe0d098f36e3f8839852688e63c8fff1c90b2b405aef730615f9a7bcf7b"
-SRC_URI[fuchsia-cprng-0.1.1.sha256sum] = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
-SRC_URI[getrandom-0.1.13.sha256sum] = "e7db7ca94ed4cd01190ceee0d8a8052f08a247aa1b469a7f68c6a3b71afcf407"
-SRC_URI[itertools-0.8.0.sha256sum] = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358"
-SRC_URI[itoa-0.4.4.sha256sum] = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
-SRC_URI[lazy_static-1.3.0.sha256sum] = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14"
-SRC_URI[libc-0.2.65.sha256sum] = "1a31a0627fdf1f6a39ec0dd577e101440b7db22672c0901fe00a9a6fbb5c24e8"
-SRC_URI[memchr-2.2.1.sha256sum] = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
-SRC_URI[memoffset-0.2.1.sha256sum] = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3"
-SRC_URI[nodrop-0.1.13.sha256sum] = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945"
-SRC_URI[num-traits-0.2.8.sha256sum] = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32"
-SRC_URI[num_cpus-1.10.1.sha256sum] = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273"
-SRC_URI[proc-macro2-0.4.30.sha256sum] = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
-SRC_URI[quote-0.6.13.sha256sum] = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
-SRC_URI[rand-0.6.5.sha256sum] = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
-SRC_URI[rand_chacha-0.1.1.sha256sum] = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
-SRC_URI[rand_core-0.3.1.sha256sum] = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
-SRC_URI[rand_core-0.4.0.sha256sum] = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0"
-SRC_URI[rand_core-0.5.1.sha256sum] = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-SRC_URI[rand_hc-0.1.0.sha256sum] = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
-SRC_URI[rand_isaac-0.1.1.sha256sum] = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
-SRC_URI[rand_jitter-0.1.4.sha256sum] = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
-SRC_URI[rand_os-0.1.3.sha256sum] = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
-SRC_URI[rand_os-0.2.2.sha256sum] = "a788ae3edb696cfcba1c19bfd388cc4b8c21f8a408432b199c072825084da58a"
-SRC_URI[rand_pcg-0.1.2.sha256sum] = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
-SRC_URI[rand_xorshift-0.1.1.sha256sum] = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
-SRC_URI[rand_xoshiro-0.3.1.sha256sum] = "0e18c91676f670f6f0312764c759405f13afb98d5d73819840cf72a518487bff"
-SRC_URI[rayon-1.1.0.sha256sum] = "a4b0186e22767d5b9738a05eab7c6ac90b15db17e5b5f9bd87976dd7d89a10a4"
-SRC_URI[rayon-core-1.5.0.sha256sum] = "ebbe0df8435ac0c397d467b6cad6d25543d06e8a019ef3f6af3c384597515bd2"
-SRC_URI[rdrand-0.4.0.sha256sum] = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
-SRC_URI[regex-automata-0.1.7.sha256sum] = "3ed09217220c272b29ef237a974ad58515bde75f194e3ffa7e6d0bf0f3b01f86"
-SRC_URI[ryu-1.0.0.sha256sum] = "c92464b447c0ee8c4fb3824ecc8383b81717b9f1e74ba2e72540aef7b9f82997"
-SRC_URI[same-file-1.0.4.sha256sum] = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267"
-SRC_URI[scopeguard-0.3.3.sha256sum] = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
-SRC_URI[serde-1.0.94.sha256sum] = "076a696fdea89c19d3baed462576b8f6d663064414b5c793642da8dfeb99475b"
-SRC_URI[serde_derive-1.0.94.sha256sum] = "ef45eb79d6463b22f5f9e16d283798b7c0175ba6050bc25c1a946c122727fe7b"
-SRC_URI[serde_json-1.0.40.sha256sum] = "051c49229f282f7c6f3813f8286cc1e3323e8051823fce42c7ea80fe13521704"
-SRC_URI[syn-0.15.39.sha256sum] = "b4d960b829a55e56db167e861ddb43602c003c7be0bee1d345021703fac2fb7c"
-SRC_URI[textwrap-0.11.0.sha256sum] = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-SRC_URI[tinytemplate-1.0.2.sha256sum] = "4574b75faccaacddb9b284faecdf0b544b80b6b294f3d062d325c5726a209c20"
-SRC_URI[unicode-width-0.1.5.sha256sum] = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
-SRC_URI[unicode-xid-0.1.0.sha256sum] = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
-SRC_URI[walkdir-2.2.8.sha256sum] = "c7904a7e2bb3cdf0cf5e783f44204a85a37a93151738fa349f06680f59a98b45"
-SRC_URI[wasi-0.7.0.sha256sum] = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d"
-SRC_URI[winapi-0.3.7.sha256sum] = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770"
-SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-SRC_URI[winapi-util-0.1.2.sha256sum] = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9"
-SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-SRC_URI[aho-corasick-0.7.6.sha256sum] = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d"
-SRC_URI[arrayvec-0.4.11.sha256sum] = "b8d73f9beda665eaa98ab9e4f7442bd4e7de6652587de55b2525e52e29c1b0ba"
-SRC_URI[atty-0.2.13.sha256sum] = "1803c647a3ec87095e7ae7acfca019e98de5ec9a7d01343f611cf3152ed71a90"
-SRC_URI[autocfg-0.1.6.sha256sum] = "b671c8fb71b457dd4ae18c4ba1e59aa81793daacc361d82fcd410cef0d491875"
+SRC_URI[aho-corasick-0.7.18.sha256sum] = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[getrandom-0.2.6.sha256sum] = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.125.sha256sum] = "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[quickcheck-1.0.3.sha256sum] = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_core-0.6.3.sha256sum] = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
+SRC_URI[regex-syntax-0.6.26.sha256sum] = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64"
+SRC_URI[wasi-0.10.2+wasi-snapshot-preview1.sha256sum] = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+# from rust/vendor/brotli-decompressor/Cargo.lock
+SRC_URI += " \
+ crate://crates.io/alloc-no-stdlib/2.0.4 \
+ crate://crates.io/alloc-stdlib/0.2.2 \
+"
+
+SRC_URI[alloc-no-stdlib-2.0.4.sha256sum] = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
+SRC_URI[alloc-stdlib-0.2.2.sha256sum] = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
+# from rust/vendor/phf_generator/Cargo.lock
+SRC_URI += " \
+ crate://crates.io/atty/0.2.14 \
+ crate://crates.io/autocfg/1.0.1 \
+ crate://crates.io/bitflags/1.2.1 \
+ crate://crates.io/bstr/0.2.16 \
+ crate://crates.io/bumpalo/3.7.0 \
+ crate://crates.io/cast/0.2.7 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/clap/2.33.3 \
+ crate://crates.io/criterion/0.3.4 \
+ crate://crates.io/criterion-plot/0.4.4 \
+ crate://crates.io/crossbeam-channel/0.5.1 \
+ crate://crates.io/crossbeam-deque/0.8.1 \
+ crate://crates.io/crossbeam-epoch/0.9.5 \
+ crate://crates.io/crossbeam-utils/0.8.5 \
+ crate://crates.io/csv/1.1.6 \
+ crate://crates.io/csv-core/0.1.10 \
+ crate://crates.io/either/1.6.1 \
+ crate://crates.io/getrandom/0.2.3 \
+ crate://crates.io/half/1.7.1 \
+ crate://crates.io/hermit-abi/0.1.19 \
+ crate://crates.io/itertools/0.10.1 \
+ crate://crates.io/itoa/0.4.7 \
+ crate://crates.io/js-sys/0.3.52 \
+ crate://crates.io/lazy_static/1.4.0 \
+ crate://crates.io/libc/0.2.99 \
+ crate://crates.io/log/0.4.14 \
+ crate://crates.io/memchr/2.4.0 \
+ crate://crates.io/memoffset/0.6.4 \
+ crate://crates.io/num-traits/0.2.14 \
+ crate://crates.io/num_cpus/1.13.0 \
+ crate://crates.io/oorandom/11.1.3 \
+ crate://crates.io/phf_shared/0.10.0 \
+ crate://crates.io/plotters/0.3.1 \
+ crate://crates.io/plotters-backend/0.3.2 \
+ crate://crates.io/plotters-svg/0.3.1 \
+ crate://crates.io/ppv-lite86/0.2.10 \
+ crate://crates.io/proc-macro2/1.0.28 \
+ crate://crates.io/quote/1.0.9 \
+ crate://crates.io/rand/0.8.4 \
+ crate://crates.io/rand_chacha/0.3.1 \
+ crate://crates.io/rand_core/0.6.3 \
+ crate://crates.io/rand_hc/0.3.1 \
+ crate://crates.io/rayon/1.5.1 \
+ crate://crates.io/rayon-core/1.9.1 \
+ crate://crates.io/regex/1.5.4 \
+ crate://crates.io/regex-automata/0.1.10 \
+ crate://crates.io/regex-syntax/0.6.25 \
+ crate://crates.io/rustc_version/0.4.0 \
+ crate://crates.io/ryu/1.0.5 \
+ crate://crates.io/same-file/1.0.6 \
+ crate://crates.io/scopeguard/1.1.0 \
+ crate://crates.io/semver/1.0.4 \
+ crate://crates.io/serde/1.0.127 \
+ crate://crates.io/serde_cbor/0.11.1 \
+ crate://crates.io/serde_derive/1.0.127 \
+ crate://crates.io/serde_json/1.0.66 \
+ crate://crates.io/siphasher/0.3.6 \
+ crate://crates.io/syn/1.0.74 \
+ crate://crates.io/textwrap/0.11.0 \
+ crate://crates.io/tinytemplate/1.2.1 \
+ crate://crates.io/unicode-width/0.1.8 \
+ crate://crates.io/unicode-xid/0.2.2 \
+ crate://crates.io/walkdir/2.3.2 \
+ crate://crates.io/wasi/0.10.2+wasi-snapshot-preview1 \
+ crate://crates.io/wasm-bindgen/0.2.75 \
+ crate://crates.io/wasm-bindgen-backend/0.2.75 \
+ crate://crates.io/wasm-bindgen-macro/0.2.75 \
+ crate://crates.io/wasm-bindgen-macro-support/0.2.75 \
+ crate://crates.io/wasm-bindgen-shared/0.2.75 \
+ crate://crates.io/web-sys/0.3.52 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+"
+
+SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+SRC_URI[autocfg-1.0.1.sha256sum] = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
SRC_URI[bitflags-1.2.1.sha256sum] = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-SRC_URI[bstr-0.2.7.sha256sum] = "94cdf78eb7e94c566c1f5dbe2abf8fc70a548fc902942a48c4b3a98b48ca9ade"
-SRC_URI[byteorder-1.3.2.sha256sum] = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
-SRC_URI[cast-0.2.2.sha256sum] = "926013f2860c46252efceabb19f4a6b308197505082c609025aa6706c011d427"
-SRC_URI[cc-1.0.40.sha256sum] = "b548a4ee81fccb95919d4e22cfea83c7693ebfd78f0495493178db20b3139da7"
-SRC_URI[cfg-if-0.1.9.sha256sum] = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
-SRC_URI[clap-2.33.0.sha256sum] = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
-SRC_URI[cloudabi-0.0.3.sha256sum] = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-SRC_URI[criterion-0.2.11.sha256sum] = "0363053954f3e679645fc443321ca128b7b950a6fe288cf5f9335cc22ee58394"
-SRC_URI[criterion-plot-0.3.1.sha256sum] = "76f9212ddf2f4a9eb2d401635190600656a1f88a932ef53d06e7fa4c7e02fb8e"
-SRC_URI[crossbeam-deque-0.6.3.sha256sum] = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13"
-SRC_URI[crossbeam-epoch-0.7.2.sha256sum] = "fedcd6772e37f3da2a9af9bf12ebe046c0dfe657992377b4df982a2b54cd37a9"
-SRC_URI[crossbeam-queue-0.1.2.sha256sum] = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
-SRC_URI[crossbeam-utils-0.6.6.sha256sum] = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
-SRC_URI[csv-1.1.1.sha256sum] = "37519ccdfd73a75821cac9319d4fce15a81b9fcf75f951df5b9988aa3a0af87d"
-SRC_URI[csv-core-0.1.6.sha256sum] = "9b5cadb6b25c77aeff80ba701712494213f4a8418fcda2ee11b6560c3ad0bf4c"
-SRC_URI[doc-comment-0.3.1.sha256sum] = "923dea538cea0aa3025e8685b20d6ee21ef99c4f77e954a30febbaac5ec73a97"
-SRC_URI[either-1.5.2.sha256sum] = "5527cfe0d098f36e3f8839852688e63c8fff1c90b2b405aef730615f9a7bcf7b"
-SRC_URI[fs_extra-1.1.0.sha256sum] = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674"
-SRC_URI[fuchsia-cprng-0.1.1.sha256sum] = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
-SRC_URI[itertools-0.8.0.sha256sum] = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358"
-SRC_URI[itoa-0.4.4.sha256sum] = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
-SRC_URI[jemalloc-sys-0.1.8.sha256sum] = "bfc62c8e50e381768ce8ee0428ee53741929f7ebd73e4d83f669bcf7693e00ae"
-SRC_URI[jemallocator-0.1.9.sha256sum] = "9f0cd42ac65f758063fea55126b0148b1ce0a6354ff78e07a4d6806bc65c4ab3"
-SRC_URI[lazy_static-1.3.0.sha256sum] = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14"
-SRC_URI[lexical-core-0.6.7.sha256sum] = "f86d66d380c9c5a685aaac7a11818bdfa1f733198dfd9ec09c70b762cd12ad6f"
-SRC_URI[libc-0.2.62.sha256sum] = "34fcd2c08d2f832f376f4173a231990fa5aef4e99fb569867318a227ef4c06ba"
-SRC_URI[memchr-2.2.1.sha256sum] = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
-SRC_URI[memoffset-0.5.1.sha256sum] = "ce6075db033bbbb7ee5a0bbd3a3186bbae616f57fb001c485c7ff77955f8177f"
-SRC_URI[nodrop-0.1.13.sha256sum] = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945"
-SRC_URI[num-traits-0.2.8.sha256sum] = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32"
-SRC_URI[num_cpus-1.10.1.sha256sum] = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273"
-SRC_URI[proc-macro2-1.0.1.sha256sum] = "4c5c2380ae88876faae57698be9e9775e3544decad214599c3a6266cca6ac802"
-SRC_URI[quote-1.0.2.sha256sum] = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
-SRC_URI[rand_core-0.3.1.sha256sum] = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
-SRC_URI[rand_core-0.4.2.sha256sum] = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
-SRC_URI[rand_os-0.1.3.sha256sum] = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
-SRC_URI[rand_xoshiro-0.1.0.sha256sum] = "03b418169fb9c46533f326efd6eed2576699c44ca92d3052a066214a8d828929"
-SRC_URI[rayon-1.1.0.sha256sum] = "a4b0186e22767d5b9738a05eab7c6ac90b15db17e5b5f9bd87976dd7d89a10a4"
-SRC_URI[rayon-core-1.5.0.sha256sum] = "ebbe0df8435ac0c397d467b6cad6d25543d06e8a019ef3f6af3c384597515bd2"
-SRC_URI[rdrand-0.4.0.sha256sum] = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
-SRC_URI[regex-1.2.1.sha256sum] = "88c3d9193984285d544df4a30c23a4e62ead42edf70a4452ceb76dac1ce05c26"
-SRC_URI[regex-automata-0.1.8.sha256sum] = "92b73c2a1770c255c240eaa4ee600df1704a38dc3feaa6e949e7fcd4f8dc09f9"
-SRC_URI[regex-syntax-0.6.11.sha256sum] = "b143cceb2ca5e56d5671988ef8b15615733e7ee16cd348e064333b251b89343f"
-SRC_URI[rustc_version-0.2.3.sha256sum] = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-SRC_URI[ryu-1.0.0.sha256sum] = "c92464b447c0ee8c4fb3824ecc8383b81717b9f1e74ba2e72540aef7b9f82997"
-SRC_URI[same-file-1.0.5.sha256sum] = "585e8ddcedc187886a30fa705c47985c3fa88d06624095856b36ca0b82ff4421"
-SRC_URI[scopeguard-1.0.0.sha256sum] = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d"
-SRC_URI[semver-0.9.0.sha256sum] = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-SRC_URI[semver-parser-0.7.0.sha256sum] = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-SRC_URI[serde-1.0.99.sha256sum] = "fec2851eb56d010dc9a21b89ca53ee75e6528bab60c11e89d38390904982da9f"
-SRC_URI[serde_derive-1.0.99.sha256sum] = "cb4dc18c61206b08dc98216c98faa0232f4337e1e1b8574551d5bad29ea1b425"
-SRC_URI[serde_json-1.0.40.sha256sum] = "051c49229f282f7c6f3813f8286cc1e3323e8051823fce42c7ea80fe13521704"
-SRC_URI[static_assertions-0.3.4.sha256sum] = "7f3eb36b47e512f8f1c9e3d10c2c1965bc992bd9cdb024fa581e2194501c83d3"
-SRC_URI[syn-1.0.3.sha256sum] = "158521e6f544e7e3dcfc370ac180794aa38cb34a1b1e07609376d4adcf429b93"
+SRC_URI[bstr-0.2.16.sha256sum] = "90682c8d613ad3373e66de8c6411e0ae2ab2571e879d2efbf73558cc66f21279"
+SRC_URI[bumpalo-3.7.0.sha256sum] = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631"
+SRC_URI[cast-0.2.7.sha256sum] = "4c24dab4283a142afa2fdca129b80ad2c6284e073930f964c3a1293c225ee39a"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clap-2.33.3.sha256sum] = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
+SRC_URI[criterion-0.3.4.sha256sum] = "ab327ed7354547cc2ef43cbe20ef68b988e70b4b593cbd66a2a61733123a3d23"
+SRC_URI[criterion-plot-0.4.4.sha256sum] = "d00996de9f2f7559f7f4dc286073197f83e92256a59ed395f9aac01fe717da57"
+SRC_URI[crossbeam-channel-0.5.1.sha256sum] = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
+SRC_URI[crossbeam-deque-0.8.1.sha256sum] = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
+SRC_URI[crossbeam-epoch-0.9.5.sha256sum] = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd"
+SRC_URI[crossbeam-utils-0.8.5.sha256sum] = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"
+SRC_URI[csv-1.1.6.sha256sum] = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1"
+SRC_URI[csv-core-0.1.10.sha256sum] = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
+SRC_URI[either-1.6.1.sha256sum] = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+SRC_URI[getrandom-0.2.3.sha256sum] = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
+SRC_URI[half-1.7.1.sha256sum] = "62aca2aba2d62b4a7f5b33f3712cb1b0692779a56fb510499d5c0aa594daeaf3"
+SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+SRC_URI[itertools-0.10.1.sha256sum] = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf"
+SRC_URI[itoa-0.4.7.sha256sum] = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
+SRC_URI[js-sys-0.3.52.sha256sum] = "ce791b7ca6638aae45be056e068fc756d871eb3b3b10b8efa62d1c9cec616752"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.99.sha256sum] = "a7f823d141fe0a24df1e23b4af4e3c7ba9e5966ec514ea068c93024aa7deb765"
+SRC_URI[log-0.4.14.sha256sum] = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+SRC_URI[memchr-2.4.0.sha256sum] = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc"
+SRC_URI[memoffset-0.6.4.sha256sum] = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9"
+SRC_URI[num-traits-0.2.14.sha256sum] = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+SRC_URI[num_cpus-1.13.0.sha256sum] = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
+SRC_URI[oorandom-11.1.3.sha256sum] = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
+SRC_URI[phf_shared-0.10.0.sha256sum] = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+SRC_URI[plotters-0.3.1.sha256sum] = "32a3fd9ec30b9749ce28cd91f255d569591cdf937fe280c312143e3c4bad6f2a"
+SRC_URI[plotters-backend-0.3.2.sha256sum] = "d88417318da0eaf0fdcdb51a0ee6c3bed624333bff8f946733049380be67ac1c"
+SRC_URI[plotters-svg-0.3.1.sha256sum] = "521fa9638fa597e1dc53e9412a4f9cefb01187ee1f7413076f9e6749e2885ba9"
+SRC_URI[ppv-lite86-0.2.10.sha256sum] = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
+SRC_URI[proc-macro2-1.0.28.sha256sum] = "5c7ed8b8c7b886ea3ed7dde405212185f423ab44682667c8c6dd14aa1d9f6612"
+SRC_URI[quote-1.0.9.sha256sum] = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
+SRC_URI[rand-0.8.4.sha256sum] = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.6.3.sha256sum] = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
+SRC_URI[rand_hc-0.3.1.sha256sum] = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7"
+SRC_URI[rayon-1.5.1.sha256sum] = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90"
+SRC_URI[rayon-core-1.9.1.sha256sum] = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e"
+SRC_URI[regex-1.5.4.sha256sum] = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
+SRC_URI[regex-automata-0.1.10.sha256sum] = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+SRC_URI[regex-syntax-0.6.25.sha256sum] = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
+SRC_URI[rustc_version-0.4.0.sha256sum] = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+SRC_URI[ryu-1.0.5.sha256sum] = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
+SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+SRC_URI[semver-1.0.4.sha256sum] = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012"
+SRC_URI[serde-1.0.127.sha256sum] = "f03b9878abf6d14e6779d3f24f07b2cfa90352cfec4acc5aab8f1ac7f146fae8"
+SRC_URI[serde_cbor-0.11.1.sha256sum] = "1e18acfa2f90e8b735b2836ab8d538de304cbb6729a7360729ea5a895d15a622"
+SRC_URI[serde_derive-1.0.127.sha256sum] = "a024926d3432516606328597e0f224a51355a493b49fdd67e9209187cbe55ecc"
+SRC_URI[serde_json-1.0.66.sha256sum] = "336b10da19a12ad094b59d870ebde26a45402e5b470add4b5fd03c5048a32127"
+SRC_URI[siphasher-0.3.6.sha256sum] = "729a25c17d72b06c68cb47955d44fda88ad2d3e7d77e025663fdd69b93dd71a1"
+SRC_URI[syn-1.0.74.sha256sum] = "1873d832550d4588c3dbc20f01361ab00bfe741048f71e3fecf145a7cc18b29c"
SRC_URI[textwrap-0.11.0.sha256sum] = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-SRC_URI[thread_local-0.3.6.sha256sum] = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
-SRC_URI[tinytemplate-1.0.2.sha256sum] = "4574b75faccaacddb9b284faecdf0b544b80b6b294f3d062d325c5726a209c20"
-SRC_URI[unicode-width-0.1.6.sha256sum] = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20"
-SRC_URI[unicode-xid-0.2.0.sha256sum] = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
-SRC_URI[version_check-0.9.1.sha256sum] = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce"
-SRC_URI[walkdir-2.2.9.sha256sum] = "9658c94fa8b940eab2250bd5a457f9c48b748420d71293b165c8cdbe2f55f71e"
-SRC_URI[winapi-0.3.7.sha256sum] = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770"
+SRC_URI[tinytemplate-1.2.1.sha256sum] = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
+SRC_URI[unicode-width-0.1.8.sha256sum] = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
+SRC_URI[unicode-xid-0.2.2.sha256sum] = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
+SRC_URI[walkdir-2.3.2.sha256sum] = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+SRC_URI[wasi-0.10.2+wasi-snapshot-preview1.sha256sum] = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+SRC_URI[wasm-bindgen-0.2.75.sha256sum] = "b608ecc8f4198fe8680e2ed18eccab5f0cd4caaf3d83516fa5fb2e927fda2586"
+SRC_URI[wasm-bindgen-backend-0.2.75.sha256sum] = "580aa3a91a63d23aac5b6b267e2d13cb4f363e31dce6c352fca4752ae12e479f"
+SRC_URI[wasm-bindgen-macro-0.2.75.sha256sum] = "171ebf0ed9e1458810dfcb31f2e766ad6b3a89dbda42d8901f2b268277e5f09c"
+SRC_URI[wasm-bindgen-macro-support-0.2.75.sha256sum] = "6c2657dd393f03aa2a659c25c6ae18a13a4048cebd220e147933ea837efc589f"
+SRC_URI[wasm-bindgen-shared-0.2.75.sha256sum] = "2e0c4a743a309662d45f4ede961d7afa4ba4131a59a639f29b0069c3798bbcc2"
+SRC_URI[web-sys-0.3.52.sha256sum] = "01c70a82d842c9979078c772d4a1344685045f1a5628f677c2b2eab4dd7d2696"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-SRC_URI[winapi-util-0.1.2.sha256sum] = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-SRC_URI[arrayvec-0.4.12.sha256sum] = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9"
-SRC_URI[atty-0.2.13.sha256sum] = "1803c647a3ec87095e7ae7acfca019e98de5ec9a7d01343f611cf3152ed71a90"
-SRC_URI[autocfg-0.1.6.sha256sum] = "b671c8fb71b457dd4ae18c4ba1e59aa81793daacc361d82fcd410cef0d491875"
-SRC_URI[bitflags-1.2.1.sha256sum] = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-SRC_URI[bstr-0.2.8.sha256sum] = "8d6c2c5b58ab920a4f5aeaaca34b4488074e8cc7596af94e6f8c6ff247c60245"
-SRC_URI[byteorder-1.3.2.sha256sum] = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
-SRC_URI[c2-chacha-0.2.2.sha256sum] = "7d64d04786e0f528460fc884753cf8dddcc466be308f6026f8e355c41a0e4101"
-SRC_URI[cast-0.2.2.sha256sum] = "926013f2860c46252efceabb19f4a6b308197505082c609025aa6706c011d427"
-SRC_URI[cfg-if-0.1.10.sha256sum] = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-SRC_URI[clap-2.33.0.sha256sum] = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
-SRC_URI[criterion-0.3.0.sha256sum] = "938703e165481c8d612ea3479ac8342e5615185db37765162e762ec3523e2fc6"
-SRC_URI[criterion-plot-0.4.0.sha256sum] = "eccdc6ce8bbe352ca89025bee672aa6d24f4eb8c53e3a8b5d1bc58011da072a2"
-SRC_URI[crossbeam-deque-0.7.1.sha256sum] = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71"
-SRC_URI[crossbeam-epoch-0.7.2.sha256sum] = "fedcd6772e37f3da2a9af9bf12ebe046c0dfe657992377b4df982a2b54cd37a9"
-SRC_URI[crossbeam-queue-0.1.2.sha256sum] = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
-SRC_URI[crossbeam-utils-0.6.6.sha256sum] = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
-SRC_URI[csv-1.1.1.sha256sum] = "37519ccdfd73a75821cac9319d4fce15a81b9fcf75f951df5b9988aa3a0af87d"
-SRC_URI[csv-core-0.1.6.sha256sum] = "9b5cadb6b25c77aeff80ba701712494213f4a8418fcda2ee11b6560c3ad0bf4c"
-SRC_URI[either-1.5.3.sha256sum] = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
-SRC_URI[getrandom-0.1.12.sha256sum] = "473a1265acc8ff1e808cd0a1af8cee3c2ee5200916058a2ca113c29f2d903571"
-SRC_URI[itertools-0.8.0.sha256sum] = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358"
-SRC_URI[itoa-0.4.4.sha256sum] = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
+# from rust/vendor/x509-parser/Cargo.lock
+SRC_URI += " \
+ crate://crates.io/asn1-rs/0.5.2 \
+ crate://crates.io/asn1-rs-derive/0.4.0 \
+ crate://crates.io/asn1-rs-impl/0.1.0 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/bumpalo/3.12.0 \
+ crate://crates.io/cc/1.0.79 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/data-encoding/2.3.3 \
+ crate://crates.io/der-parser/8.2.0 \
+ crate://crates.io/displaydoc/0.2.3 \
+ crate://crates.io/itoa/1.0.6 \
+ crate://crates.io/js-sys/0.3.61 \
+ crate://crates.io/lazy_static/1.4.0 \
+ crate://crates.io/libc/0.2.140 \
+ crate://crates.io/log/0.4.17 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/minimal-lexical/0.2.1 \
+ crate://crates.io/nom/7.1.3 \
+ crate://crates.io/num-bigint/0.4.3 \
+ crate://crates.io/num-integer/0.1.45 \
+ crate://crates.io/num-traits/0.2.15 \
+ crate://crates.io/oid-registry/0.6.1 \
+ crate://crates.io/once_cell/1.17.1 \
+ crate://crates.io/proc-macro2/1.0.52 \
+ crate://crates.io/quote/1.0.26 \
+ crate://crates.io/ring/0.16.20 \
+ crate://crates.io/rusticata-macros/4.1.0 \
+ crate://crates.io/serde/1.0.156 \
+ crate://crates.io/spin/0.5.2 \
+ crate://crates.io/syn/1.0.109 \
+ crate://crates.io/synstructure/0.12.6 \
+ crate://crates.io/thiserror/1.0.39 \
+ crate://crates.io/thiserror-impl/1.0.39 \
+ crate://crates.io/time/0.3.20 \
+ crate://crates.io/time-core/0.1.0 \
+ crate://crates.io/time-macros/0.2.8 \
+ crate://crates.io/unicode-ident/1.0.8 \
+ crate://crates.io/unicode-xid/0.2.4 \
+ crate://crates.io/untrusted/0.7.1 \
+ crate://crates.io/wasm-bindgen/0.2.84 \
+ crate://crates.io/wasm-bindgen-backend/0.2.84 \
+ crate://crates.io/wasm-bindgen-macro/0.2.84 \
+ crate://crates.io/wasm-bindgen-macro-support/0.2.84 \
+ crate://crates.io/wasm-bindgen-shared/0.2.84 \
+ crate://crates.io/web-sys/0.3.61 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+"
+
+SRC_URI[asn1-rs-0.5.2.sha256sum] = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0"
+SRC_URI[asn1-rs-derive-0.4.0.sha256sum] = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c"
+SRC_URI[asn1-rs-impl-0.1.0.sha256sum] = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[bumpalo-3.12.0.sha256sum] = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[data-encoding-2.3.3.sha256sum] = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb"
+SRC_URI[der-parser-8.2.0.sha256sum] = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e"
+SRC_URI[displaydoc-0.2.3.sha256sum] = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886"
+SRC_URI[itoa-1.0.6.sha256sum] = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+SRC_URI[js-sys-0.3.61.sha256sum] = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-SRC_URI[libc-0.2.64.sha256sum] = "74dfca3d9957906e8d1e6a0b641dc9a59848e793f1da2165889fd4f62d10d79c"
-SRC_URI[memchr-2.2.1.sha256sum] = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
-SRC_URI[memoffset-0.5.1.sha256sum] = "ce6075db033bbbb7ee5a0bbd3a3186bbae616f57fb001c485c7ff77955f8177f"
-SRC_URI[nodrop-0.1.14.sha256sum] = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
-SRC_URI[num-traits-0.2.8.sha256sum] = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32"
-SRC_URI[num_cpus-1.10.1.sha256sum] = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273"
-SRC_URI[phf_shared-0.8.0.sha256sum] = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
-SRC_URI[ppv-lite86-0.2.5.sha256sum] = "e3cbf9f658cdb5000fcf6f362b8ea2ba154b9f146a61c7a20d647034c6b6561b"
-SRC_URI[proc-macro2-1.0.5.sha256sum] = "90cf5f418035b98e655e9cdb225047638296b862b42411c4e45bb88d700f7fc0"
-SRC_URI[quote-1.0.2.sha256sum] = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
-SRC_URI[rand-0.7.2.sha256sum] = "3ae1b169243eaf61759b8475a998f0a385e42042370f3a7dbaf35246eacc8412"
-SRC_URI[rand_chacha-0.2.1.sha256sum] = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
-SRC_URI[rand_core-0.5.1.sha256sum] = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-SRC_URI[rand_hc-0.2.0.sha256sum] = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-SRC_URI[rand_os-0.2.2.sha256sum] = "a788ae3edb696cfcba1c19bfd388cc4b8c21f8a408432b199c072825084da58a"
-SRC_URI[rand_pcg-0.2.0.sha256sum] = "3e196346cbbc5c70c77e7b4926147ee8e383a38ee4d15d58a08098b169e492b6"
-SRC_URI[rand_xoshiro-0.3.1.sha256sum] = "0e18c91676f670f6f0312764c759405f13afb98d5d73819840cf72a518487bff"
-SRC_URI[rayon-1.2.0.sha256sum] = "83a27732a533a1be0a0035a111fe76db89ad312f6f0347004c220c57f209a123"
-SRC_URI[rayon-core-1.6.0.sha256sum] = "98dcf634205083b17d0861252431eb2acbfb698ab7478a2d20de07954f47ec7b"
-SRC_URI[regex-automata-0.1.8.sha256sum] = "92b73c2a1770c255c240eaa4ee600df1704a38dc3feaa6e949e7fcd4f8dc09f9"
-SRC_URI[rustc_version-0.2.3.sha256sum] = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-SRC_URI[ryu-1.0.2.sha256sum] = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8"
-SRC_URI[same-file-1.0.5.sha256sum] = "585e8ddcedc187886a30fa705c47985c3fa88d06624095856b36ca0b82ff4421"
-SRC_URI[scopeguard-1.0.0.sha256sum] = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d"
-SRC_URI[semver-0.9.0.sha256sum] = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-SRC_URI[semver-parser-0.7.0.sha256sum] = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-SRC_URI[serde-1.0.101.sha256sum] = "9796c9b7ba2ffe7a9ce53c2287dfc48080f4b2b362fcc245a259b3a7201119dd"
-SRC_URI[serde_derive-1.0.101.sha256sum] = "4b133a43a1ecd55d4086bd5b4dc6c1751c68b1bfbeba7a5040442022c7e7c02e"
-SRC_URI[serde_json-1.0.41.sha256sum] = "2f72eb2a68a7dc3f9a691bfda9305a1c017a6215e5a4545c258500d2099a37c2"
-SRC_URI[siphasher-0.3.1.sha256sum] = "83da420ee8d1a89e640d0948c646c1c088758d3a3c538f943bfa97bdac17929d"
-SRC_URI[syn-1.0.5.sha256sum] = "66850e97125af79138385e9b88339cbcd037e3f28ceab8c5ad98e64f0f1f80bf"
-SRC_URI[textwrap-0.11.0.sha256sum] = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-SRC_URI[tinytemplate-1.0.2.sha256sum] = "4574b75faccaacddb9b284faecdf0b544b80b6b294f3d062d325c5726a209c20"
-SRC_URI[unicode-width-0.1.6.sha256sum] = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20"
-SRC_URI[unicode-xid-0.2.0.sha256sum] = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
-SRC_URI[walkdir-2.2.9.sha256sum] = "9658c94fa8b940eab2250bd5a457f9c48b748420d71293b165c8cdbe2f55f71e"
-SRC_URI[wasi-0.7.0.sha256sum] = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d"
-SRC_URI[winapi-0.3.8.sha256sum] = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
+SRC_URI[libc-0.2.140.sha256sum] = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
+SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+SRC_URI[num-bigint-0.4.3.sha256sum] = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+SRC_URI[oid-registry-0.6.1.sha256sum] = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff"
+SRC_URI[once_cell-1.17.1.sha256sum] = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+SRC_URI[proc-macro2-1.0.52.sha256sum] = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224"
+SRC_URI[quote-1.0.26.sha256sum] = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+SRC_URI[ring-0.16.20.sha256sum] = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+SRC_URI[rusticata-macros-4.1.0.sha256sum] = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632"
+SRC_URI[serde-1.0.156.sha256sum] = "314b5b092c0ade17c00142951e50ced110ec27cea304b1037c6969246c2469a4"
+SRC_URI[spin-0.5.2.sha256sum] = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[synstructure-0.12.6.sha256sum] = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
+SRC_URI[thiserror-1.0.39.sha256sum] = "a5ab016db510546d856297882807df8da66a16fb8c4101cb8b30054b0d5b2d9c"
+SRC_URI[thiserror-impl-1.0.39.sha256sum] = "5420d42e90af0c38c3290abcca25b9b3bdf379fc9f55c528f53a269d9c9a267e"
+SRC_URI[time-0.3.20.sha256sum] = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
+SRC_URI[time-core-0.1.0.sha256sum] = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+SRC_URI[time-macros-0.2.8.sha256sum] = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36"
+SRC_URI[unicode-ident-1.0.8.sha256sum] = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+SRC_URI[unicode-xid-0.2.4.sha256sum] = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+SRC_URI[untrusted-0.7.1.sha256sum] = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+SRC_URI[wasm-bindgen-0.2.84.sha256sum] = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+SRC_URI[wasm-bindgen-backend-0.2.84.sha256sum] = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+SRC_URI[wasm-bindgen-macro-0.2.84.sha256sum] = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+SRC_URI[wasm-bindgen-macro-support-0.2.84.sha256sum] = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+SRC_URI[wasm-bindgen-shared-0.2.84.sha256sum] = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+SRC_URI[web-sys-0.3.61.sha256sum] = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-SRC_URI[winapi-util-0.1.2.sha256sum] = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9"
SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-SRC_URI[base-x-0.2.5.sha256sum] = "76f4eae81729e69bb1819a26c6caac956cc429238388091f98cb6cd858f16443"
-SRC_URI[bumpalo-2.6.0.sha256sum] = "ad807f2fc2bf185eeb98ff3a901bd46dc5ad58163d0fa4577ba0d25674d71708"
-SRC_URI[c2-chacha-0.2.2.sha256sum] = "7d64d04786e0f528460fc884753cf8dddcc466be308f6026f8e355c41a0e4101"
-SRC_URI[cfg-if-0.1.9.sha256sum] = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
-SRC_URI[discard-1.0.4.sha256sum] = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"
-SRC_URI[getrandom-0.1.12.sha256sum] = "473a1265acc8ff1e808cd0a1af8cee3c2ee5200916058a2ca113c29f2d903571"
-SRC_URI[itoa-0.4.4.sha256sum] = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
-SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-SRC_URI[libc-0.2.62.sha256sum] = "34fcd2c08d2f832f376f4173a231990fa5aef4e99fb569867318a227ef4c06ba"
-SRC_URI[log-0.4.8.sha256sum] = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
-SRC_URI[packed_simd-0.3.3.sha256sum] = "a85ea9fc0d4ac0deb6fe7911d38786b32fc11119afd9e9d38b84ff691ce64220"
-SRC_URI[ppv-lite86-0.2.5.sha256sum] = "e3cbf9f658cdb5000fcf6f362b8ea2ba154b9f146a61c7a20d647034c6b6561b"
-SRC_URI[proc-macro2-0.4.30.sha256sum] = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
-SRC_URI[proc-macro2-1.0.3.sha256sum] = "e98a83a9f9b331f54b924e68a66acb1bb35cb01fb0a23645139967abefb697e8"
-SRC_URI[quote-0.6.13.sha256sum] = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
-SRC_URI[quote-1.0.2.sha256sum] = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
-SRC_URI[rand_chacha-0.2.1.sha256sum] = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
-SRC_URI[rand_core-0.5.1.sha256sum] = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-SRC_URI[rand_hc-0.2.0.sha256sum] = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-SRC_URI[rand_pcg-0.2.1.sha256sum] = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
-SRC_URI[rustc_version-0.2.3.sha256sum] = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-SRC_URI[ryu-1.0.0.sha256sum] = "c92464b447c0ee8c4fb3824ecc8383b81717b9f1e74ba2e72540aef7b9f82997"
-SRC_URI[semver-0.9.0.sha256sum] = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-SRC_URI[semver-parser-0.7.0.sha256sum] = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-SRC_URI[serde-1.0.100.sha256sum] = "f4473e8506b213730ff2061073b48fa51dcc66349219e2e7c5608f0296a1d95a"
-SRC_URI[serde_derive-1.0.100.sha256sum] = "11e410fde43e157d789fc290d26bc940778ad0fdd47836426fbac36573710dbb"
-SRC_URI[serde_json-1.0.40.sha256sum] = "051c49229f282f7c6f3813f8286cc1e3323e8051823fce42c7ea80fe13521704"
-SRC_URI[sha1-0.6.0.sha256sum] = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
-SRC_URI[stdweb-0.4.18.sha256sum] = "a68c0ce28cf7400ed022e18da3c4591e14e1df02c70e93573cc59921b3923aeb"
-SRC_URI[stdweb-derive-0.5.1.sha256sum] = "0e21ebd9179de08f2300a65454268a17ea3de204627458588c84319c4def3930"
-SRC_URI[stdweb-internal-macros-0.2.7.sha256sum] = "e68f7d08b76979a43e93fe043b66d2626e35d41d68b0b85519202c6dd8ac59fa"
-SRC_URI[stdweb-internal-runtime-0.1.4.sha256sum] = "d52317523542cc0af5b7e31017ad0f7d1e78da50455e38d5657cd17754f617da"
-SRC_URI[syn-0.15.44.sha256sum] = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
-SRC_URI[syn-1.0.5.sha256sum] = "66850e97125af79138385e9b88339cbcd037e3f28ceab8c5ad98e64f0f1f80bf"
-SRC_URI[unicode-xid-0.1.0.sha256sum] = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
-SRC_URI[unicode-xid-0.2.0.sha256sum] = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
-SRC_URI[wasi-0.7.0.sha256sum] = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d"
-SRC_URI[wasm-bindgen-0.2.50.sha256sum] = "dcddca308b16cd93c2b67b126c688e5467e4ef2e28200dc7dfe4ae284f2faefc"
-SRC_URI[wasm-bindgen-backend-0.2.50.sha256sum] = "f805d9328b5fc7e5c6399960fd1889271b9b58ae17bdb2417472156cc9fafdd0"
-SRC_URI[wasm-bindgen-macro-0.2.50.sha256sum] = "3ff88201a482abfc63921621f6cb18eb1efd74f136b05e5841e7f8ca434539e9"
-SRC_URI[wasm-bindgen-macro-support-0.2.50.sha256sum] = "6a433d89ecdb9f77d46fcf00c8cf9f3467b7de9954d8710c175f61e2e245bb0e"
-SRC_URI[wasm-bindgen-shared-0.2.50.sha256sum] = "d41fc1bc3570cdf8d108c15e014045fd45a95bb5eb36605f96a90461fc34027d"
-SRC_URI[autocfg-1.0.1.sha256sum] = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
-SRC_URI[brotli-3.0.3.sha256sum] = "7f29919120f08613aadcd4383764e00526fc9f18b6c0895814faeed0dd78613e"
-SRC_URI[crc-1.8.1.sha256sum] = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb"
-SRC_URI[der-parser-0.5.0.sha256sum] = "0a235b98e742e0687137c26dc4e63fe2a3953a8362dc38527e89e54d1513d548"
-SRC_URI[der-parser-4.1.0.sha256sum] = "caca07c50eaae94d43e21f4d14eca5543b6f5f5ce64715e9b7665ac5f5185b4e"
-SRC_URI[flate2-1.0.20.sha256sum] = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0"
-SRC_URI[ipsec-parser-0.5.0.sha256sum] = "4fa09785b1d327afc9178772b0c8f43b428cbf30d532366fd8e150b98e4fe90a"
-SRC_URI[kerberos-parser-0.5.0.sha256sum] = "58904d6ec6bf7a602f335a9825e96abac9963e27316a6e4681fd10ce15bfcd40"
-SRC_URI[md5-0.7.0.sha256sum] = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
-SRC_URI[memchr-2.3.4.sha256sum] = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
-SRC_URI[nom-5.1.1.sha256sum] = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6"
-SRC_URI[ntp-parser-0.5.0.sha256sum] = "b4dcbdbccb49a50f69ea3c98155e6e7678b600a3c097f6aac1e7b32d0ba8ffd6"
-SRC_URI[num-0.2.1.sha256sum] = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36"
-SRC_URI[num-derive-0.2.5.sha256sum] = "eafd0b45c5537c3ba526f79d3e75120036502bebacbb3f3220914067ce39dbf2"
-SRC_URI[snmp-parser-0.6.0.sha256sum] = "ce1062255da4ec2ea2f0d985aecf85864a989d6de97883ec4ccca915d8c86a05"
-SRC_URI[tls-parser-0.9.4.sha256sum] = "579c8a8cdde06a13c7209eb7d5c752d1913489ecdb162264503a39ad9053587f"
-SRC_URI[uuid-0.8.2.sha256sum] = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
-SRC_URI[widestring-0.4.3.sha256sum] = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c"
-SRC_URI[x509-parser-0.6.5.sha256sum] = "99bbe736dd2b422d66e4830f4a06f34387c9814c027efcbda5c2f86463e8e5b0"
-SRC_URI[test-case-1.0.1.sha256sum] = "e8b114c45b5a342ec701e8775ec130bfee537c9d0fedc747594f51d85e7b6988"
-SRC_URI[build_const-0.2.1.sha256sum] = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39"
-SRC_URI[der-oid-macro-0.2.0.sha256sum] = "e66558629d772c3be040566b7be07be8c8f5aecee95e4a092dfe2efc313277ad"
-SRC_URI[proc-macro-hack-0.5.19.sha256sum] = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
-SRC_URI[rusticata-macros-2.1.0.sha256sum] = "f8a9050636e8a1b487ba1fbe99114021cd7594dde3ce6ed95bfc1691e5b5367b"
-SRC_URI[miniz_oxide-0.4.4.sha256sum] = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
-SRC_URI[num-bigint-0.2.6.sha256sum] = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"
-SRC_URI[num-complex-0.2.4.sha256sum] = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95"
-SRC_URI[num-integer-0.1.44.sha256sum] = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
-SRC_URI[num-iter-0.1.42.sha256sum] = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
-SRC_URI[num-rational-0.2.4.sha256sum] = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
-SRC_URI[num-traits-0.2.14.sha256sum] = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
-SRC_URI[enum_primitive-0.1.1.sha256sum] = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180"
-SRC_URI[phf-0.8.0.sha256sum] = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
-SRC_URI[phf_codegen-0.8.0.sha256sum] = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
-SRC_URI[phf_generator-0.8.0.sha256sum] = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
-SRC_URI[base64-0.11.0.sha256sum] = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
-SRC_URI[der-parser-3.0.4.sha256sum] = "f51f64dcdf1cdc550d21d73dc959726c7dbeeab4a01481d08084a7736956464e"
-SRC_URI[time-0.1.44.sha256sum] = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
-SRC_URI[num-traits-0.1.43.sha256sum] = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
-SRC_URI[wasi-0.10.0+wasi-snapshot-preview1.sha256sum] = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
-SRC_URI[lexical-core-0.6.8.sha256sum] = "233853dfa6b87c7c00eb46a205802069263ab27e16b6bdd1b08ddf91a855e30c"
-SRC_URI[num-bigint-0.3.1.sha256sum] = "5e9a41747ae4633fce5adffb4d2e81ffc5e89593cb19917f8fb2cc5ff76507bf"
-
diff --git a/meta-security/recipes-ids/suricata/suricata_6.0.11.bb b/meta-security/recipes-ids/suricata/suricata_7.0.0.bb
index 914278ea2a..a52f081573 100644
--- a/meta-security/recipes-ids/suricata/suricata_6.0.11.bb
+++ b/meta-security/recipes-ids/suricata/suricata_7.0.0.bb
@@ -5,7 +5,7 @@ require suricata.inc
LIC_FILES_CHKSUM = "file://LICENSE;beginline=1;endline=2;md5=c70d8d3310941dcdfcd1e02800a1f548"
SRC_URI = "http://www.openinfosecfoundation.org/download/suricata-${PV}.tar.gz"
-SRC_URI[sha256sum] = "4da5e4e91e49992633a6024ce10afe6441255b2775a8f20f1ef188bd1129ac66"
+SRC_URI[sha256sum] = "7bcd1313118366451465dc3f8385a3f6aadd084ffe44dd257dda8105863bb769"
DEPENDS = "lz4 libhtp"
@@ -30,15 +30,17 @@ EXTRA_OECONF += " --disable-debug \
"
CARGO_SRC_DIR = "rust"
-#CARGO_LOCK_SRC_DIR = "${S}/rust"
+
+CARGO_BUILD_FLAGS:remove = "--frozen"
+CARGO_BUILD_FLAGS:append = " --offline"
B = "${S}"
# nfnetlink has a dependancy to meta-networking
-PACKAGECONFIG ??= "jansson file pcre yaml python pcap cap-ng net nss nspr "
+PACKAGECONFIG ??= "jansson file pcre2 yaml python pcap cap-ng net nss nspr "
PACKAGECONFIG:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'unittests', '', d)}"
-PACKAGECONFIG[pcre] = "--with-libpcre-includes=${STAGING_INCDIR} --with-libpcre-libraries=${STAGING_LIBDIR}, ,libpcre ,"
+PACKAGECONFIG[pcre2] = "--with-libpcre2-includes=${STAGING_INCDIR} --with-libpcre2-libraries=${STAGING_LIBDIR}, ,libpcre2 ,"
PACKAGECONFIG[yaml] = "--with-libyaml-includes=${STAGING_INCDIR} --with-libyaml-libraries=${STAGING_LIBDIR}, ,libyaml ,"
PACKAGECONFIG[pcap] = "--with-libpcap-includes=${STAGING_INCDIR} --with-libpcap-libraries=${STAGING_LIBDIR}, ,libpcap"
PACKAGECONFIG[cap-ng] = "--with-libcap_ng-includes=${STAGING_INCDIR} --with-libcap_ng-libraries=${STAGING_LIBDIR}, ,libcap-ng , "
@@ -60,6 +62,7 @@ CACHED_CONFIGUREVARS = "ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_non
do_configure:prepend () {
# use host for RUST_SURICATA_LIB_XC_DIR
sed -i -e 's,\${host_alias},${RUST_HOST_SYS},' ${S}/configure.ac
+ sed -i -e 's,libsuricata_rust.a,libsuricata.a,' ${S}/configure.ac
oe_runconf
}
diff --git a/meta-security/recipes-kernel/lkrg/lkrg-module_0.9.6.bb b/meta-security/recipes-kernel/lkrg/lkrg-module_0.9.7.bb
index 421d924edf..020c3a1df3 100644
--- a/meta-security/recipes-kernel/lkrg/lkrg-module_0.9.6.bb
+++ b/meta-security/recipes-kernel/lkrg/lkrg-module_0.9.7.bb
@@ -5,13 +5,13 @@ SECTION = "security"
HOMEPAGE = "https://www.openwall.com/lkrg/"
LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3f3e5dd56319d33a1944d635c1c86c6f"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=57534ed9f03a5810945cd9be4a81db41"
DEPENDS = "virtual/kernel elfutils"
SRC_URI = "git://github.com/lkrg-org/lkrg.git;protocol=https;branch=main"
-SRCREV = "2481b3e2dd04eac945c31f99058b0aeee73c3a71"
+SRCREV = "5dc5cfea1f4dc8febdd5274d99e277c17df06acc"
S = "${WORKDIR}/git"
diff --git a/poky/bitbake/bin/bitbake-getvar b/poky/bitbake/bin/bitbake-getvar
index 4a9eb4f311..8901f99ae2 100755
--- a/poky/bitbake/bin/bitbake-getvar
+++ b/poky/bitbake/bin/bitbake-getvar
@@ -26,26 +26,35 @@ if __name__ == "__main__":
parser.add_argument('-f', '--flag', help='Specify a variable flag to query (with --value)', default=None)
parser.add_argument('--value', help='Only report the value, no history and no variable name', action="store_true")
parser.add_argument('-q', '--quiet', help='Silence bitbake server logging', action="store_true")
+ parser.add_argument('--ignore-undefined', help='Suppress any errors related to undefined variables', action="store_true")
args = parser.parse_args()
- if args.unexpand and not args.value:
- print("--unexpand only makes sense with --value")
- sys.exit(1)
+ if not args.value:
+ if args.unexpand:
+ sys.exit("--unexpand only makes sense with --value")
- if args.flag and not args.value:
- print("--flag only makes sense with --value")
- sys.exit(1)
+ if args.flag:
+ sys.exit("--flag only makes sense with --value")
- with bb.tinfoil.Tinfoil(tracking=True, setup_logging=not args.quiet) as tinfoil:
+ quiet = args.quiet or args.value
+ with bb.tinfoil.Tinfoil(tracking=True, setup_logging=not quiet) as tinfoil:
if args.recipe:
- tinfoil.prepare(quiet=2)
+ tinfoil.prepare(quiet=3 if quiet else 2)
d = tinfoil.parse_recipe(args.recipe)
else:
tinfoil.prepare(quiet=2, config_only=True)
d = tinfoil.config_data
+
+ value = None
if args.flag:
- print(str(d.getVarFlag(args.variable, args.flag, expand=(not args.unexpand))))
- elif args.value:
- print(str(d.getVar(args.variable, expand=(not args.unexpand))))
+ value = d.getVarFlag(args.variable, args.flag, expand=not args.unexpand)
+ if value is None and not args.ignore_undefined:
+ sys.exit(f"The flag '{args.flag}' is not defined for variable '{args.variable}'")
+ else:
+ value = d.getVar(args.variable, expand=not args.unexpand)
+ if value is None and not args.ignore_undefined:
+ sys.exit(f"The variable '{args.variable}' is not defined")
+ if args.value:
+ print(str(value if value is not None else ""))
else:
bb.data.emit_var(args.variable, d=d, all=True)
diff --git a/poky/bitbake/bin/bitbake-worker b/poky/bitbake/bin/bitbake-worker
index 451e6926bf..609e276fe2 100755
--- a/poky/bitbake/bin/bitbake-worker
+++ b/poky/bitbake/bin/bitbake-worker
@@ -91,19 +91,19 @@ def worker_fire_prepickled(event):
worker_thread_exit = False
def worker_flush(worker_queue):
- worker_queue_int = b""
+ worker_queue_int = bytearray()
global worker_pipe, worker_thread_exit
while True:
try:
- worker_queue_int = worker_queue_int + worker_queue.get(True, 1)
+ worker_queue_int.extend(worker_queue.get(True, 1))
except queue.Empty:
pass
while (worker_queue_int or not worker_queue.empty()):
try:
(_, ready, _) = select.select([], [worker_pipe], [], 1)
if not worker_queue.empty():
- worker_queue_int = worker_queue_int + worker_queue.get()
+ worker_queue_int.extend(worker_queue.get())
written = os.write(worker_pipe, worker_queue_int)
worker_queue_int = worker_queue_int[written:]
except (IOError, OSError) as e:
@@ -346,12 +346,12 @@ class runQueueWorkerPipe():
if pipeout:
pipeout.close()
bb.utils.nonblockingfd(self.input)
- self.queue = b""
+ self.queue = bytearray()
def read(self):
start = len(self.queue)
try:
- self.queue = self.queue + (self.input.read(102400) or b"")
+ self.queue.extend(self.input.read(102400) or b"")
except (OSError, IOError) as e:
if e.errno != errno.EAGAIN:
raise
@@ -379,7 +379,7 @@ class BitbakeWorker(object):
def __init__(self, din):
self.input = din
bb.utils.nonblockingfd(self.input)
- self.queue = b""
+ self.queue = bytearray()
self.cookercfg = None
self.databuilder = None
self.data = None
@@ -413,7 +413,7 @@ class BitbakeWorker(object):
if len(r) == 0:
# EOF on pipe, server must have terminated
self.sigterm_exception(signal.SIGTERM, None)
- self.queue = self.queue + r
+ self.queue.extend(r)
except (OSError, IOError):
pass
if len(self.queue):
diff --git a/poky/bitbake/lib/bb/codeparser.py b/poky/bitbake/lib/bb/codeparser.py
index d6b8102585..eabeda591a 100644
--- a/poky/bitbake/lib/bb/codeparser.py
+++ b/poky/bitbake/lib/bb/codeparser.py
@@ -82,7 +82,7 @@ def add_module_functions(fn, functions, namespace):
execs.remove(e)
execs.add(namespace + "." + e)
modulecode_deps[name] = [parser.references.copy(), execs, parser.var_execs.copy(), parser.contains.copy()]
- #bb.warn("%s: %s\nRefs:%s Execs: %s %s %s" % (name, src, parser.references, parser.execs, parser.var_execs, parser.contains))
+ #bb.warn("%s: %s\nRefs:%s Execs: %s %s %s" % (name, fn, parser.references, parser.execs, parser.var_execs, parser.contains))
def update_module_dependencies(d):
for mod in modulecode_deps:
diff --git a/poky/bitbake/lib/bb/command.py b/poky/bitbake/lib/bb/command.py
index b494f84a0a..f2ee587161 100644
--- a/poky/bitbake/lib/bb/command.py
+++ b/poky/bitbake/lib/bb/command.py
@@ -85,8 +85,6 @@ class Command:
if not hasattr(command_method, 'readonly') or not getattr(command_method, 'readonly'):
return None, "Not able to execute not readonly commands in readonly mode"
try:
- if command != "ping":
- self.cooker.process_inotify_updates_apply()
if getattr(command_method, 'needconfig', True):
self.cooker.updateCacheSync()
result = command_method(self, commandline)
@@ -110,7 +108,6 @@ class Command:
def runAsyncCommand(self, _, process_server, halt):
try:
- self.cooker.process_inotify_updates_apply()
if self.cooker.state in (bb.cooker.state.error, bb.cooker.state.shutdown, bb.cooker.state.forceshutdown):
# updateCache will trigger a shutdown of the parser
# and then raise BBHandledException triggering an exit
@@ -310,6 +307,11 @@ class CommandsSync:
return ret
getLayerPriorities.readonly = True
+ def revalidateCaches(self, command, params):
+ """Called by UI clients when metadata may have changed"""
+ command.cooker.revalidateCaches()
+ parseConfiguration.needconfig = False
+
def getRecipes(self, command, params):
try:
mc = params[0]
@@ -779,3 +781,9 @@ class CommandsAsync:
bb.event.fire(bb.event.FindSigInfoResult(res), command.cooker.databuilder.mcdata[mc])
command.finishAsyncCommand()
findSigInfo.needcache = False
+
+ def getTaskSignatures(self, command, params):
+ res = command.cooker.getTaskSignatures(params[0], params[1])
+ bb.event.fire(bb.event.GetTaskSignatureResult(res), command.cooker.data)
+ command.finishAsyncCommand()
+ getTaskSignatures.needcache = True
diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py
index 064e3cae6e..599c7ddaa2 100644
--- a/poky/bitbake/lib/bb/cooker.py
+++ b/poky/bitbake/lib/bb/cooker.py
@@ -22,7 +22,6 @@ from bb import utils, data, parse, event, cache, providers, taskdata, runqueue,
import queue
import signal
import prserv.serv
-import pyinotify
import json
import pickle
import codecs
@@ -173,17 +172,9 @@ class BBCooker:
self.waitIdle = server.wait_for_idle
bb.debug(1, "BBCooker starting %s" % time.time())
- sys.stdout.flush()
- self.configwatcher = None
- self.confignotifier = None
-
- self.watchmask = pyinotify.IN_CLOSE_WRITE | pyinotify.IN_CREATE | pyinotify.IN_DELETE | \
- pyinotify.IN_DELETE_SELF | pyinotify.IN_MODIFY | pyinotify.IN_MOVE_SELF | \
- pyinotify.IN_MOVED_FROM | pyinotify.IN_MOVED_TO
-
- self.watcher = None
- self.notifier = None
+ self.configwatched = {}
+ self.parsewatched = {}
# If being called by something like tinfoil, we need to clean cached data
# which may now be invalid
@@ -194,8 +185,6 @@ class BBCooker:
self.hashserv = None
self.hashservaddr = None
- self.inotify_modified_files = []
-
# TOSTOP must not be set or our children will hang when they output
try:
fd = sys.stdout.fileno()
@@ -219,53 +208,13 @@ class BBCooker:
signal.signal(signal.SIGHUP, self.sigterm_exception)
bb.debug(1, "BBCooker startup complete %s" % time.time())
- sys.stdout.flush()
-
- self.inotify_threadlock = threading.Lock()
def init_configdata(self):
if not hasattr(self, "data"):
self.initConfigurationData()
bb.debug(1, "BBCooker parsed base configuration %s" % time.time())
- sys.stdout.flush()
self.handlePRServ()
- def setupConfigWatcher(self):
- with bb.utils.lock_timeout(self.inotify_threadlock):
- if self.configwatcher:
- self.configwatcher.close()
- self.confignotifier = None
- self.configwatcher = None
- self.configwatcher = pyinotify.WatchManager()
- self.configwatcher.bbseen = set()
- self.configwatcher.bbwatchedfiles = set()
- self.confignotifier = pyinotify.Notifier(self.configwatcher, self.config_notifications)
-
- def setupParserWatcher(self):
- with bb.utils.lock_timeout(self.inotify_threadlock):
- if self.watcher:
- self.watcher.close()
- self.notifier = None
- self.watcher = None
- self.watcher = pyinotify.WatchManager()
- self.watcher.bbseen = set()
- self.watcher.bbwatchedfiles = set()
- self.notifier = pyinotify.Notifier(self.watcher, self.notifications)
-
- def process_inotify_updates(self):
- with bb.utils.lock_timeout(self.inotify_threadlock):
- for n in [self.confignotifier, self.notifier]:
- if n and n.check_events(timeout=0):
- # read notified events and enqueue them
- n.read_events()
-
- def process_inotify_updates_apply(self):
- with bb.utils.lock_timeout(self.inotify_threadlock):
- for n in [self.confignotifier, self.notifier]:
- if n and n.check_events(timeout=0):
- n.read_events()
- n.process_events()
-
def _baseconfig_set(self, value):
if value and not self.baseconfig_valid:
bb.server.process.serverlog("Base config valid")
@@ -280,88 +229,16 @@ class BBCooker:
bb.server.process.serverlog("Parse cache invalidated")
self.parsecache_valid = value
- def config_notifications(self, event):
- if event.maskname == "IN_Q_OVERFLOW":
- bb.warn("inotify event queue overflowed, invalidating caches.")
- self._parsecache_set(False)
- self._baseconfig_set(False)
- bb.parse.clear_cache()
- return
- if not event.pathname in self.configwatcher.bbwatchedfiles:
- return
- if "IN_ISDIR" in event.maskname:
- if "IN_CREATE" in event.maskname or "IN_DELETE" in event.maskname:
- if event.pathname in self.configwatcher.bbseen:
- self.configwatcher.bbseen.remove(event.pathname)
- # Could remove all entries starting with the directory but for now...
- bb.parse.clear_cache()
- if not event.pathname in self.inotify_modified_files:
- self.inotify_modified_files.append(event.pathname)
- self._baseconfig_set(False)
-
- def notifications(self, event):
- if event.maskname == "IN_Q_OVERFLOW":
- bb.warn("inotify event queue overflowed, invalidating caches.")
- self._parsecache_set(False)
- bb.parse.clear_cache()
- return
- if event.pathname.endswith("bitbake-cookerdaemon.log") \
- or event.pathname.endswith("bitbake.lock"):
- return
- if "IN_ISDIR" in event.maskname:
- if "IN_CREATE" in event.maskname or "IN_DELETE" in event.maskname:
- if event.pathname in self.watcher.bbseen:
- self.watcher.bbseen.remove(event.pathname)
- # Could remove all entries starting with the directory but for now...
- bb.parse.clear_cache()
- if not event.pathname in self.inotify_modified_files:
- self.inotify_modified_files.append(event.pathname)
- self._parsecache_set(False)
+ def add_filewatch(self, deps, configwatcher=False):
+ if configwatcher:
+ watcher = self.configwatched
+ else:
+ watcher = self.parsewatched
- def add_filewatch(self, deps, watcher=None, dirs=False):
- if not watcher:
- watcher = self.watcher
for i in deps:
- watcher.bbwatchedfiles.add(i[0])
- if dirs:
- f = i[0]
- else:
- f = os.path.dirname(i[0])
- if f in watcher.bbseen:
- continue
- watcher.bbseen.add(f)
- watchtarget = None
- while True:
- # We try and add watches for files that don't exist but if they did, would influence
- # the parser. The parent directory of these files may not exist, in which case we need
- # to watch any parent that does exist for changes.
- try:
- watcher.add_watch(f, self.watchmask, quiet=False)
- if watchtarget:
- watcher.bbwatchedfiles.add(watchtarget)
- break
- except pyinotify.WatchManagerError as e:
- if 'ENOENT' in str(e):
- watchtarget = f
- f = os.path.dirname(f)
- if f in watcher.bbseen:
- break
- watcher.bbseen.add(f)
- continue
- if 'ENOSPC' in str(e):
- providerlog.error("No space left on device or exceeds fs.inotify.max_user_watches?")
- providerlog.error("To check max_user_watches: sysctl -n fs.inotify.max_user_watches.")
- providerlog.error("To modify max_user_watches: sysctl -n -w fs.inotify.max_user_watches=<value>.")
- providerlog.error("Root privilege is required to modify max_user_watches.")
- raise
-
- def handle_inotify_updates(self):
- # reload files for which we got notifications
- for p in self.inotify_modified_files:
- bb.parse.update_cache(p)
- if p in bb.parse.BBHandler.cached_statements:
- del bb.parse.BBHandler.cached_statements[p]
- self.inotify_modified_files = []
+ f = i[0]
+ mtime = i[1]
+ watcher[f] = mtime
def sigterm_exception(self, signum, stackframe):
if signum == signal.SIGTERM:
@@ -392,8 +269,7 @@ class BBCooker:
if mod not in self.orig_sysmodules:
del sys.modules[mod]
- self.handle_inotify_updates()
- self.setupConfigWatcher()
+ self.configwatched = {}
# Need to preserve BB_CONSOLELOG over resets
consolelog = None
@@ -436,7 +312,7 @@ class BBCooker:
self.disableDataTracking()
for mc in self.databuilder.mcdata.values():
- self.add_filewatch(mc.getVar("__base_depends", False), self.configwatcher)
+ self.add_filewatch(mc.getVar("__base_depends", False), configwatcher=True)
self._baseconfig_set(True)
self._parsecache_set(False)
@@ -486,6 +362,29 @@ class BBCooker:
if hasattr(self, "data"):
self.data.disableTracking()
+ def revalidateCaches(self):
+ bb.parse.clear_cache()
+
+ clean = True
+ for f in self.configwatched:
+ if not bb.parse.check_mtime(f, self.configwatched[f]):
+ bb.server.process.serverlog("Found %s changed, invalid cache" % f)
+ self._baseconfig_set(False)
+ self._parsecache_set(False)
+ clean = False
+ break
+
+ if clean:
+ for f in self.parsewatched:
+ if not bb.parse.check_mtime(f, self.parsewatched[f]):
+ bb.server.process.serverlog("Found %s changed, invalid cache" % f)
+ self._parsecache_set(False)
+ clean = False
+ break
+
+ if not clean:
+ bb.parse.BBHandler.cached_statements = {}
+
def parseConfiguration(self):
self.updateCacheSync()
@@ -566,6 +465,7 @@ class BBCooker:
# Now update all the variables not in the datastore to match
self.configuration.env = environment
+ self.revalidateCaches()
if not clean:
logger.debug("Base environment change, triggering reparse")
self.reset()
@@ -1542,6 +1442,37 @@ class BBCooker:
self.idleCallBackRegister(buildFileIdle, rq)
+ def getTaskSignatures(self, target, tasks):
+ sig = []
+ getAllTaskSignatures = False
+
+ if not tasks:
+ tasks = ["do_build"]
+ getAllTaskSignatures = True
+
+ for task in tasks:
+ taskdata, runlist = self.buildTaskData(target, task, self.configuration.halt)
+ rq = bb.runqueue.RunQueue(self, self.data, self.recipecaches, taskdata, runlist)
+ rq.rqdata.prepare()
+
+ for l in runlist:
+ mc, pn, taskname, fn = l
+
+ taskdep = rq.rqdata.dataCaches[mc].task_deps[fn]
+ for t in taskdep['tasks']:
+ if t in taskdep['nostamp'] or "setscene" in t:
+ continue
+ tid = bb.runqueue.build_tid(mc, fn, t)
+
+ if t in task or getAllTaskSignatures:
+ try:
+ rq.rqdata.prepare_task_hash(tid)
+ sig.append([pn, t, rq.rqdata.get_task_unihash(tid)])
+ except KeyError:
+ sig.append(self.getTaskSignatures(target, [t])[0])
+
+ return sig
+
def buildTargets(self, targets, task):
"""
Attempt to build the targets specified
@@ -1644,8 +1575,6 @@ class BBCooker:
if self.state == state.running:
return
- self.handle_inotify_updates()
-
if not self.baseconfig_valid:
logger.debug("Reloading base configuration data")
self.initConfigurationData()
@@ -1667,7 +1596,7 @@ class BBCooker:
if self.state != state.parsing and not self.parsecache_valid:
bb.server.process.serverlog("Parsing started")
- self.setupParserWatcher()
+ self.parsewatched = {}
bb.parse.siggen.reset(self.data)
self.parseConfiguration ()
@@ -1692,9 +1621,9 @@ class BBCooker:
total_masked += masked
searchdirs |= set(search)
- # Add inotify watches for directories searched for bb/bbappend files
+ # Add mtimes for directories searched for bb/bbappend files
for dirent in searchdirs:
- self.add_filewatch([[dirent]], dirs=True)
+ self.add_filewatch([(dirent, bb.parse.cached_mtime_noerror(dirent))])
self.parser = CookerParser(self, mcfilelist, total_masked)
self._parsecache_set(True)
@@ -1881,7 +1810,7 @@ class CookerCollectFiles(object):
collectlog.error("no recipe files to build, check your BBPATH and BBFILES?")
bb.event.fire(CookerExit(), eventdata)
- # We need to track where we look so that we can add inotify watches. There
+ # We need to track where we look so that we can know when the cache is invalid. There
# is no nice way to do this, this is horrid. We intercept the os.listdir()
# (or os.scandir() for python 3.6+) calls while we run glob().
origlistdir = os.listdir
diff --git a/poky/bitbake/lib/bb/data.py b/poky/bitbake/lib/bb/data.py
index 3ee8f5e7db..505f42950f 100644
--- a/poky/bitbake/lib/bb/data.py
+++ b/poky/bitbake/lib/bb/data.py
@@ -285,6 +285,7 @@ def build_dependencies(key, keys, mod_funcs, shelldeps, varflagsexcl, ignored_va
value += "\n_remove of %s" % r
deps |= r2.references
deps = deps | (keys & r2.execs)
+ value = handle_contains(value, r2.contains, exclusions, d)
return value
deps = set()
diff --git a/poky/bitbake/lib/bb/event.py b/poky/bitbake/lib/bb/event.py
index 0d0e0a68aa..f8acacd80d 100644
--- a/poky/bitbake/lib/bb/event.py
+++ b/poky/bitbake/lib/bb/event.py
@@ -857,6 +857,14 @@ class FindSigInfoResult(Event):
Event.__init__(self)
self.result = result
+class GetTaskSignatureResult(Event):
+ """
+ Event to return results from GetTaskSignatures command
+ """
+ def __init__(self, sig):
+ Event.__init__(self)
+ self.sig = sig
+
class ParseError(Event):
"""
Event to indicate parse failed
diff --git a/poky/bitbake/lib/bb/fetch2/__init__.py b/poky/bitbake/lib/bb/fetch2/__init__.py
index 765aedd51d..ffb1a92b26 100644
--- a/poky/bitbake/lib/bb/fetch2/__init__.py
+++ b/poky/bitbake/lib/bb/fetch2/__init__.py
@@ -874,6 +874,7 @@ FETCH_EXPORT_VARS = ['HOME', 'PATH',
'AWS_SECRET_ACCESS_KEY',
'AWS_DEFAULT_REGION',
'GIT_CACHE_PATH',
+ 'REMOTE_CONTAINERS_IPC',
'SSL_CERT_DIR']
def get_fetcher_environment(d):
diff --git a/poky/bitbake/lib/bb/fetch2/git.py b/poky/bitbake/lib/bb/fetch2/git.py
index e11271b757..4385d0b37a 100644
--- a/poky/bitbake/lib/bb/fetch2/git.py
+++ b/poky/bitbake/lib/bb/fetch2/git.py
@@ -373,20 +373,17 @@ class Git(FetchMethod):
try:
# Since clones can be bare, use --absolute-git-dir instead of --show-toplevel
output = runfetchcmd("LANG=C %s rev-parse --absolute-git-dir" % ud.basecmd, d, workdir=ud.clonedir)
+ toplevel = output.rstrip()
- toplevel = os.path.abspath(output.rstrip())
- abs_clonedir = os.path.abspath(ud.clonedir).rstrip('/')
- # The top level Git directory must either be the clone directory
- # or a child of the clone directory. Any ancestor directory of
- # the clone directory is not valid as the Git directory (and
- # probably belongs to some other unrelated repository), so a
- # clone is required
- if os.path.commonprefix([abs_clonedir, toplevel]) != abs_clonedir:
- logger.warning("Top level directory '%s' doesn't match expected '%s'. Re-cloning", toplevel, ud.clonedir)
+ if not bb.utils.path_is_descendant(toplevel, ud.clonedir):
+ logger.warning("Top level directory '%s' is not a descendant of '%s'. Re-cloning", toplevel, ud.clonedir)
needs_clone = True
except bb.fetch2.FetchError as e:
logger.warning("Unable to get top level for %s (not a git directory?): %s", ud.clonedir, e)
needs_clone = True
+ except FileNotFoundError as e:
+ logger.warning("%s", e)
+ needs_clone = True
if needs_clone:
shutil.rmtree(ud.clonedir)
diff --git a/poky/bitbake/lib/bb/parse/__init__.py b/poky/bitbake/lib/bb/parse/__init__.py
index 4cd82f115b..a4358f1374 100644
--- a/poky/bitbake/lib/bb/parse/__init__.py
+++ b/poky/bitbake/lib/bb/parse/__init__.py
@@ -60,6 +60,14 @@ def cached_mtime_noerror(f):
return 0
return __mtime_cache[f]
+def check_mtime(f, mtime):
+ try:
+ current_mtime = os.stat(f)[stat.ST_MTIME]
+ __mtime_cache[f] = current_mtime
+ except OSError:
+ current_mtime = 0
+ return current_mtime == mtime
+
def update_mtime(f):
try:
__mtime_cache[f] = os.stat(f)[stat.ST_MTIME]
diff --git a/poky/bitbake/lib/bb/runqueue.py b/poky/bitbake/lib/bb/runqueue.py
index c88d7129ca..56147c50a8 100644
--- a/poky/bitbake/lib/bb/runqueue.py
+++ b/poky/bitbake/lib/bb/runqueue.py
@@ -1324,6 +1324,8 @@ class RunQueue:
if self.cooker.configuration.profile:
magic = "decafbadbad"
fakerootlogs = None
+
+ workerscript = os.path.realpath(os.path.dirname(__file__) + "/../../bin/bitbake-worker")
if fakeroot:
magic = magic + "beef"
mcdata = self.cooker.databuilder.mcdata[mc]
@@ -1332,10 +1334,10 @@ class RunQueue:
env = os.environ.copy()
for key, value in (var.split('=') for var in fakerootenv):
env[key] = value
- worker = subprocess.Popen(fakerootcmd + ["bitbake-worker", magic], stdout=subprocess.PIPE, stdin=subprocess.PIPE, env=env)
+ worker = subprocess.Popen(fakerootcmd + [sys.executable, workerscript, magic], stdout=subprocess.PIPE, stdin=subprocess.PIPE, env=env)
fakerootlogs = self.rqdata.dataCaches[mc].fakerootlogs
else:
- worker = subprocess.Popen(["bitbake-worker", magic], stdout=subprocess.PIPE, stdin=subprocess.PIPE)
+ worker = subprocess.Popen([sys.executable, workerscript, magic], stdout=subprocess.PIPE, stdin=subprocess.PIPE)
bb.utils.nonblockingfd(worker.stdout)
workerpipe = runQueuePipe(worker.stdout, None, self.cfgData, self, rqexec, fakerootlogs=fakerootlogs)
@@ -3159,7 +3161,7 @@ class runQueuePipe():
if pipeout:
pipeout.close()
bb.utils.nonblockingfd(self.input)
- self.queue = b""
+ self.queue = bytearray()
self.d = d
self.rq = rq
self.rqexec = rqexec
@@ -3178,7 +3180,7 @@ class runQueuePipe():
start = len(self.queue)
try:
- self.queue = self.queue + (self.input.read(102400) or b"")
+ self.queue.extend(self.input.read(102400) or b"")
except (OSError, IOError) as e:
if e.errno != errno.EAGAIN:
raise
diff --git a/poky/bitbake/lib/bb/server/process.py b/poky/bitbake/lib/bb/server/process.py
index 40cb99bc97..d495ac6245 100644
--- a/poky/bitbake/lib/bb/server/process.py
+++ b/poky/bitbake/lib/bb/server/process.py
@@ -43,7 +43,8 @@ def currenttime():
def serverlog(msg):
print(str(os.getpid()) + " " + currenttime() + " " + msg)
- sys.stdout.flush()
+ #Seems a flush here triggers filesytem sync like behaviour and long hangs in the server
+ #sys.stdout.flush()
#
# When we have lockfile issues, try and find infomation about which process is
@@ -410,12 +411,6 @@ class ProcessServer():
nextsleep = 0.1
fds = []
- try:
- self.cooker.process_inotify_updates()
- except Exception as exc:
- serverlog("Exception %s in inofify updates broke the idle_thread, exiting" % traceback.format_exc())
- self.quit = True
-
with bb.utils.lock_timeout(self._idlefuncsLock):
items = list(self._idlefuns.items())
@@ -625,7 +620,7 @@ class BitBakeServer(object):
os.set_inheritable(self.bitbake_lock.fileno(), True)
os.set_inheritable(self.readypipein, True)
serverscript = os.path.realpath(os.path.dirname(__file__) + "/../../../bin/bitbake-server")
- os.execl(sys.executable, "bitbake-server", serverscript, "decafbad", str(self.bitbake_lock.fileno()), str(self.readypipein), self.logfile, self.bitbake_lock.name, self.sockname, str(self.server_timeout or 0), str(int(self.profile)), str(self.xmlrpcinterface[0]), str(self.xmlrpcinterface[1]))
+ os.execl(sys.executable, sys.executable, serverscript, "decafbad", str(self.bitbake_lock.fileno()), str(self.readypipein), self.logfile, self.bitbake_lock.name, self.sockname, str(self.server_timeout or 0), str(int(self.profile)), str(self.xmlrpcinterface[0]), str(self.xmlrpcinterface[1]))
def execServer(lockfd, readypipeinfd, lockname, sockname, server_timeout, xmlrpcinterface, profile):
diff --git a/poky/bitbake/lib/bb/tests/codeparser.py b/poky/bitbake/lib/bb/tests/codeparser.py
index a64c614b0b..b6f2b77ee3 100644
--- a/poky/bitbake/lib/bb/tests/codeparser.py
+++ b/poky/bitbake/lib/bb/tests/codeparser.py
@@ -436,6 +436,32 @@ esac
self.assertEqual(deps, set(["TESTVAR2"]))
self.assertEqual(self.d.getVar('ANOTHERVAR').split(), ['testval3', 'anothervalue'])
+ def test_contains_vardeps_override_operators(self):
+ # Check override operators handle dependencies correctly with the contains functionality
+ expr_plain = 'testval'
+ expr_prepend = '${@bb.utils.filter("TESTVAR1", "testval1", d)} '
+ expr_append = ' ${@bb.utils.filter("TESTVAR2", "testval2", d)}'
+ expr_remove = '${@bb.utils.contains("TESTVAR3", "no-testval", "testval", "", d)}'
+ # Check dependencies
+ self.d.setVar('ANOTHERVAR', expr_plain)
+ self.d.prependVar('ANOTHERVAR', expr_prepend)
+ self.d.appendVar('ANOTHERVAR', expr_append)
+ self.d.setVar('ANOTHERVAR:remove', expr_remove)
+ self.d.setVar('TESTVAR1', 'blah')
+ self.d.setVar('TESTVAR2', 'testval2')
+ self.d.setVar('TESTVAR3', 'no-testval')
+ deps, values = bb.data.build_dependencies("ANOTHERVAR", set(self.d.keys()), set(), set(), set(), set(), self.d, self.d)
+ self.assertEqual(sorted(values.splitlines()),
+ sorted([
+ expr_prepend + expr_plain + expr_append,
+ '_remove of ' + expr_remove,
+ 'TESTVAR1{testval1} = Unset',
+ 'TESTVAR2{testval2} = Set',
+ 'TESTVAR3{no-testval} = Set',
+ ]))
+ # Check final value
+ self.assertEqual(self.d.getVar('ANOTHERVAR').split(), ['testval2'])
+
#Currently no wildcard support
#def test_vardeps_wildcards(self):
# self.d.setVar("oe_libinstall", "echo test")
diff --git a/poky/bitbake/lib/bb/tinfoil.py b/poky/bitbake/lib/bb/tinfoil.py
index 91fbf1b13e..dcd3910cc4 100644
--- a/poky/bitbake/lib/bb/tinfoil.py
+++ b/poky/bitbake/lib/bb/tinfoil.py
@@ -325,11 +325,11 @@ class Tinfoil:
self.recipes_parsed = False
self.quiet = 0
self.oldhandlers = self.logger.handlers[:]
+ self.localhandlers = []
if setup_logging:
# This is the *client-side* logger, nothing to do with
# logging messages from the server
bb.msg.logger_create('BitBake', output)
- self.localhandlers = []
for handler in self.logger.handlers:
if handler not in self.oldhandlers:
self.localhandlers.append(handler)
@@ -449,6 +449,12 @@ class Tinfoil:
self.run_actions(config_params)
self.recipes_parsed = True
+ def modified_files(self):
+ """
+ Notify the server it needs to revalidate it's caches since the client has modified files
+ """
+ self.run_command("revalidateCaches")
+
def run_command(self, command, *params, handle_events=True):
"""
Run a command on the server (as implemented in bb.command).
diff --git a/poky/bitbake/lib/bb/utils.py b/poky/bitbake/lib/bb/utils.py
index 0624a4f3e9..b401fa5ec7 100644
--- a/poky/bitbake/lib/bb/utils.py
+++ b/poky/bitbake/lib/bb/utils.py
@@ -1828,6 +1828,29 @@ def mkstemp(suffix=None, prefix=None, dir=None, text=False):
prefix = tempfile.gettempprefix() + entropy
return tempfile.mkstemp(suffix=suffix, prefix=prefix, dir=dir, text=text)
+def path_is_descendant(descendant, ancestor):
+ """
+ Returns True if the path `descendant` is a descendant of `ancestor`
+ (including being equivalent to `ancestor` itself). Otherwise returns False.
+ Correctly accounts for symlinks, bind mounts, etc. by using
+ os.path.samestat() to compare paths
+
+ May raise any exception that os.stat() raises
+ """
+
+ ancestor_stat = os.stat(ancestor)
+
+ # Recurse up each directory component of the descendant to see if it is
+ # equivalent to the ancestor
+ check_dir = os.path.abspath(descendant).rstrip("/")
+ while check_dir:
+ check_stat = os.stat(check_dir)
+ if os.path.samestat(check_stat, ancestor_stat):
+ return True
+ check_dir = os.path.dirname(check_dir).rstrip("/")
+
+ return False
+
# If we don't have a timeout of some kind and a process/thread exits badly (for example
# OOM killed) and held a lock, we'd just hang in the lock futex forever. It is better
# we exit at some point than hang. 5 minutes with no progress means we're probably deadlocked.
diff --git a/poky/bitbake/lib/bblayers/action.py b/poky/bitbake/lib/bblayers/action.py
index 0d7fd6edd1..a8f2699335 100644
--- a/poky/bitbake/lib/bblayers/action.py
+++ b/poky/bitbake/lib/bblayers/action.py
@@ -50,12 +50,14 @@ class ActionPlugin(LayerPlugin):
try:
notadded, _ = bb.utils.edit_bblayers_conf(bblayers_conf, layerdirs, None)
+ self.tinfoil.modified_files()
if not (args.force or notadded):
try:
self.tinfoil.run_command('parseConfiguration')
except (bb.tinfoil.TinfoilUIException, bb.BBHandledException):
# Restore the back up copy of bblayers.conf
shutil.copy2(backup, bblayers_conf)
+ self.tinfoil.modified_files()
bb.fatal("Parse failure with the specified layer added, exiting.")
else:
for item in notadded:
@@ -81,6 +83,7 @@ class ActionPlugin(LayerPlugin):
layerdir = os.path.abspath(item)
layerdirs.append(layerdir)
(_, notremoved) = bb.utils.edit_bblayers_conf(bblayers_conf, None, layerdirs)
+ self.tinfoil.modified_files()
if notremoved:
for item in notremoved:
sys.stderr.write("No layers matching %s found in BBLAYERS\n" % item)
@@ -240,6 +243,9 @@ build results (as the layer priority order has effectively changed).
if not entry_found:
logger.warning("File %s does not match the flattened layer's BBFILES setting, you may need to edit conf/layer.conf or move the file elsewhere" % f1full)
+ self.tinfoil.modified_files()
+
+
def get_file_layer(self, filename):
layerdir = self.get_file_layerdir(filename)
if layerdir:
diff --git a/poky/documentation/bsp-guide/bsp.rst b/poky/documentation/bsp-guide/bsp.rst
index 3be314bcf6..c78fbeb68f 100644
--- a/poky/documentation/bsp-guide/bsp.rst
+++ b/poky/documentation/bsp-guide/bsp.rst
@@ -893,8 +893,8 @@ Yocto Project:
``recipes-*`` subdirectories specific to the recipe's function, or
within a subdirectory containing a set of closely-related recipes.
The recipes themselves should follow the general guidelines for
- recipes used in the Yocto Project found in the ":oe_wiki:`OpenEmbedded
- Style Guide </Styleguide>`".
+ recipes found in the ":doc:`../contributor-guide/recipe-style-guide`"
+ in the Yocto Project and OpenEmbedded Contributor Guide.
- *License File:* You must include a license file in the
``meta-bsp_root_name`` directory. This license covers the BSP
diff --git a/poky/documentation/contributor-guide/recipe-style-guide.rst b/poky/documentation/contributor-guide/recipe-style-guide.rst
index a0d513e8e9..a005aa3247 100644
--- a/poky/documentation/contributor-guide/recipe-style-guide.rst
+++ b/poky/documentation/contributor-guide/recipe-style-guide.rst
@@ -7,17 +7,18 @@ Recipe Naming Conventions
=========================
In general, most recipes should follow the naming convention
-``recipes-category/package/packagename_version.bb``. Recipes for related
-projects may share the same package directory. ``packagename``, ``category``,
-and ``package`` may contain hyphens, but hyphens are not allowed in ``version``.
+``recipes-category/recipename/recipename_version.bb``. Recipes for related
+projects may share the same recipe directory. ``recipename`` and ``category``
+may contain hyphens, but hyphens are not allowed in ``version``.
If the recipe is tracking a Git revision that does not correspond to a released
-version of the software, ``version`` may be ``git`` (e.g. ``packagename_git.bb``)
+version of the software, ``version`` may be ``git`` (e.g. ``recipename_git.bb``)
+and the recipe would set :term:`PV`.
Version Policy
==============
-Our versions follow the form ``<package epoch>:<package version>-<package revision>``
+Our versions follow the form ``<epoch>:<version>-<revision>``
or in BitBake variable terms ${:term:`PE`}:${:term:`PV`}-${:term:`PR`}. We
generally follow the `Debian <https://www.debian.org/doc/debian-policy/ch-controlfields.html#version>`__
version policy which defines these terms.
@@ -26,7 +27,7 @@ In most cases the version :term:`PV` will be set automatically from the recipe
file name. It is recommended to use released versions of software as these are
revisions that upstream are expecting people to use.
-Package versions should always compare and sort correctly so that upgrades work
+Recipe versions should always compare and sort correctly so that upgrades work
as expected. With conventional versions such as ``1.4`` upgrading ``to 1.5``
this happens naturally, but some versions don't sort. For example,
``1.5 Release Candidate 2`` could be written as ``1.5rc2`` but this sorts after
@@ -62,7 +63,7 @@ Version Number Changes
The :term:`PR` variable is used to indicate different revisions of a recipe
that reference the same upstream source version. It can be used to force a
-new version of a package to be installed onto a device from a package feed.
+new version of a recipe to be installed onto a device from a package feed.
These once had to be set manually but in most cases these can now be set and
incremented automatically by a PR Server connected with a package feed.
@@ -255,3 +256,144 @@ Tips and Guidelines for Writing Recipes
- Use :term:`BBCLASSEXTEND` instead of creating separate recipes such as ``-native``
and ``-nativesdk`` ones, whenever possible. This avoids having to maintain multiple
recipe files at the same time.
+
+- Recipes should have tasks which are idempotent, i.e. that executing a given task
+ multiple times shouldn't change the end result. The build environment is built upon
+ this assumption and breaking it can cause obscure build failures.
+
+- For idempotence when modifying files in tasks, it is usually best to:
+
+ - copy a file ``X`` to ``X.orig`` (only if it doesn't exist already)
+ - then, copy ``X.orig`` back to ``X``,
+ - and, finally, modify ``X``.
+
+ This ensures if rerun the task always has the same end result and the
+ original file can be preserved to reuse. It also guards against an
+ interrupted build corrupting the file.
+
+Patch Upstream Status
+=====================
+
+In order to keep track of patches applied by recipes and ultimately reduce the
+number of patches that need maintaining, the OpenEmbedded build system
+requires information about the upstream status of each patch.
+
+In its description, each patch should provide detailed information about the
+bug that it addresses, such as the URL in a bug tracking system and links
+to relevant mailing list archives.
+
+Then, you should also add an ``Upstream-Status:`` tag containing one of the
+following status strings:
+
+``Pending``
+ No determination has been made yet, or patch has not yet been submitted to
+ upstream.
+
+ Keep in mind that every patch submitted upstream reduces the maintainance
+ burden in OpenEmbedded and Yocto Project in the long run, so this patch
+ status should only be used in exceptional cases if there are genuine
+ obstacles to submitting a patch upstream; the reason for that should be
+ included in the patch.
+
+``Submitted [where]``
+ Submitted to upstream, waiting for approval. Optionally include where
+ it was submitted, such as the author, mailing list, etc.
+
+``Backport [version]``
+ Accepted upstream and included in the next release, or backported from newer
+ upstream version, because we are at a fixed version.
+ Include upstream version info (e.g. commit ID or next expected version).
+
+``Denied``
+ Not accepted by upstream, include reason in patch.
+
+``Inactive-Upstream [lastcommit: when (and/or) lastrelease: when]``
+ The upstream is no longer available. This typically means a defunct project
+ where no activity has happened for a long time --- measured in years. To make
+ that judgement, it is recommended to look at not only when the last release
+ happened, but also when the last commit happened, and whether newly made bug
+ reports and merge requests since that time receive no reaction. It is also
+ recommended to add to the patch description any relevant links where the
+ inactivity can be clearly seen.
+
+``Inappropriate [reason]``
+ The patch is not appropriate for upstream, include a brief reason on the
+ same line enclosed with ``[]``. In the past, there were several different
+ reasons not to submit patches upstream, but we have to consider that every
+ non-upstreamed patch means a maintainance burden for recipe maintainers.
+ Currently, the only reasons to mark patches as inappropriate for upstream
+ submission are:
+
+ - ``oe specific``: the issue is specific to how OpenEmbedded performs builds
+ or sets things up at runtime, and can be resolved only with a patch that
+ is not however relevant or appropriate for general upstream submission.
+ - ``upstream ticket <link>``: the issue is not specific to Open-Embedded
+ and should be fixed upstream, but the patch in its current form is not
+ suitable for merging upstream, and the author lacks sufficient expertise
+ to develop a proper patch. Instead the issue is handled via a bug report
+ (include link).
+
+Of course, if another person later takes care of submitting this patch upstream,
+the status should be changed to ``Submitted [where]``, and an additional
+``Signed-off-by:`` line should be added to the patch by the person claiming
+responsibility for upstreaming.
+
+Examples
+--------
+
+Here's an example of a patch that has been submitted upstream::
+
+ rpm: Adjusted the foo setting in bar
+
+ [RPM Ticket #65] -- http://rpm5.org/cvs/tktview?tn=65,5
+
+ The foo setting in bar was decreased from X to X-50% in order to
+ ensure we don't exhaust all system memory with foobar threads.
+
+ Upstream-Status: Submitted [rpm5-devel@rpm5.org]
+
+ Signed-off-by: Joe Developer <joe.developer@example.com>
+
+A future update can change the value to ``Backport`` or ``Denied`` as
+appropriate.
+
+Another example of a patch that is specific to OpenEmbedded::
+
+ Do not treat warnings as errors
+
+ There are additional warnings found with musl which are
+ treated as errors and fails the build, we have more combinations
+ than upstream supports to handle.
+
+ Upstream-Status: Inappropriate [oe specific]
+
+Here's a patch that has been backported from an upstream commit::
+
+ include missing sys/file.h for LOCK_EX
+
+ Upstream-Status: Backport [https://github.com/systemd/systemd/commit/ac8db36cbc26694ee94beecc8dca208ec4b5fd45]
+
+CVE patches
+===========
+
+In order to have a better control of vulnerabilities, patches that fix CVEs must
+contain a ``CVE:`` tag. This tag list all CVEs fixed by the patch. If more than
+one CVE is fixed, separate them using spaces.
+
+CVE Examples
+------------
+
+This should be the header of patch that fixes :cve:`2015-8370` in GRUB2::
+
+ grub2: Fix CVE-2015-8370
+
+ [No upstream tracking] -- https://bugzilla.redhat.com/show_bug.cgi?id=1286966
+
+ Back to 28; Grub2 Authentication
+
+ Two functions suffer from integer underflow fault; the grub_username_get() and grub_password_get()located in
+ grub-core/normal/auth.c and lib/crypto.c respectively. This can be exploited to obtain a Grub rescue shell.
+
+ Upstream-Status: Backport [http://git.savannah.gnu.org/cgit/grub.git/commit/?id=451d80e52d851432e109771bb8febafca7a5f1f2]
+ CVE: CVE-2015-8370
+ Signed-off-by: Joe Developer <joe.developer@example.com>
diff --git a/poky/documentation/dev-manual/disk-space.rst b/poky/documentation/dev-manual/disk-space.rst
index a84bef4511..6d1638a302 100644
--- a/poky/documentation/dev-manual/disk-space.rst
+++ b/poky/documentation/dev-manual/disk-space.rst
@@ -23,12 +23,12 @@ final disk usage of 22 Gbytes instead of &MIN_DISK_SPACE; Gbytes. However,
&MIN_DISK_SPACE_RM_WORK; Gbytes of initial free disk space are still needed to
create temporary files before they can be deleted.
-Purging Duplicate Shared State Cache Files
-==========================================
+Purging Obsolete Shared State Cache Files
+=========================================
After multiple build iterations, the Shared State (sstate) cache can contain
-duplicate cache files for a given package, consuming a substantial amount of
-disk space. However, only the most recent cache files are likeky to be reusable.
+multiple cache files for a given package, consuming a substantial amount of
+disk space. However, only the most recent ones are likely to be reused.
The following command is a quick way to purge all the cache files which
haven't been used for a least a specified number of days::
diff --git a/poky/documentation/dev-manual/licenses.rst b/poky/documentation/dev-manual/licenses.rst
index 9629dc5329..3b9190d47f 100644
--- a/poky/documentation/dev-manual/licenses.rst
+++ b/poky/documentation/dev-manual/licenses.rst
@@ -123,6 +123,13 @@ name and version (after variable expansion)::
LICENSE_FLAGS = "license_${PN}_${PV}"
+It is possible to give more details about a specific license
+using flags on the :term:`LICENSE_FLAGS_DETAILS` variable::
+
+ LICENSE_FLAGS_DETAILS[my-eula-license] = "For further details, see https://example.com/eula."
+
+If set, this will be displayed to the user if the license hasn't been accepted.
+
In order for a component restricted by a
:term:`LICENSE_FLAGS` definition to be enabled and included in an image, it
needs to have a matching entry in the global
@@ -298,19 +305,34 @@ There are other requirements beyond the scope of these three and the
methods described in this section (e.g. the mechanism through which
source code is distributed).
-As different organizations have different methods of complying with open
-source licensing, this section is not meant to imply that there is only
-one single way to meet your compliance obligations, but rather to
-describe one method of achieving compliance. The remainder of this
-section describes methods supported to meet the previously mentioned
-three requirements. Once you take steps to meet these requirements, and
-prior to releasing images, sources, and the build system, you should
-audit all artifacts to ensure completeness.
+As different organizations have different ways of releasing software,
+there can be multiple ways of meeting license obligations. At
+least, we describe here two methods for achieving compliance:
+
+- The first method is to use OpenEmbedded's ability to provide
+ the source code, provide a list of licenses, as well as
+ compilation scripts and source code modifications.
+
+ The remainder of this section describes supported methods to meet
+ the previously mentioned three requirements.
+
+- The second method is to generate a *Software Bill of Materials*
+ (:term:`SBoM`), as described in the ":doc:`/dev-manual/sbom`" section.
+ Not only do you generate :term:`SPDX` output which can be used meet
+ license compliance requirements (except for sharing the build system
+ and layers sources for the time being), but this output also includes
+ component version and patch information which can be used
+ for vulnerability assessment.
+
+Whatever method you choose, prior to releasing images, sources,
+and the build system, you should audit all artifacts to ensure
+completeness.
.. note::
The Yocto Project generates a license manifest during image creation
- that is located in ``${DEPLOY_DIR}/licenses/``\ `image_name`\ ``-``\ `datestamp`
+ that is located in
+ ``${DEPLOY_DIR}/licenses/<image-name>-<machine>.rootfs-<datestamp>/``
to assist with any audits.
Providing the Source Code
@@ -428,7 +450,7 @@ with source as defined by the GPL and other open source licenses.
Providing Compilation Scripts and Source Code Modifications
-----------------------------------------------------------
-At this point, we have addressed all we need to prior to generating the
+At this point, we have addressed all we need prior to generating the
image. The next two requirements are addressed during the final
packaging of the release.
diff --git a/poky/documentation/dev-manual/new-recipe.rst b/poky/documentation/dev-manual/new-recipe.rst
index cb9533ff5d..02bb08474f 100644
--- a/poky/documentation/dev-manual/new-recipe.rst
+++ b/poky/documentation/dev-manual/new-recipe.rst
@@ -1036,13 +1036,14 @@ build system and package managers, so the resulting packages will not
correctly trigger an upgrade.
In order to ensure the versions compare properly, the recommended
-convention is to set :term:`PV` within the
-recipe to "previous_version+current_version". You can use an additional
-variable so that you can use the current version elsewhere. Here is an
-example::
+convention is to use a tilde (``~``) character as follows::
- REALPV = "0.8.16-rc1"
- PV = "0.8.15+${REALPV}"
+ PV = 0.8.16~rc1
+
+This way ``0.8.16~rc1`` sorts before ``0.8.16``. See the
+":ref:`contributor-guide/recipe-style-guide:version policy`" section in the
+Yocto Project and OpenEmbedded Contributor Guide for more details about
+versioning code corresponding to a pre-release or to a specific Git commit.
Post-Installation Scripts
=========================
@@ -1394,9 +1395,9 @@ doing the following:
Following Recipe Style Guidelines
=================================
-When writing recipes, it is good to conform to existing style
-guidelines. The :oe_wiki:`OpenEmbedded Styleguide </Styleguide>` wiki page
-provides rough guidelines for preferred recipe style.
+When writing recipes, it is good to conform to existing style guidelines.
+See the ":doc:`../contributor-guide/recipe-style-guide`" in the Yocto Project
+and OpenEmbedded Contributor Guide for reference.
It is common for existing recipes to deviate a bit from this style.
However, aiming for at least a consistent style is a good idea. Some
diff --git a/poky/documentation/migration-guides/release-notes-4.3.rst b/poky/documentation/migration-guides/release-notes-4.3.rst
index c19cf6e4f9..87cd622743 100644
--- a/poky/documentation/migration-guides/release-notes-4.3.rst
+++ b/poky/documentation/migration-guides/release-notes-4.3.rst
@@ -10,6 +10,8 @@ New Features / Enhancements in 4.3
- New variables:
+ - :term:`FILE_LAYERNAME`: bitbake now sets this to the name of the layer containing the recipe
+
- :term:`FIT_ADDRESS_CELLS` and :term:`UBOOT_FIT_ADDRESS_CELLS`.
See details below.
@@ -17,7 +19,8 @@ New Features / Enhancements in 4.3
- :term:`KERNEL_DTBVENDORED`: whether to keep vendor subdirectories.
- - :term:`FILE_LAYERNAME`: bitbake now sets this to the name of the layer containing the recipe
+ - :term:`LICENSE_FLAGS_DETAILS`: add extra details about a recipe license
+ in case it is not allowed by :term:`LICENSE_FLAGS_ACCEPTED`.
- Layername functionality available through overrides
diff --git a/poky/documentation/ref-manual/qa-checks.rst b/poky/documentation/ref-manual/qa-checks.rst
index 6fdb0fbde9..4a02e7206a 100644
--- a/poky/documentation/ref-manual/qa-checks.rst
+++ b/poky/documentation/ref-manual/qa-checks.rst
@@ -754,7 +754,7 @@ Errors and Warnings
- ``Missing Upstream-Status in patch <patchfile> Please add according to <url> [patch-status-core/patch-status-noncore]``
- The Upstream-Status value is missing in the specified patch file's header.
+ The ``Upstream-Status`` value is missing in the specified patch file's header.
This value is intended to track whether or not the patch has been sent
upstream, whether or not it has been merged, etc.
@@ -762,13 +762,13 @@ Errors and Warnings
recipes in OE-Core) and ``patch-status-noncore`` (for recipes in any other
layer).
- For more information on setting Upstream-Status see:
- https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines#Patch_Header_Recommendations:_Upstream-Status
-
+ For more information, see the
+ ":ref:`contributor-guide/recipe-style-guide:patch upstream status`"
+ section in the Yocto Project and OpenEmbedded Contributor Guide.
- ``Malformed Upstream-Status in patch <patchfile> Please correct according to <url> [patch-status-core/patch-status-noncore]``
- The Upstream-Status value in the specified patch file's header is invalid -
+ The ``Upstream-Status`` value in the specified patch file's header is invalid -
it must be a specific format. See the "Missing Upstream-Status" entry above
for more information.
diff --git a/poky/documentation/ref-manual/variables.rst b/poky/documentation/ref-manual/variables.rst
index 7a71abc0ae..11523bb9e7 100644
--- a/poky/documentation/ref-manual/variables.rst
+++ b/poky/documentation/ref-manual/variables.rst
@@ -4968,6 +4968,23 @@ system and gives an overview of their function and contents.
":ref:`dev-manual/licenses:enabling commercially licensed recipes`"
section in the Yocto Project Development Tasks Manual.
+ :term:`LICENSE_FLAGS_DETAILS`
+ Adds details about a flag in :term:`LICENSE_FLAGS`. This way,
+ if such a flag is not accepted through :term:`LICENSE_FLAGS_ACCEPTED`,
+ the error message will be more informative, containing the specified
+ extra details.
+
+ For example, a recipe with an EULA may set::
+
+ LICENSE_FLAGS = "FooBar-EULA"
+ LICENSE_FLAGS_DETAILS[FooBar-EULA] = "For further details, see https://example.com/eula."
+
+ If ``Foobar-EULA`` isn't in :term:`LICENSE_FLAGS_ACCEPTED`, the
+ error message is more useful::
+
+ Has a restricted license 'FooBar-EULA' which is not listed in your LICENSE_FLAGS_ACCEPTED.
+ For further details, see https://example.com/eula.
+
:term:`LICENSE_PATH`
Path to additional licenses used during the build. By default, the
OpenEmbedded build system uses :term:`COMMON_LICENSE_DIR` to define the
diff --git a/poky/documentation/sdk-manual/extensible.rst b/poky/documentation/sdk-manual/extensible.rst
index 9e08e57a4e..355c6cb0e4 100644
--- a/poky/documentation/sdk-manual/extensible.rst
+++ b/poky/documentation/sdk-manual/extensible.rst
@@ -48,18 +48,20 @@ Extensible SDK can be installed in two different ways, and both have
their own pros and cons:
#. *Setting up the Extensible SDK environment directly in a Yocto build*. This
-avoids having to produce, test, distribute and maintain separate SDK installer
-archives, which can get very large. There is only one environment for the regular
-Yocto build and the SDK and less code paths where things can go not according to plan.
-It's easier to update the SDK: it simply means updating the Yocto layers with
-git fetch or layer management tooling. The SDK extensibility is better than in the
-second option: just run ``bitbake`` again to add more things to the sysroot, or add layers
-if even more things are required.
-
-#. *Setting up the Extensible SDK from a standalone installer*. This has the benefit of
-having a single, self-contained archive that includes all the needed binary artifacts.
-So nothing needs to be rebuilt, and there is no need to provide a well-functioning
-binary artefact cache over the network for developers with underpowered laptops.
+ avoids having to produce, test, distribute and maintain separate SDK
+ installer archives, which can get very large. There is only one environment
+ for the regular Yocto build and the SDK and less code paths where things can
+ go not according to plan. It's easier to update the SDK: it simply means
+ updating the Yocto layers with git fetch or layer management tooling. The
+ SDK extensibility is better than in the second option: just run ``bitbake``
+ again to add more things to the sysroot, or add layers if even more things
+ are required.
+
+#. *Setting up the Extensible SDK from a standalone installer*. This has the
+ benefit of having a single, self-contained archive that includes all the
+ needed binary artifacts. So nothing needs to be rebuilt, and there is no
+ need to provide a well-functioning binary artefact cache over the network
+ for developers with underpowered laptops.
Setting up the Extensible SDK environment directly in a Yocto build
-------------------------------------------------------------------
@@ -67,12 +69,12 @@ Setting up the Extensible SDK environment directly in a Yocto build
#. Set up all the needed layers and a Yocto :term:`Build Directory`, e.g. a regular Yocto
build where ``bitbake`` can be executed.
-#. Run:
- $ bitbake meta-ide-support
- $ bitbake -c populate_sysroot gtk+3
- (or any other target or native item that the application developer would need)
- $ bitbake build-sysroots
+#. Run::
+ $ bitbake meta-ide-support
+ $ bitbake -c populate_sysroot gtk+3
+ # or any other target or native item that the application developer would need
+ $ bitbake build-sysroots
Setting up the Extensible SDK from a standalone installer
---------------------------------------------------------
@@ -194,15 +196,13 @@ script is for an IA-based target machine using i586 tuning::
Run devtool --help for further details.
When using the environment script directly in a Yocto build, it can
-be run similarly:
+be run similarly::
$ source tmp/deploy/images/qemux86-64/environment-setup-core2-64-poky-linux
-Running the setup script defines many environment variables needed in
-order to use the SDK (e.g. ``PATH``,
-:term:`CC`,
-:term:`LD`, and so forth). If you want to
-see all the environment variables the script exports, examine the
+Running the setup script defines many environment variables needed in order to
+use the SDK (e.g. ``PATH``, :term:`CC`, :term:`LD`, and so forth). If you want
+to see all the environment variables the script exports, examine the
installation file itself.
Using ``devtool`` in Your SDK Workflow
@@ -216,11 +216,8 @@ system.
.. note::
- The use of
- devtool
- is not limited to the extensible SDK. You can use
- devtool
- to help you easily develop any project whose build output must be
+ The use of ``devtool`` is not limited to the extensible SDK. You can use
+ ``devtool`` to help you easily develop any project whose build output must be
part of an image built using the build system.
The ``devtool`` command line is organized similarly to
@@ -230,15 +227,10 @@ all the commands.
.. note::
- See the "
- devtool
-  Quick Reference
- " in the Yocto Project Reference Manual for a
- devtool
- quick reference.
+ See the ":doc:`/ref-manual/devtool-reference`"
+ section in the Yocto Project Reference Manual.
-Three ``devtool`` subcommands provide entry-points into
-development:
+Three ``devtool`` subcommands provide entry-points into development:
- *devtool add*: Assists in adding new software to be built.
@@ -315,9 +307,8 @@ command:
.. note::
- If required,
- devtool
- always creates a Git repository locally during the extraction.
+ If required, ``devtool`` always creates a Git repository locally
+ during the extraction.
Furthermore, the first positional argument ``srctree`` in this case
identifies where the ``devtool add`` command will locate the
@@ -326,8 +317,7 @@ command:
$ devtool add recipe srctree fetchuri
- In summary,
- the source code is pulled from fetchuri and extracted into the
+ In summary, the source code is pulled from fetchuri and extracted into the
location defined by ``srctree`` as a local Git repository.
Within workspace, ``devtool`` creates a recipe named recipe along
@@ -358,16 +348,14 @@ command:
$ devtool edit-recipe recipe
- From within the editor, you
- can make modifications to the recipe that take effect when you build
- it later.
+ From within the editor, you can make modifications to the recipe that
+ take effect when you build it later.
#. *Build the Recipe or Rebuild the Image*: The next step you take
depends on what you are going to do with the new code.
If you need to eventually move the build output to the target
- hardware, use the following ``devtool`` command:
- :;
+ hardware, use the following ``devtool`` command::
$ devtool build recipe
@@ -392,8 +380,11 @@ command:
development machine.
You can deploy your build output to that target hardware by using the
- ``devtool deploy-target`` command: $ devtool deploy-target recipe
- target The target is a live target machine running as an SSH server.
+ ``devtool deploy-target`` command::
+
+ $ devtool deploy-target recipe target
+
+ The target is a live target machine running as an SSH server.
You can, of course, also deploy the image you build to actual
hardware by using the ``devtool build-image`` command. However,
@@ -422,11 +413,9 @@ command:
.. note::
- You can use the
- devtool reset
- command to put things back should you decide you do not want to
- proceed with your work. If you do use this command, realize that
- the source tree is preserved.
+ You can use the ``devtool reset`` command to put things back should you
+ decide you do not want to proceed with your work. If you do use this
+ command, realize that the source tree is preserved.
Use ``devtool modify`` to Modify the Source of an Existing Component
--------------------------------------------------------------------
@@ -473,11 +462,9 @@ command:
$ devtool modify recipe
- Once
- ``devtool``\ locates the recipe, ``devtool`` uses the recipe's
- :term:`SRC_URI` statements to
- locate the source code and any local patch files from other
- developers.
+ Once ``devtool`` locates the recipe, ``devtool`` uses the recipe's
+ :term:`SRC_URI` statements to locate the source code and any local
+ patch files from other developers.
With this scenario, there is no ``srctree`` argument. Consequently, the
default behavior of the ``devtool modify`` command is to extract
@@ -513,11 +500,7 @@ command:
.. note::
- You cannot provide a URL for
- srctree
- using the
- devtool
- command.
+ You cannot provide a URL for ``srctree`` using the ``devtool`` command.
As with all extractions, the command uses the recipe's :term:`SRC_URI`
statements to locate the source files and any associated patch
@@ -570,7 +553,9 @@ command:
On the other hand, if you want an image to contain the recipe's
packages from the workspace for immediate deployment onto a device
(e.g. for testing purposes), you can use the ``devtool build-image``
- command: $ devtool build-image image
+ command::
+
+ $ devtool build-image image
#. *Deploy the Build Output*: When you use the ``devtool build`` command
to build out your recipe, you probably want to see if the resulting
@@ -610,8 +595,7 @@ command:
Any changes you want to turn into patches must be staged and
committed within the local Git repository before you use the
- devtool finish
- command.
+ ``devtool finish`` command.
Because there is no need to move the recipe, ``devtool finish``
either updates the original recipe in the original layer or the
@@ -626,11 +610,9 @@ command:
.. note::
- You can use the
- devtool reset
- command to put things back should you decide you do not want to
- proceed with your work. If you do use this command, realize that
- the source tree is preserved.
+ You can use the ``devtool reset`` command to put things back should you
+ decide you do not want to proceed with your work. If you do use this
+ command, realize that the source tree is preserved.
Use ``devtool upgrade`` to Create a Version of the Recipe that Supports a Newer Version of the Software
-------------------------------------------------------------------------------------------------------
@@ -644,12 +626,11 @@ counterparts.
.. note::
- Several methods exist by which you can upgrade recipes -
- ``devtool upgrade``
- happens to be one. You can read about all the methods by which you
- can upgrade recipes in the
- :ref:`dev-manual/upgrading-recipes:upgrading recipes` section
- of the Yocto Project Development Tasks Manual.
+ Several methods exist by which you can upgrade recipes ---
+ ``devtool upgrade`` happens to be one. You can read about all the methods by
+ which you can upgrade recipes in the
+ :ref:`dev-manual/upgrading-recipes:upgrading recipes` section of the Yocto
+ Project Development Tasks Manual.
The ``devtool upgrade`` command is flexible enough to allow you to specify
source code revision and versioning schemes, extract code into or out of the
@@ -755,8 +736,11 @@ The following diagram shows the common development flow used with the
development machine.
You can deploy your build output to that target hardware by using the
- ``devtool deploy-target`` command: $ devtool deploy-target recipe
- target The target is a live target machine running as an SSH server.
+ ``devtool deploy-target`` command::
+
+ $ devtool deploy-target recipe target
+
+ The target is a live target machine running as an SSH server.
You can, of course, also deploy the image you build using the
``devtool build-image`` command to actual hardware. However,
@@ -790,11 +774,9 @@ The following diagram shows the common development flow used with the
.. note::
- You can use the
- devtool reset
- command to put things back should you decide you do not want to
- proceed with your work. If you do use this command, realize that
- the source tree is preserved.
+ You can use the ``devtool reset`` command to put things back should you
+ decide you do not want to proceed with your work. If you do use this
+ command, realize that the source tree is preserved.
A Closer Look at ``devtool add``
================================
@@ -862,10 +844,9 @@ run ``devtool add`` again and provide the name or the version.
Dependency Detection and Mapping
--------------------------------
-The ``devtool add`` command attempts to detect build-time dependencies
-and map them to other recipes in the system. During this mapping, the
-command fills in the names of those recipes as part of the
-:term:`DEPENDS` variable within the
+The ``devtool add`` command attempts to detect build-time dependencies and map
+them to other recipes in the system. During this mapping, the command fills in
+the names of those recipes as part of the :term:`DEPENDS` variable within the
recipe. If a dependency cannot be mapped, ``devtool`` places a comment
in the recipe indicating such. The inability to map a dependency can
result from naming not being recognized or because the dependency simply
@@ -882,10 +863,8 @@ following to your recipe::
.. note::
- The
- devtool add
- command often cannot distinguish between mandatory and optional
- dependencies. Consequently, some of the detected dependencies might
+ The ``devtool add`` command often cannot distinguish between mandatory and
+ optional dependencies. Consequently, some of the detected dependencies might
in fact be optional. When in doubt, consult the documentation or the
configure script for the software the recipe is building for further
details. In some cases, you might find you can substitute the
@@ -895,16 +874,14 @@ following to your recipe::
License Detection
-----------------
-The ``devtool add`` command attempts to determine if the software you
-are adding is able to be distributed under a common, open-source
-license. If so, the command sets the
-:term:`LICENSE` value accordingly.
+The ``devtool add`` command attempts to determine if the software you are
+adding is able to be distributed under a common, open-source license. If
+so, the command sets the :term:`LICENSE` value accordingly.
You should double-check the value added by the command against the
documentation or source files for the software you are building and, if
necessary, update that :term:`LICENSE` value.
-The ``devtool add`` command also sets the
-:term:`LIC_FILES_CHKSUM`
+The ``devtool add`` command also sets the :term:`LIC_FILES_CHKSUM`
value to point to all files that appear to be license-related. Realize
that license statements often appear in comments at the top of source
files or within the documentation. In such cases, the command does not
@@ -984,10 +961,9 @@ mind:
Adding Native Tools
-------------------
-Often, you need to build additional tools that run on the :term:`Build
-Host` as opposed to
-the target. You should indicate this requirement by using one of the
-following methods when you run ``devtool add``:
+Often, you need to build additional tools that run on the :term:`Build Host`
+as opposed to the target. You should indicate this requirement by using one of
+the following methods when you run ``devtool add``:
- Specify the name of the recipe such that it ends with "-native".
Specifying the name like this produces a recipe that only builds for
@@ -1011,8 +987,7 @@ Adding Node.js Modules
----------------------
You can use the ``devtool add`` command two different ways to add
-Node.js modules: 1) Through ``npm`` and, 2) from a repository or local
-source.
+Node.js modules: through ``npm`` or from a repository or local source.
Use the following form to add Node.js modules through ``npm``::
@@ -1027,7 +1002,7 @@ these behaviors ensure the reproducibility and integrity of the build.
.. note::
- - You must use quotes around the URL. The ``devtool add`` does not
+ - You must use quotes around the URL. ``devtool add`` does not
require the quotes, but the shell considers ";" as a splitter
between multiple commands. Thus, without the quotes,
``devtool add`` does not receive the other parts, which results in
@@ -1042,9 +1017,8 @@ repository or local source tree. To add modules this way, use
$ devtool add https://github.com/diversario/node-ssdp
-In this example, ``devtool``
-fetches the specified Git repository, detects the code as Node.js code,
-fetches dependencies using ``npm``, and sets
+In this example, ``devtool`` fetches the specified Git repository, detects the
+code as Node.js code, fetches dependencies using ``npm``, and sets
:term:`SRC_URI` accordingly.
Working With Recipes
@@ -1121,18 +1095,13 @@ Setting Configure Arguments
If the software your recipe is building uses GNU autoconf, then a fixed
set of arguments is passed to it to enable cross-compilation plus any
-extras specified by
-:term:`EXTRA_OECONF` or
-:term:`PACKAGECONFIG_CONFARGS`
+extras specified by :term:`EXTRA_OECONF` or :term:`PACKAGECONFIG_CONFARGS`
set within the recipe. If you wish to pass additional options, add them
to :term:`EXTRA_OECONF` or :term:`PACKAGECONFIG_CONFARGS`. Other supported build
-tools have similar variables (e.g.
-:term:`EXTRA_OECMAKE` for
-CMake, :term:`EXTRA_OESCONS`
-for Scons, and so forth). If you need to pass anything on the ``make``
-command line, you can use :term:`EXTRA_OEMAKE` or the
-:term:`PACKAGECONFIG_CONFARGS`
-variables to do so.
+tools have similar variables (e.g. :term:`EXTRA_OECMAKE` for CMake,
+:term:`EXTRA_OESCONS` for Scons, and so forth). If you need to pass anything on
+the ``make`` command line, you can use :term:`EXTRA_OEMAKE` or the
+:term:`PACKAGECONFIG_CONFARGS` variables to do so.
You can use the ``devtool configure-help`` command to help you set the
arguments listed in the previous paragraph. The command determines the
@@ -1156,8 +1125,7 @@ the build host.
Recipes should never write files directly into the sysroot. Instead,
files should be installed into standard locations during the
-:ref:`ref-tasks-install` task within
-the ``${``\ :term:`D`\ ``}`` directory. A
+:ref:`ref-tasks-install` task within the ``${``\ :term:`D`\ ``}`` directory. A
subset of these files automatically goes into the sysroot. The reason
for this limitation is that almost all files that go into the sysroot
are cataloged in manifests in order to ensure they can be removed later
@@ -1173,14 +1141,12 @@ the target device, it is important to understand packaging because the
contents of the image are expressed in terms of packages and not
recipes.
-During the :ref:`ref-tasks-package`
-task, files installed during the
-:ref:`ref-tasks-install` task are
-split into one main package, which is almost always named the same as
-the recipe, and into several other packages. This separation exists
-because not all of those installed files are useful in every image. For
-example, you probably do not need any of the documentation installed in
-a production image. Consequently, for each recipe the documentation
+During the :ref:`ref-tasks-package` task, files installed during the
+:ref:`ref-tasks-install` task are split into one main package, which is almost
+always named the same as the recipe, and into several other packages. This
+separation exists because not all of those installed files are useful in every
+image. For example, you probably do not need any of the documentation installed
+in a production image. Consequently, for each recipe the documentation
files are separated into a ``-doc`` package. Recipes that package
software containing optional modules or plugins might undergo additional
package splitting as well.
@@ -1188,8 +1154,7 @@ package splitting as well.
After building a recipe, you can see where files have gone by looking in
the ``oe-workdir/packages-split`` directory, which contains a
subdirectory for each package. Apart from some advanced cases, the
-:term:`PACKAGES` and
-:term:`FILES` variables controls
+:term:`PACKAGES` and :term:`FILES` variables controls
splitting. The :term:`PACKAGES` variable lists all of the packages to be
produced, while the :term:`FILES` variable specifies which files to include
in each package by using an override to specify the package. For
@@ -1231,16 +1196,11 @@ target machine.
.. note::
- The
- devtool deploy-target
- and
- devtool undeploy-target
- commands do not currently interact with any package management system
- on the target device (e.g. RPM or OPKG). Consequently, you should not
- intermingle
- devtool deploy-target
- and package manager operations on the target device. Doing so could
- result in a conflicting set of files.
+ The ``devtool deploy-target`` and ``devtool undeploy-target`` commands do
+ not currently interact with any package management system on the target
+ device (e.g. RPM or OPKG). Consequently, you should not intermingle
+ ``devtool deploy-target`` and package manager operations on the target
+ device. Doing so could result in a conflicting set of files.
Installing Additional Items Into the Extensible SDK
===================================================
@@ -1264,7 +1224,7 @@ When using the extensible SDK directly in a Yocto build
In this scenario, the Yocto build tooling, e.g. ``bitbake``
is directly accessible to build additional items, and it
-can simply be executed directly:
+can simply be executed directly::
$ bitbake mesa
$ bitbake build-sysroots
@@ -1272,6 +1232,8 @@ can simply be executed directly:
When using a standalone installer for the Extensible SDK
--------------------------------------------------------
+::
+
$ devtool sdk-install mesa
By default, the ``devtool sdk-install`` command assumes
@@ -1297,13 +1259,13 @@ To update your installed SDK, use ``devtool`` as follows::
$ devtool sdk-update
-The previous command assumes your SDK provider has set the
-default update URL for you through the :term:`SDK_UPDATE_URL`
-variable as described in the
+The previous command assumes your SDK provider has set the default update URL
+for you through the :term:`SDK_UPDATE_URL` variable as described in the
":ref:`sdk-manual/appendix-customizing:Providing Updates to the Extensible SDK After Installation`"
section. If the SDK provider has not set that default URL, you need to
-specify it yourself in the command as follows: $ devtool sdk-update
-path_to_update_directory
+specify it yourself in the command as follows::
+
+ $ devtool sdk-update path_to_update_directory
.. note::
diff --git a/poky/documentation/template/template.svg b/poky/documentation/template/template.svg
index 43043e3afb..50715c08b0 100644
--- a/poky/documentation/template/template.svg
+++ b/poky/documentation/template/template.svg
@@ -1019,7 +1019,7 @@
id="tspan1183-1-8"
x="-52.348656"
y="518.42615"
- style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:37.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke:none">Objets</tspan></text>
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:37.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke:none">Objects</tspan></text>
<text
xml:space="preserve"
style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
diff --git a/poky/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py b/poky/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py
index 64a3502370..d2f0f88f7d 100644
--- a/poky/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py
+++ b/poky/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py
@@ -10,7 +10,8 @@ class DnfSelftest(DnfTest):
import tempfile
cls.temp_dir = tempfile.TemporaryDirectory(prefix="oeqa-remotefeeds-")
cls.repo_server = HTTPService(os.path.join(cls.tc.td['WORKDIR'], 'oe-rootfs-repo'),
- cls.tc.target.server_ip)
+ '0.0.0.0', port=cls.tc.target.server_port,
+ logger=cls.tc.logger)
cls.repo_server.start()
@classmethod
diff --git a/poky/meta-selftest/recipes-test/selftest-ed/selftest-ed_0.5.bb b/poky/meta-selftest/recipes-test/selftest-ed/selftest-ed_0.5.bb
index c5037a4912..1a140a532f 100644
--- a/poky/meta-selftest/recipes-test/selftest-ed/selftest-ed_0.5.bb
+++ b/poky/meta-selftest/recipes-test/selftest-ed/selftest-ed_0.5.bb
@@ -5,7 +5,6 @@ LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=6ddd5335ef96fb858a138230af773710 \
file://main.c;beginline=1;endline=17;md5=36d4b85e5ae9028e918d1cc775c2475e"
-PR = "r2"
SRC_URI = "${SAVANNAH_GNU_MIRROR}/ed/ed-${PV}.tar.bz2"
SRC_URI[md5sum] = "4ee21e9dcc9b5b6012c23038734e1632"
diff --git a/poky/meta-skeleton/recipes-skeleton/libxpm/libxpm_3.5.6.bb b/poky/meta-skeleton/recipes-skeleton/libxpm/libxpm_3.5.6.bb
index a1ad2e87d4..1fcbbdd65e 100644
--- a/poky/meta-skeleton/recipes-skeleton/libxpm/libxpm_3.5.6.bb
+++ b/poky/meta-skeleton/recipes-skeleton/libxpm/libxpm_3.5.6.bb
@@ -4,7 +4,6 @@ DESCRIPTION = "X11 Pixmap library"
LICENSE = "X-BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=3e07763d16963c3af12db271a31abaa5"
DEPENDS += "libxext"
-PR = "r2"
PE = "1"
XORG_PN = "libXpm"
diff --git a/poky/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb b/poky/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb
index d7a5a95bac..8437a5a774 100644
--- a/poky/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb
+++ b/poky/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb
@@ -1,7 +1,6 @@
SUMMARY = "Example recipe for using inherit useradd"
DESCRIPTION = "This recipe serves as an example for using features from useradd.bbclass"
SECTION = "examples"
-PR = "r1"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
diff --git a/poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf b/poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf
index 362f6e040e..8b67cefef7 100644
--- a/poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf
+++ b/poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf
@@ -3,9 +3,6 @@
#@DESCRIPTION: Reference machine configuration for http://beagleboard.org/bone and http://beagleboard.org/black boards
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
-XSERVER ?= "xserver-xorg \
- xf86-video-modesetting \
- "
MACHINE_EXTRA_RRECOMMENDS = "kernel-modules kernel-devicetree"
diff --git a/poky/meta/classes-global/base.bbclass b/poky/meta/classes-global/base.bbclass
index 7c774d250f..f57f9cf827 100644
--- a/poky/meta/classes-global/base.bbclass
+++ b/poky/meta/classes-global/base.bbclass
@@ -527,7 +527,7 @@ python () {
message = "Has a restricted license '%s' which is not listed in your LICENSE_FLAGS_ACCEPTED." % unmatched
details = d.getVarFlag("LICENSE_FLAGS_DETAILS", unmatched)
if details:
- message += details
+ message += "\n" + details
bb.debug(1, "Skipping %s: %s" % (pn, message))
raise bb.parse.SkipRecipe(message)
diff --git a/poky/meta/classes-global/insane.bbclass b/poky/meta/classes-global/insane.bbclass
index 2e53778934..5743d91240 100644
--- a/poky/meta/classes-global/insane.bbclass
+++ b/poky/meta/classes-global/insane.bbclass
@@ -97,9 +97,8 @@ def package_qa_check_shebang_size(path, name, d, elf, messages):
return
if stanza.startswith(b'#!'):
- #Shebang not found
try:
- stanza = stanza.decode("utf-8")
+ stanza.decode("utf-8")
except UnicodeDecodeError:
#If it is not a text file, it is not a script
return
diff --git a/poky/meta/classes-global/license.bbclass b/poky/meta/classes-global/license.bbclass
index 23625f0104..b2e0d3faba 100644
--- a/poky/meta/classes-global/license.bbclass
+++ b/poky/meta/classes-global/license.bbclass
@@ -29,7 +29,7 @@ python do_populate_lic() {
lic_files_paths = find_license_files(d)
# The base directory we wrangle licenses to
- destdir = os.path.join(d.getVar('LICSSTATEDIR'), d.getVar('PN'))
+ destdir = os.path.join(d.getVar('LICSSTATEDIR'), d.getVar('SSTATE_PKGARCH'), d.getVar('PN'))
copy_license_files(lic_files_paths, destdir)
info = get_recipe_info(d)
with open(os.path.join(destdir, "recipeinfo"), "w") as f:
diff --git a/poky/meta/classes-global/sstate.bbclass b/poky/meta/classes-global/sstate.bbclass
index c50198449c..2676f18e0a 100644
--- a/poky/meta/classes-global/sstate.bbclass
+++ b/poky/meta/classes-global/sstate.bbclass
@@ -55,8 +55,6 @@ PV[vardepvalue] = "${PV}"
SSTATE_EXTRAPATH[vardepvalue] = ""
SSTATE_EXTRAPATHWILDCARD[vardepvalue] = ""
-# For multilib rpm the allarch packagegroup files can overwrite (in theory they're identical)
-SSTATE_ALLOW_OVERLAP_FILES = "${DEPLOY_DIR}/licenses/"
# Avoid docbook/sgml catalog warnings for now
SSTATE_ALLOW_OVERLAP_FILES += "${STAGING_ETCDIR_NATIVE}/sgml ${STAGING_DATADIR_NATIVE}/sgml"
# sdk-provides-dummy-nativesdk and nativesdk-buildtools-perl-dummy overlap for different SDKMACHINE
@@ -85,14 +83,15 @@ SSTATE_HASHEQUIV_FILEMAP ?= " \
BB_HASHFILENAME = "False ${SSTATE_PKGSPEC} ${SSTATE_SWSPEC}"
+SSTATE_ARCHS_TUNEPKG ??= "${TUNE_PKGARCH}"
SSTATE_ARCHS = " \
${BUILD_ARCH} \
${BUILD_ARCH}_${ORIGNATIVELSBSTRING} \
${BUILD_ARCH}_${SDK_ARCH}_${SDK_OS} \
${SDK_ARCH}_${SDK_OS} \
- ${SDK_ARCH}_${PACKAGE_ARCH} \
+ ${SDK_ARCH}_${SDK_ARCH}-${SDKPKGSUFFIX} \
allarch \
- ${PACKAGE_ARCH} \
+ ${SSTATE_ARCHS_TUNEPKG} \
${PACKAGE_EXTRA_ARCHS} \
${MACHINE_ARCH}"
SSTATE_ARCHS[vardepsexclude] = "ORIGNATIVELSBSTRING"
@@ -268,7 +267,7 @@ def sstate_install(ss, d):
overlap_allowed = (d.getVar("SSTATE_ALLOW_OVERLAP_FILES") or "").split()
match = []
for f in sharedfiles:
- if os.path.exists(f) and not os.path.islink(f):
+ if os.path.exists(f):
f = os.path.normpath(f)
realmatch = True
for w in overlap_allowed:
@@ -278,36 +277,18 @@ def sstate_install(ss, d):
break
if realmatch:
match.append(f)
- sstate_search_cmd = "grep -rlF '%s' %s --exclude=master.list | sed -e 's:^.*/::'" % (f, d.expand("${SSTATE_MANIFESTS}"))
+ sstate_search_cmd = "grep -rlF '%s' %s --exclude=index-* | sed -e 's:^.*/::'" % (f, d.expand("${SSTATE_MANIFESTS}"))
search_output = subprocess.Popen(sstate_search_cmd, shell=True, stdout=subprocess.PIPE).communicate()[0]
if search_output:
match.append(" (matched in %s)" % search_output.decode('utf-8').rstrip())
else:
match.append(" (not matched to any task)")
if match:
- bb.error("The recipe %s is trying to install files into a shared " \
- "area when those files already exist. Those files and their manifest " \
- "location are:\n %s\nPlease verify which recipe should provide the " \
- "above files.\n\nThe build has stopped, as continuing in this scenario WILL " \
- "break things - if not now, possibly in the future (we've seen builds fail " \
- "several months later). If the system knew how to recover from this " \
- "automatically it would, however there are several different scenarios " \
- "which can result in this and we don't know which one this is. It may be " \
- "you have switched providers of something like virtual/kernel (e.g. from " \
- "linux-yocto to linux-yocto-dev), in that case you need to execute the " \
- "clean task for both recipes and it will resolve this error. It may be " \
- "you changed DISTRO_FEATURES from systemd to udev or vice versa. Cleaning " \
- "those recipes should again resolve this error, however switching " \
- "DISTRO_FEATURES on an existing build directory is not supported - you " \
- "should really clean out tmp and rebuild (reusing sstate should be safe). " \
- "It could be the overlapping files detected are harmless in which case " \
- "adding them to SSTATE_ALLOW_OVERLAP_FILES may be the correct solution. It could " \
- "also be your build is including two different conflicting versions of " \
- "things (e.g. bluez 4 and bluez 5 and the correct solution for that would " \
- "be to resolve the conflict. If in doubt, please ask on the mailing list, " \
- "sharing the error and filelist above." % \
+ bb.fatal("Recipe %s is trying to install files into a shared " \
+ "area when those files already exist. The files and the manifests listing " \
+ "them are:\n %s\n"
+ "Please adjust the recipes so only one recipe provides a given file. " % \
(d.getVar('PN'), "\n ".join(match)))
- bb.fatal("If the above message is too much, the simpler version is you're advised to wipe out tmp and rebuild (reusing sstate is fine). That will likely fix things in most (but not all) cases.")
if ss['fixmedir'] and os.path.exists(ss['fixmedir'] + "/fixmepath.cmd"):
sharedfiles.append(ss['fixmedir'] + "/fixmepath.cmd")
diff --git a/poky/meta/classes-global/staging.bbclass b/poky/meta/classes-global/staging.bbclass
index 3a300c32e7..d229f40107 100644
--- a/poky/meta/classes-global/staging.bbclass
+++ b/poky/meta/classes-global/staging.bbclass
@@ -92,7 +92,8 @@ python sysroot_strip () {
qa_already_stripped = 'already-stripped' in (d.getVar('INSANE_SKIP:' + pn) or "").split()
strip_cmd = d.getVar("STRIP")
- oe.package.strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, d,
+ max_process = oe.utils.get_bb_number_threads(d)
+ oe.package.strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, max_process,
qa_already_stripped=qa_already_stripped)
}
diff --git a/poky/meta/classes-recipe/fontcache.bbclass b/poky/meta/classes-recipe/fontcache.bbclass
index 0d496b72dd..6f4978369d 100644
--- a/poky/meta/classes-recipe/fontcache.bbclass
+++ b/poky/meta/classes-recipe/fontcache.bbclass
@@ -13,6 +13,7 @@ PACKAGE_WRITE_DEPS += "qemu-native"
inherit qemu
FONT_PACKAGES ??= "${PN}"
+FONT_PACKAGES:class-native = ""
FONT_EXTRA_RDEPENDS ?= "${MLPREFIX}fontconfig-utils"
FONTCONFIG_CACHE_DIR ?= "${localstatedir}/cache/fontconfig"
FONTCONFIG_CACHE_PARAMS ?= "-v"
diff --git a/poky/meta/classes-recipe/goarch.bbclass b/poky/meta/classes-recipe/goarch.bbclass
index e3555e1e46..5fb6051bde 100644
--- a/poky/meta/classes-recipe/goarch.bbclass
+++ b/poky/meta/classes-recipe/goarch.bbclass
@@ -54,6 +54,7 @@ COMPATIBLE_HOST:linux-muslx32 = "null"
COMPATIBLE_HOST:powerpc = "null"
COMPATIBLE_HOST:powerpc64 = "null"
COMPATIBLE_HOST:mipsarchn32 = "null"
+COMPATIBLE_HOST:riscv32 = "null"
ARM_INSTRUCTION_SET:armv4 = "arm"
ARM_INSTRUCTION_SET:armv5 = "arm"
diff --git a/poky/meta/classes-recipe/image.bbclass b/poky/meta/classes-recipe/image.bbclass
index 4f00162e78..7231fad940 100644
--- a/poky/meta/classes-recipe/image.bbclass
+++ b/poky/meta/classes-recipe/image.bbclass
@@ -96,6 +96,7 @@ USE_DEPMOD ?= "1"
PID = "${@os.getpid()}"
PACKAGE_ARCH = "${MACHINE_ARCH}"
+SSTATE_ARCHS_TUNEPKG = "${@all_multilib_tune_values(d, 'TUNE_PKGARCH')}"
LDCONFIGDEPEND ?= "ldconfig-native:do_populate_sysroot"
LDCONFIGDEPEND:libc-musl = ""
diff --git a/poky/meta/classes-recipe/kernel-fitimage.bbclass b/poky/meta/classes-recipe/kernel-fitimage.bbclass
index 13e8947f09..7e30a5d47e 100644
--- a/poky/meta/classes-recipe/kernel-fitimage.bbclass
+++ b/poky/meta/classes-recipe/kernel-fitimage.bbclass
@@ -599,6 +599,11 @@ fitimage_assemble() {
DTB_PATH="${KERNEL_OUTPUT_DIR}/$DTB"
fi
+ # Strip off the path component from the filename
+ if "${@'false' if oe.types.boolean(d.getVar('KERNEL_DTBVENDORED')) else 'true'}"; then
+ DTB=`basename $DTB`
+ fi
+
# Set the default dtb image if it exists in the devicetree.
if [ ${FIT_CONF_DEFAULT_DTB} = $DTB ];then
default_dtb_image=$(echo "$DTB" | tr '/' '_')
diff --git a/poky/meta/classes-recipe/license_image.bbclass b/poky/meta/classes-recipe/license_image.bbclass
index fc859c7c65..19b3dc55ba 100644
--- a/poky/meta/classes-recipe/license_image.bbclass
+++ b/poky/meta/classes-recipe/license_image.bbclass
@@ -18,7 +18,7 @@ python() {
python write_package_manifest() {
# Get list of installed packages
- license_image_dir = d.expand('${LICENSE_DIRECTORY}/${IMAGE_NAME}')
+ license_image_dir = d.expand('${LICENSE_DIRECTORY}/${SSTATE_PKGARCH}/${IMAGE_NAME}')
bb.utils.mkdirhier(license_image_dir)
from oe.rootfs import image_list_installed_packages
from oe.utils import format_pkg_list
@@ -49,7 +49,7 @@ python license_create_manifest() {
pkg_dic[pkg_name]["LICENSE"] = pkg_dic[pkg_name][pkg_lic_name]
rootfs_license_manifest = os.path.join(d.getVar('LICENSE_DIRECTORY'),
- d.getVar('IMAGE_NAME'), 'license.manifest')
+ d.getVar('SSTATE_PKGARCH'), d.getVar('IMAGE_NAME'), 'license.manifest')
write_license_files(d, rootfs_license_manifest, pkg_dic, rootfs=True)
}
@@ -59,6 +59,8 @@ def write_license_files(d, license_manifest, pkg_dic, rootfs=True):
bad_licenses = (d.getVar("INCOMPATIBLE_LICENSE") or "").split()
bad_licenses = expand_wildcard_licenses(d, bad_licenses)
+ pkgarchs = d.getVar("SSTATE_ARCHS").split()
+ pkgarchs.reverse()
exceptions = (d.getVar("INCOMPATIBLE_LICENSE_EXCEPTIONS") or "").split()
with open(license_manifest, "w") as license_file:
@@ -98,9 +100,13 @@ def write_license_files(d, license_manifest, pkg_dic, rootfs=True):
license_file.write("FILES: %s\n\n" % pkg_dic[pkg]["FILES"])
for lic in pkg_dic[pkg]["LICENSES"]:
- lic_file = os.path.join(d.getVar('LICENSE_DIRECTORY'),
- pkg_dic[pkg]["PN"], "generic_%s" %
- re.sub(r'\+', '', lic))
+ for pkgarch in pkgarchs:
+ lic_file = os.path.join(d.getVar('LICENSE_DIRECTORY'),
+ pkgarch,
+ pkg_dic[pkg]["PN"], "generic_%s" %
+ re.sub(r'\+', '', lic))
+ if os.path.exists(lic_file):
+ break
# add explicity avoid of CLOSED license because isn't generic
if lic == "CLOSED":
continue
@@ -130,8 +136,13 @@ def write_license_files(d, license_manifest, pkg_dic, rootfs=True):
for pkg in sorted(pkg_dic):
pkg_rootfs_license_dir = os.path.join(rootfs_license_dir, pkg)
bb.utils.mkdirhier(pkg_rootfs_license_dir)
- pkg_license_dir = os.path.join(d.getVar('LICENSE_DIRECTORY'),
- pkg_dic[pkg]["PN"])
+ for pkgarch in pkgarchs:
+ pkg_license_dir = os.path.join(d.getVar('LICENSE_DIRECTORY'),
+ pkgarch, pkg_dic[pkg]["PN"])
+ if os.path.exists(pkg_license_dir):
+ break
+ if not os.path.exists(pkg_license_dir ):
+ bb.fatal("Couldn't find license information for dependency %s" % pkg)
pkg_manifest_licenses = [canonical_license(d, lic) \
for lic in pkg_dic[pkg]["LICENSES"]]
@@ -183,7 +194,7 @@ def write_license_files(d, license_manifest, pkg_dic, rootfs=True):
os.lchown(p, 0, 0)
os.chmod(p, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
-
+write_license_files[vardepsexclude] = "SSTATE_ARCHS"
def license_deployed_manifest(d):
"""
@@ -195,6 +206,8 @@ def license_deployed_manifest(d):
dep_dic = {}
man_dic = {}
lic_dir = d.getVar("LICENSE_DIRECTORY")
+ pkgarchs = d.getVar("SSTATE_ARCHS").split()
+ pkgarchs.reverse()
dep_dic = get_deployed_dependencies(d)
for dep in dep_dic.keys():
@@ -204,12 +217,19 @@ def license_deployed_manifest(d):
man_dic[dep]["PN"] = dep
man_dic[dep]["FILES"] = \
" ".join(get_deployed_files(dep_dic[dep]))
- with open(os.path.join(lic_dir, dep, "recipeinfo"), "r") as f:
+
+ for pkgarch in pkgarchs:
+ licfile = os.path.join(lic_dir, pkgarch, dep, "recipeinfo")
+ if os.path.exists(licfile):
+ break
+ if not os.path.exists(licfile):
+ bb.fatal("Couldn't find license information for dependency %s" % dep)
+ with open(licfile, "r") as f:
for line in f.readlines():
key,val = line.split(": ", 1)
man_dic[dep][key] = val[:-1]
- lic_manifest_dir = os.path.join(d.getVar('LICENSE_DIRECTORY'),
+ lic_manifest_dir = os.path.join(d.getVar('LICENSE_DIRECTORY'), d.getVar('SSTATE_PKGARCH'),
d.getVar('IMAGE_NAME'))
bb.utils.mkdirhier(lic_manifest_dir)
image_license_manifest = os.path.join(lic_manifest_dir, 'image_license.manifest')
@@ -217,7 +237,7 @@ def license_deployed_manifest(d):
link_name = d.getVar('IMAGE_LINK_NAME')
if link_name:
- lic_manifest_symlink_dir = os.path.join(d.getVar('LICENSE_DIRECTORY'),
+ lic_manifest_symlink_dir = os.path.join(d.getVar('LICENSE_DIRECTORY'), d.getVar('SSTATE_PKGARCH'),
link_name)
# remove old symlink
if os.path.islink(lic_manifest_symlink_dir):
@@ -227,6 +247,8 @@ def license_deployed_manifest(d):
if lic_manifest_dir != lic_manifest_symlink_dir:
os.symlink(lic_manifest_dir, lic_manifest_symlink_dir)
+license_deployed_manifest[vardepsexclude] = "SSTATE_ARCHS"
+
def get_deployed_dependencies(d):
"""
Get all the deployed dependencies of an image
@@ -255,7 +277,7 @@ def get_deployed_dependencies(d):
break
return deploy
-get_deployed_dependencies[vardepsexclude] = "BB_TASKDEPDATA"
+get_deployed_dependencies[vardepsexclude] = "BB_TASKDEPDATA SSTATE_ARCHS"
def get_deployed_files(man_file):
"""
diff --git a/poky/meta/classes-recipe/multilib_script.bbclass b/poky/meta/classes-recipe/multilib_script.bbclass
index 7011526254..e6f0249529 100644
--- a/poky/meta/classes-recipe/multilib_script.bbclass
+++ b/poky/meta/classes-recipe/multilib_script.bbclass
@@ -31,10 +31,11 @@ python () {
for entry in (d.getVar("MULTILIB_SCRIPTS", False) or "").split():
pkg, script = entry.split(":")
epkg = d.expand(pkg)
- scriptname = os.path.basename(script)
+ escript = d.expand(script)
+ scriptname = os.path.basename(escript)
d.appendVar("ALTERNATIVE:" + epkg, " " + scriptname + " ")
- d.setVarFlag("ALTERNATIVE_LINK_NAME", scriptname, script)
- d.setVarFlag("ALTERNATIVE_TARGET", scriptname, script + "-${MULTILIB_SUFFIX}")
- d.appendVar("multilibscript_rename", "\n mv ${PKGD}" + script + " ${PKGD}" + script + "-${MULTILIB_SUFFIX}")
- d.appendVar("FILES:" + epkg, " " + script + "-${MULTILIB_SUFFIX}")
+ d.setVarFlag("ALTERNATIVE_LINK_NAME", scriptname, escript)
+ d.setVarFlag("ALTERNATIVE_TARGET", scriptname, escript + "-${MULTILIB_SUFFIX}")
+ d.appendVar("multilibscript_rename", "\n mv ${PKGD}" + escript + " ${PKGD}" + escript + "-${MULTILIB_SUFFIX}")
+ d.appendVar("FILES:" + epkg, " " + escript + "-${MULTILIB_SUFFIX}")
}
diff --git a/poky/meta/classes-recipe/pypi.bbclass b/poky/meta/classes-recipe/pypi.bbclass
index f510bfed06..b8c18ccf39 100644
--- a/poky/meta/classes-recipe/pypi.bbclass
+++ b/poky/meta/classes-recipe/pypi.bbclass
@@ -30,7 +30,9 @@ SECTION = "devel/python"
SRC_URI:prepend = "${PYPI_SRC_URI} "
S = "${WORKDIR}/${PYPI_PACKAGE}-${PV}"
-UPSTREAM_CHECK_URI ?= "https://pypi.org/project/${PYPI_PACKAGE}/"
-UPSTREAM_CHECK_REGEX ?= "/${PYPI_PACKAGE}/(?P<pver>(\d+[\.\-_]*)+)/"
+# Replace any '_' characters in the pypi URI with '-'s to follow the PyPi website naming conventions
+UPSTREAM_CHECK_PYPI_PACKAGE ?= "${@d.getVar('PYPI_PACKAGE').replace('_', '-')}"
+UPSTREAM_CHECK_URI ?= "https://pypi.org/project/${UPSTREAM_CHECK_PYPI_PACKAGE}/"
+UPSTREAM_CHECK_REGEX ?= "/${UPSTREAM_CHECK_PYPI_PACKAGE}/(?P<pver>(\d+[\.\-_]*)+)/"
CVE_PRODUCT ?= "python:${PYPI_PACKAGE}"
diff --git a/poky/meta/classes-recipe/systemd-boot-cfg.bbclass b/poky/meta/classes-recipe/systemd-boot-cfg.bbclass
index 366dd23738..12da41ebad 100644
--- a/poky/meta/classes-recipe/systemd-boot-cfg.bbclass
+++ b/poky/meta/classes-recipe/systemd-boot-cfg.bbclass
@@ -35,7 +35,7 @@ python build_efi_cfg() {
bb.fatal('Unable to open %s' % cfile)
cfgfile.write('# Automatically created by OE\n')
- cfgfile.write('default %s\n' % (labels.split()[0]))
+ cfgfile.write('default %s.conf\n' % (labels.split()[0]))
timeout = d.getVar('SYSTEMD_BOOT_TIMEOUT')
if timeout:
cfgfile.write('timeout %s\n' % timeout)
diff --git a/poky/meta/classes-recipe/testimage.bbclass b/poky/meta/classes-recipe/testimage.bbclass
index e3068348ff..7c56fe9674 100644
--- a/poky/meta/classes-recipe/testimage.bbclass
+++ b/poky/meta/classes-recipe/testimage.bbclass
@@ -322,7 +322,7 @@ def testimage_main(d):
ovmf = d.getVar("QEMU_USE_OVMF")
slirp = False
- if d.getVar("QEMU_USE_SLIRP"):
+ if bb.utils.contains('TEST_RUNQEMUPARAMS', 'slirp', True, False, d):
slirp = True
# TODO: We use the current implementation of qemu runner because of
@@ -369,10 +369,21 @@ def testimage_main(d):
# runtime use network for download projects for build
export_proxies(d)
+ if slirp:
+ # Default to 127.0.0.1 and let the runner identify the port forwarding
+ # (as OEQemuTarget does), but allow overriding.
+ target_ip = d.getVar("TEST_TARGET_IP") or "127.0.0.1"
+ # Default to 10.0.2.2 as this is the IP that the guest has with the
+ # default qemu slirp networking configuration, but allow overriding.
+ server_ip = d.getVar("TEST_SERVER_IP") or "10.0.2.2"
+ else:
+ target_ip = d.getVar("TEST_TARGET_IP")
+ server_ip = d.getVar("TEST_SERVER_IP")
+
# the robot dance
target = OERuntimeTestContextExecutor.getTarget(
- d.getVar("TEST_TARGET"), logger, d.getVar("TEST_TARGET_IP"),
- d.getVar("TEST_SERVER_IP"), **target_kwargs)
+ d.getVar("TEST_TARGET"), logger, target_ip,
+ server_ip, **target_kwargs)
# test context
tc = OERuntimeTestContext(td, logger, target, image_packages, extract_dir)
diff --git a/poky/meta/classes-recipe/uboot-extlinux-config.bbclass b/poky/meta/classes-recipe/uboot-extlinux-config.bbclass
index 653e583663..f752c16b9c 100644
--- a/poky/meta/classes-recipe/uboot-extlinux-config.bbclass
+++ b/poky/meta/classes-recipe/uboot-extlinux-config.bbclass
@@ -6,6 +6,8 @@
#
# External variables:
#
+# UBOOT_EXTLINUX - Set to "1" to enable generation
+# of extlinux.conf using this class.
# UBOOT_EXTLINUX_CONSOLE - Set to "console=ttyX" to change kernel boot
# default console.
# UBOOT_EXTLINUX_LABELS - A list of targets for the automatic config.
@@ -20,7 +22,8 @@
# UBOOT_EXTLINUX_TIMEOUT - Timeout before DEFAULT selection is made.
# Measured in 1/10 of a second.
# UBOOT_EXTLINUX_DEFAULT_LABEL - Target to be selected by default after
-# the timeout period
+# the timeout period.
+# UBOOT_EXTLINUX_CONFIG - Output file.
#
# If there's only one label system will boot automatically and menu won't be
# created. If you want to use more than one labels, e.g linux and alternate,
diff --git a/poky/meta/classes/create-spdx-2.2.bbclass b/poky/meta/classes/create-spdx-2.2.bbclass
index aed1a94132..b0aef80db1 100644
--- a/poky/meta/classes/create-spdx-2.2.bbclass
+++ b/poky/meta/classes/create-spdx-2.2.bbclass
@@ -302,7 +302,8 @@ def add_package_sources_from_debug(d, package_doc, spdx_package, package, packag
if file_path.lstrip("/") == pkg_file.fileName.lstrip("/"):
break
else:
- bb.fatal("No package file found for %s" % str(file_path))
+ bb.fatal("No package file found for %s in %s; SPDX found: %s" % (str(file_path), package,
+ " ".join(p.fileName for p in package_files)))
continue
for debugsrc in file_data["debugsrc"]:
@@ -348,6 +349,8 @@ def collect_dep_recipes(d, doc, spdx_recipe):
deploy_dir_spdx = Path(d.getVar("DEPLOY_DIR_SPDX"))
spdx_deps_file = Path(d.getVar("SPDXDEPS"))
+ package_archs = d.getVar("SSTATE_ARCHS").split()
+ package_archs.reverse()
dep_recipes = []
@@ -355,7 +358,9 @@ def collect_dep_recipes(d, doc, spdx_recipe):
deps = json.load(f)
for dep_pn, dep_hashfn in deps:
- dep_recipe_path = oe.sbom.doc_path_by_hashfn(deploy_dir_spdx, "recipe-" + dep_pn, dep_hashfn)
+ dep_recipe_path = oe.sbom.doc_find_by_hashfn(deploy_dir_spdx, package_archs, "recipe-" + dep_pn, dep_hashfn)
+ if not dep_recipe_path:
+ bb.fatal("Cannot find any SPDX file for recipe %s, %s" % (dep_pn, dep_hashfn))
spdx_dep_doc, spdx_dep_sha1 = oe.sbom.read_doc(dep_recipe_path)
@@ -384,6 +389,7 @@ def collect_dep_recipes(d, doc, spdx_recipe):
return dep_recipes
+collect_dep_recipes[vardepsexclude] = "SSTATE_ARCHS"
def collect_dep_sources(d, dep_recipes):
import oe.sbom
@@ -532,6 +538,7 @@ python do_create_spdx() {
include_sources = d.getVar("SPDX_INCLUDE_SOURCES") == "1"
archive_sources = d.getVar("SPDX_ARCHIVE_SOURCES") == "1"
archive_packaged = d.getVar("SPDX_ARCHIVE_PACKAGED") == "1"
+ pkg_arch = d.getVar("SSTATE_PKGARCH")
creation_time = datetime.now(tz=timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
@@ -619,7 +626,7 @@ python do_create_spdx() {
dep_recipes = collect_dep_recipes(d, doc, recipe)
- doc_sha1 = oe.sbom.write_doc(d, doc, d.getVar("SSTATE_PKGARCH"), "recipes", indent=get_json_indent(d))
+ doc_sha1 = oe.sbom.write_doc(d, doc, pkg_arch, "recipes", indent=get_json_indent(d))
dep_recipes.append(oe.sbom.DepRecipe(doc, doc_sha1, recipe))
recipe_ref = oe.spdx.SPDXExternalDocumentRef()
@@ -684,7 +691,7 @@ python do_create_spdx() {
add_package_sources_from_debug(d, package_doc, spdx_package, package, package_files, sources)
- oe.sbom.write_doc(d, package_doc, d.getVar("SSTATE_PKGARCH"), "packages", indent=get_json_indent(d))
+ oe.sbom.write_doc(d, package_doc, pkg_arch, "packages", indent=get_json_indent(d))
}
do_create_spdx[vardepsexclude] += "BB_NUMBER_THREADS"
# NOTE: depending on do_unpack is a hack that is necessary to get it's dependencies for archive the source
@@ -755,6 +762,9 @@ python do_create_runtime_spdx() {
creation_time = datetime.now(tz=timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
providers = collect_package_providers(d)
+ pkg_arch = d.getVar("SSTATE_PKGARCH")
+ package_archs = d.getVar("SSTATE_ARCHS").split()
+ package_archs.reverse()
if not is_native:
bb.build.exec_func("read_subpackage_metadata", d)
@@ -771,7 +781,7 @@ python do_create_runtime_spdx() {
if not oe.packagedata.packaged(package, localdata):
continue
- pkg_spdx_path = oe.sbom.doc_path(deploy_dir_spdx, pkg_name, d.getVar("SSTATE_PKGARCH"), "packages")
+ pkg_spdx_path = oe.sbom.doc_path(deploy_dir_spdx, pkg_name, pkg_arch, "packages")
package_doc, package_doc_sha1 = oe.sbom.read_doc(pkg_spdx_path)
@@ -826,7 +836,9 @@ python do_create_runtime_spdx() {
if dep in dep_package_cache:
(dep_spdx_package, dep_package_ref) = dep_package_cache[dep]
else:
- dep_path = oe.sbom.doc_path_by_hashfn(deploy_dir_spdx, dep_pkg, dep_hashfn)
+ dep_path = oe.sbom.doc_find_by_hashfn(deploy_dir_spdx, package_archs, dep_pkg, dep_hashfn)
+ if not dep_path:
+ bb.fatal("No SPDX file found for package %s, %s" % (dep_pkg, dep_hashfn))
spdx_dep_doc, spdx_dep_sha1 = oe.sbom.read_doc(dep_path)
@@ -854,10 +866,10 @@ python do_create_runtime_spdx() {
)
seen_deps.add(dep)
- oe.sbom.write_doc(d, runtime_doc, d.getVar("SSTATE_PKGARCH"), "runtime", spdx_deploy, indent=get_json_indent(d))
+ oe.sbom.write_doc(d, runtime_doc, pkg_arch, "runtime", spdx_deploy, indent=get_json_indent(d))
}
-do_create_runtime_spdx[vardepsexclude] += "OVERRIDES"
+do_create_runtime_spdx[vardepsexclude] += "OVERRIDES SSTATE_ARCHS"
addtask do_create_runtime_spdx after do_create_spdx before do_build do_rm_work
SSTATETASKS += "do_create_runtime_spdx"
@@ -974,7 +986,7 @@ def sdk_combine_spdx(d, sdk_type):
from pathlib import Path
from oe.sdk import sdk_list_installed_packages
- sdk_name = d.getVar("SDK_NAME") + "-" + sdk_type
+ sdk_name = d.getVar("TOOLCHAIN_OUTPUTNAME") + "-" + sdk_type
sdk_deploydir = Path(d.getVar("SDKDEPLOYDIR"))
sdk_spdxid = oe.sbom.get_sdk_spdxid(sdk_name)
sdk_packages = sdk_list_installed_packages(d, sdk_type == "target")
@@ -992,6 +1004,8 @@ def combine_spdx(d, rootfs_name, rootfs_deploydir, rootfs_spdxid, packages, spdx
import bb.compress.zstd
providers = collect_package_providers(d)
+ package_archs = d.getVar("SSTATE_ARCHS").split()
+ package_archs.reverse()
creation_time = datetime.now(tz=timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
deploy_dir_spdx = Path(d.getVar("DEPLOY_DIR_SPDX"))
@@ -1017,11 +1031,14 @@ def combine_spdx(d, rootfs_name, rootfs_deploydir, rootfs_spdxid, packages, spdx
for name in sorted(packages.keys()):
if name not in providers:
- bb.fatal("Unable to find provider for '%s'" % name)
+ bb.fatal("Unable to find SPDX provider for '%s'" % name)
pkg_name, pkg_hashfn = providers[name]
- pkg_spdx_path = oe.sbom.doc_path_by_hashfn(deploy_dir_spdx, pkg_name, pkg_hashfn)
+ pkg_spdx_path = oe.sbom.doc_find_by_hashfn(deploy_dir_spdx, package_archs, pkg_name, pkg_hashfn)
+ if not pkg_spdx_path:
+ bb.fatal("No SPDX file found for package %s, %s" % (pkg_name, pkg_hashfn))
+
pkg_doc, pkg_doc_sha1 = oe.sbom.read_doc(pkg_spdx_path)
for p in pkg_doc.packages:
@@ -1038,7 +1055,10 @@ def combine_spdx(d, rootfs_name, rootfs_deploydir, rootfs_spdxid, packages, spdx
else:
bb.fatal("Unable to find package with name '%s' in SPDX file %s" % (name, pkg_spdx_path))
- runtime_spdx_path = oe.sbom.doc_path_by_hashfn(deploy_dir_spdx, "runtime-" + name, pkg_hashfn)
+ runtime_spdx_path = oe.sbom.doc_find_by_hashfn(deploy_dir_spdx, package_archs, "runtime-" + name, pkg_hashfn)
+ if not runtime_spdx_path:
+ bb.fatal("No runtime SPDX document found for %s, %s" % (name, pkg_hashfn))
+
runtime_doc, runtime_doc_sha1 = oe.sbom.read_doc(runtime_spdx_path)
runtime_ref = oe.spdx.SPDXExternalDocumentRef()
@@ -1110,7 +1130,9 @@ def combine_spdx(d, rootfs_name, rootfs_deploydir, rootfs_spdxid, packages, spdx
})
for ref in doc.externalDocumentRefs:
- ref_path = oe.sbom.doc_path_by_namespace(deploy_dir_spdx, ref.spdxDocument)
+ ref_path = oe.sbom.doc_find_by_namespace(deploy_dir_spdx, package_archs, ref.spdxDocument)
+ if not ref_path:
+ bb.fatal("Cannot find any SPDX file for document %s" % ref.spdxDocument)
collect_spdx_document(ref_path)
collect_spdx_document(image_spdx_path)
@@ -1133,4 +1155,4 @@ def combine_spdx(d, rootfs_name, rootfs_deploydir, rootfs_spdxid, packages, spdx
tar.addfile(info, fileobj=index_str)
-combine_spdx[vardepsexclude] += "BB_NUMBER_THREADS"
+combine_spdx[vardepsexclude] += "BB_NUMBER_THREADS SSTATE_ARCHS"
diff --git a/poky/meta/classes/cve-check.bbclass b/poky/meta/classes/cve-check.bbclass
index 55ae298024..b55f4299da 100644
--- a/poky/meta/classes/cve-check.bbclass
+++ b/poky/meta/classes/cve-check.bbclass
@@ -32,7 +32,7 @@ CVE_PRODUCT ??= "${BPN}"
CVE_VERSION ??= "${PV}"
CVE_CHECK_DB_DIR ?= "${DL_DIR}/CVE_CHECK"
-CVE_CHECK_DB_FILE ?= "${CVE_CHECK_DB_DIR}/nvdcve_2.db"
+CVE_CHECK_DB_FILE ?= "${CVE_CHECK_DB_DIR}/nvdcve_2-1.db"
CVE_CHECK_DB_FILE_LOCK ?= "${CVE_CHECK_DB_FILE}.lock"
CVE_CHECK_LOG ?= "${T}/cve.log"
@@ -442,6 +442,7 @@ def get_cve_info(d, cves):
cve_data[row[0]]["scorev3"] = row[3]
cve_data[row[0]]["modified"] = row[4]
cve_data[row[0]]["vector"] = row[5]
+ cve_data[row[0]]["vectorString"] = row[6]
cursor.close()
conn.close()
return cve_data
@@ -507,6 +508,7 @@ def cve_write_data_text(d, patched, unpatched, ignored, cve_data):
write_string += "CVSS v2 BASE SCORE: %s\n" % cve_data[cve]["scorev2"]
write_string += "CVSS v3 BASE SCORE: %s\n" % cve_data[cve]["scorev3"]
write_string += "VECTOR: %s\n" % cve_data[cve]["vector"]
+ write_string += "VECTORSTRING: %s\n" % cve_data[cve]["vectorString"]
write_string += "MORE INFORMATION: %s%s\n\n" % (nvd_link, cve)
if unpatched_cves and d.getVar("CVE_CHECK_SHOW_WARNINGS") == "1":
@@ -623,6 +625,7 @@ def cve_write_data_json(d, patched, unpatched, ignored, cve_data, cve_status):
"scorev2" : cve_data[cve]["scorev2"],
"scorev3" : cve_data[cve]["scorev3"],
"vector" : cve_data[cve]["vector"],
+ "vectorString" : cve_data[cve]["vectorString"],
"status" : status,
"link": issue_link
}
diff --git a/poky/meta/classes/multilib.bbclass b/poky/meta/classes/multilib.bbclass
index 8a1a51aaba..d80a34cf27 100644
--- a/poky/meta/classes/multilib.bbclass
+++ b/poky/meta/classes/multilib.bbclass
@@ -30,6 +30,9 @@ python multilib_virtclass_handler () {
if val:
e.data.setVar(name + "_MULTILIB_ORIGINAL", val)
+ # We nearly don't need this but dependencies on NON_MULTILIB_RECIPES don't work without it
+ d.setVar("SSTATE_ARCHS_TUNEPKG", "${@all_multilib_tune_values(d, 'TUNE_PKGARCH')}")
+
overrides = e.data.getVar("OVERRIDES", False)
pn = e.data.getVar("PN", False)
overrides = overrides.replace("pn-${PN}", "pn-${PN}:pn-" + pn)
diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf
index 0bcc8215c5..21d6c8b1eb 100644
--- a/poky/meta/conf/bitbake.conf
+++ b/poky/meta/conf/bitbake.conf
@@ -237,7 +237,7 @@ ASSUME_PROVIDED = "\
PN = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
PV = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}"
-PR = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[2] or 'r0'}"
+PR = "r0"
PE = ""
PF = "${PN}-${EXTENDPE}${PV}-${PR}"
EXTENDPE = "${@['','${PE}_'][int(d.getVar('PE') or 0) > 0]}"
@@ -459,7 +459,7 @@ PKGDATA_DIR_SDK = "${TMPDIR}/pkgdata/${SDK_SYS}"
##################################################################
SDK_NAME_PREFIX ?= "oecore"
-SDK_NAME = "${SDK_NAME_PREFIX}-${SDK_ARCH}-${TUNE_PKGARCH}"
+SDK_NAME = "${SDK_NAME_PREFIX}-${IMAGE_BASENAME}-${SDK_ARCH}-${TUNE_PKGARCH}-${MACHINE}"
SDKPATH = "/usr/local/oe-sdk-hardcoded-buildpath"
SDKPATHNATIVE = "${SDKPATH}/sysroots/${SDK_SYS}"
# The path to default to installing the SDK to
@@ -975,5 +975,6 @@ BB_UNIHASH ?= "${BB_TASKHASH}"
oe.sstatesig.find_sstate_manifest[vardepsexclude] = "BBEXTENDCURR BBEXTENDVARIANT OVERRIDES PACKAGE_EXTRA_ARCHS"
oe.utils.get_multilib_datastore[vardepsexclude] = "DEFAULTTUNE_MULTILIB_ORIGINAL OVERRIDES"
oe.path.format_display[vardepsexclude] = "TOPDIR"
-oe.utils.multiprocess_launch[vardepsexclude] = "BB_NUMBER_THREADS"
+oe.utils.get_bb_number_threads[vardepsexclude] = "BB_NUMBER_THREADS"
oe.packagedata.emit_pkgdata[vardepsexclude] = "BB_NUMBER_THREADS"
+oe.packagedata.read_subpkgdata_extended[vardepsexclude] = "BB_NUMBER_THREADS"
diff --git a/poky/meta/conf/distro/defaultsetup.conf b/poky/meta/conf/distro/defaultsetup.conf
index 1abb509629..90b68057ad 100644
--- a/poky/meta/conf/distro/defaultsetup.conf
+++ b/poky/meta/conf/distro/defaultsetup.conf
@@ -14,7 +14,7 @@ TMPDIR .= "${TCLIBCAPPEND}"
USER_CLASSES ?= ""
PACKAGE_CLASSES ?= "package_ipk"
-INHERIT_DISTRO ?= "debian devshell sstate license remove-libtool"
+INHERIT_DISTRO ?= "debian devshell sstate license remove-libtool create-spdx"
INHERIT += "${PACKAGE_CLASSES} ${USER_CLASSES} ${INHERIT_DISTRO}"
INIT_MANAGER ??= "none"
diff --git a/poky/meta/conf/distro/include/maintainers.inc b/poky/meta/conf/distro/include/maintainers.inc
index 3619588ae6..dcc507bb98 100644
--- a/poky/meta/conf/distro/include/maintainers.inc
+++ b/poky/meta/conf/distro/include/maintainers.inc
@@ -38,6 +38,7 @@ RECIPE_MAINTAINER:pn-alsa-tools = "Michael Opdenacker <michael.opdenacker@bootli
RECIPE_MAINTAINER:pn-alsa-topology-conf = "Michael Opdenacker <michael.opdenacker@bootlin.com>"
RECIPE_MAINTAINER:pn-alsa-ucm-conf = "Michael Opdenacker <michael.opdenacker@bootlin.com>"
RECIPE_MAINTAINER:pn-alsa-utils = "Michael Opdenacker <michael.opdenacker@bootlin.com>"
+RECIPE_MAINTAINER:pn-appstream = "Markus Volk <f_l_k@t-online.de>"
RECIPE_MAINTAINER:pn-apr = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER:pn-apr-util = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER:pn-apt = "Unassigned <unassigned@yoctoproject.org>"
@@ -172,7 +173,7 @@ RECIPE_MAINTAINER:pn-expect = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER:pn-ffmpeg = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER:pn-file = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER:pn-findutils = "Chen Qi <Qi.Chen@windriver.com>"
-RECIPE_MAINTAINER:pn-flac = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER:pn-flac = "Michael Opdenacker <michael.opdenacker@bootlin.com>"
RECIPE_MAINTAINER:pn-flex = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER:pn-font-alias = "Unassigned <unassigned@yoctoproject.org>"
RECIPE_MAINTAINER:pn-font-util = "Unassigned <unassigned@yoctoproject.org>"
@@ -208,7 +209,7 @@ RECIPE_MAINTAINER:pn-glibc = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER:pn-glibc-locale = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER:pn-glibc-mtrace = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER:pn-glibc-scripts = "Khem Raj <raj.khem@gmail.com>"
-RECIPE_MAINTAINER:pn-glibc-tests = "Lukasz Majewski <lukma@denx.de>"
+RECIPE_MAINTAINER:pn-glibc-y2038-tests = "Lukasz Majewski <lukma@denx.de>"
RECIPE_MAINTAINER:pn-glibc-testsuite = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER:pn-gmp = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER:pn-glslang = "Jose Quaresma <quaresma.jose@gmail.com>"
@@ -447,6 +448,7 @@ RECIPE_MAINTAINER:pn-libxml-sax-base-perl = "Tim Orling <tim.orling@konsulko.com
RECIPE_MAINTAINER:pn-libxml-sax-perl = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-libxml-simple-perl = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-libxml2 = "Hongxu Jia <hongxu.jia@windriver.com>"
+RECIPE_MAINTAINER:pn-libxmlb = "Markus Volk <f_l_k@t-online.de>"
RECIPE_MAINTAINER:pn-libxmu = "Unassigned <unassigned@yoctoproject.org>"
RECIPE_MAINTAINER:pn-libxpm = "Unassigned <unassigned@yoctoproject.org>"
RECIPE_MAINTAINER:pn-libxrandr = "Unassigned <unassigned@yoctoproject.org>"
@@ -529,6 +531,7 @@ RECIPE_MAINTAINER:pn-mtd-utils = "Denys Dmytriyenko <denis@denix.org>"
RECIPE_MAINTAINER:pn-mtdev = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER:pn-mtools = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER:pn-musl = "Khem Raj <raj.khem@gmail.com>"
+RECIPE_MAINTAINER:pn-musl-legacy-error = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER:pn-musl-locales = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER:pn-musl-obstack = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER:pn-musl-utils = "Khem Raj <raj.khem@gmail.com>"
@@ -604,11 +607,14 @@ RECIPE_MAINTAINER:pn-python3-atomicwrites = "Tim Orling <tim.orling@konsulko.com
RECIPE_MAINTAINER:pn-python3-attrs = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-babel = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-bcrypt = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-beartype = "Marta Rybczynska <mrybczynska@syslinbit.com>"
+RECIPE_MAINTAINER:pn-python3-booleanpy = "zhengrq.fnst <zhengrq.fnst@fujitsu.com>"
RECIPE_MAINTAINER:pn-python3-build = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER:pn-python3-calver = "Trevor Gamblin <tgamblin@baylibre.com>"
RECIPE_MAINTAINER:pn-python3-certifi = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-cffi = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-chardet = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-click = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER:pn-python3-cryptography = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-cryptography-vectors = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-cython = "Trevor Gamblin <tgamblin@baylibre.com>"
@@ -636,10 +642,12 @@ RECIPE_MAINTAINER:pn-python3-importlib-metadata = "Tim Orling <tim.orling@konsul
RECIPE_MAINTAINER:pn-python3-iniconfig = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-iniparse = "Trevor Gamblin <tgamblin@baylibre.com>"
RECIPE_MAINTAINER:pn-python3-iso8601 = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-isodate = "Leon Anavi <leon.anavi@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-installer = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER:pn-python3-jinja2 = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER:pn-python3-jsonpointer = "Bruce Ashfield <bruce.ashfield@gmail.com>"
RECIPE_MAINTAINER:pn-python3-jsonschema = "Bruce Ashfield <bruce.ashfield@gmail.com>"
+RECIPE_MAINTAINER:pn-python3-license-expression = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER:pn-python3-libarchive-c = "Joshua Watt <JPEWhacker@gmail.com>"
RECIPE_MAINTAINER:pn-python3-lxml = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER:pn-python3-magic = "Joshua Watt <JPEWhacker@gmail.com>"
@@ -675,6 +683,7 @@ RECIPE_MAINTAINER:pn-python3-pytest-runner = "Tim Orling <tim.orling@konsulko.co
RECIPE_MAINTAINER:pn-python3-pytest-subtests = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-pytz = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-pyyaml = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-rdflib = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER:pn-python3-requests = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-rfc3339-validator = "Bruce Ashfield <bruce.ashfield@gmail.com>"
RECIPE_MAINTAINER:pn-python3-rfc3986-validator = "Bruce Ashfield <bruce.ashfield@gmail.com>"
@@ -690,6 +699,7 @@ RECIPE_MAINTAINER:pn-python3-smartypants = "Alexander Kanavin <alex.kanavin@gmai
RECIPE_MAINTAINER:pn-python3-smmap = "Unassigned <unassigned@yoctoproject.org>"
RECIPE_MAINTAINER:pn-python3-snowballstemmer = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-sortedcontainers = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-spdx-tools = "Marta Rybczynska <mrybczynska@syslinbit.com>"
RECIPE_MAINTAINER:pn-python3-sphinx = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-sphinxcontrib-qthelp = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-sphinxcontrib-devhelp = "Tim Orling <tim.orling@konsulko.com>"
@@ -706,11 +716,13 @@ RECIPE_MAINTAINER:pn-python3-trove-classifiers = "Trevor Gamblin <tgamblin@bayli
RECIPE_MAINTAINER:pn-python3-typing-extensions = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-typogrify = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER:pn-python3-unittest-automake-output = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER:pn-python3-uritools = "Marta Rybczynska <mrybczynska@syslinbit.com>"
RECIPE_MAINTAINER:pn-python3-urllib3 = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-vcversioner = "Bruce Ashfield <bruce.ashfield@gmail.com>"
RECIPE_MAINTAINER:pn-python3-wcwidth = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-webcolors = "Bruce Ashfield <bruce.ashfield@gmail.com>"
RECIPE_MAINTAINER:pn-python3-wheel = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-xmltodict = "Leon Anavi <leon.anavi@konsulko.com>"
RECIPE_MAINTAINER:pn-python3-zipp = "Tim Orling <tim.orling@konsulko.com>"
RECIPE_MAINTAINER:pn-qemu = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER:pn-qemu-helper-native = "Richard Purdie <richard.purdie@linuxfoundation.org>"
diff --git a/poky/meta/conf/distro/include/ptest-packagelists.inc b/poky/meta/conf/distro/include/ptest-packagelists.inc
index 9160103cb0..fc42f95de2 100644
--- a/poky/meta/conf/distro/include/ptest-packagelists.inc
+++ b/poky/meta/conf/distro/include/ptest-packagelists.inc
@@ -47,6 +47,7 @@ PTESTS_FAST = "\
libxml-sax-base-perl \
libxml-simple-perl \
libxml2 \
+ libxmlb \
logrotate \
lua \
lzo \
@@ -77,8 +78,8 @@ PTESTS_FAST = "\
zlib \
libexif \
"
-PTESTS_FAST:append:libc-glibc = " glibc-tests"
-PTESTS_PROBLEMS:remove:libc-glibc = "glibc-tests"
+PTESTS_FAST:append:libc-glibc = " glibc-y2038-tests"
+PTESTS_PROBLEMS:remove:libc-glibc = "glibc-y2038-tests"
PTESTS_FAST:remove:mips64 = "qemu"
PTESTS_PROBLEMS:append:mips64 = " qemu"
PTESTS_FAST:remove:riscv32 = "qemu"
@@ -108,7 +109,10 @@ PTESTS_SLOW = "\
perl \
python3-cryptography \
python3 \
+ python3-click \
+ python3-xmltodict \
strace \
+ tar \
tcl \
util-linux \
valgrind \
@@ -140,5 +144,6 @@ PTESTS_PROBLEMS = "\
libpam \
libseccomp \
numactl \
+ python3-license-expression \
python3-numpy \
"
diff --git a/poky/meta/conf/distro/include/tcmode-default.inc b/poky/meta/conf/distro/include/tcmode-default.inc
index 69280fd210..707402e6eb 100644
--- a/poky/meta/conf/distro/include/tcmode-default.inc
+++ b/poky/meta/conf/distro/include/tcmode-default.inc
@@ -21,10 +21,10 @@ SDKGCCVERSION ?= "${GCCVERSION}"
BINUVERSION ?= "2.41%"
GDBVERSION ?= "13.%"
GLIBCVERSION ?= "2.38%"
-LINUXLIBCVERSION ?= "6.4%"
+LINUXLIBCVERSION ?= "6.5%"
QEMUVERSION ?= "8.1%"
GOVERSION ?= "1.20%"
-LLVMVERSION ?= "16.%"
+LLVMVERSION ?= "17.%"
RUSTVERSION ?= "1.70%"
PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
diff --git a/poky/meta/conf/distro/include/time64.inc b/poky/meta/conf/distro/include/time64.inc
index bc0c72226b..2e85753e55 100644
--- a/poky/meta/conf/distro/include/time64.inc
+++ b/poky/meta/conf/distro/include/time64.inc
@@ -19,7 +19,7 @@ TARGET_CC_ARCH:append:powerpc = "${@bb.utils.contains('TUNE_FEATURES', 'm32', '$
TARGET_CC_ARCH:append:x86 = "${@bb.utils.contains('TUNE_FEATURES', 'm32', '${GLIBC_64BIT_TIME_FLAGS}', '', d)}"
GLIBC_64BIT_TIME_FLAGS:pn-glibc = ""
-GLIBC_64BIT_TIME_FLAGS:pn-glibc-tests = ""
+GLIBC_64BIT_TIME_FLAGS:pn-glibc-y2038-tests = ""
GLIBC_64BIT_TIME_FLAGS:pn-glibc-testsuite = ""
# pipewire-v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to
# both 32 and 64 bit file APIs. But it does not handle the time side?
@@ -32,13 +32,11 @@ GLIBC_64BIT_TIME_FLAGS:pn-pulseaudio = ""
# Undefines _FILE_OFFSET_BITS on purpose in
# libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
GLIBC_64BIT_TIME_FLAGS:pn-gcc-sanitizers = ""
-# https://github.com/strace/strace/issues/250
-GLIBC_64BIT_TIME_FLAGS:pn-strace = ""
# Caused by the flags exceptions above
INSANE_SKIP:append:pn-gcc-sanitizers = " 32bit-time"
INSANE_SKIP:append:pn-glibc = " 32bit-time"
-INSANE_SKIP:append:pn-glibc-tests = " 32bit-time"
+INSANE_SKIP:append:pn-glibc-y2038-tests = " 32bit-time"
INSANE_SKIP:append:pn-pulseaudio = " 32bit-time"
# Strace has tests that call 32 bit API directly, which is fair enough, e.g.
diff --git a/poky/meta/conf/machine/include/qemu.inc b/poky/meta/conf/machine/include/qemu.inc
index 0d71bcbbad..14feb86790 100644
--- a/poky/meta/conf/machine/include/qemu.inc
+++ b/poky/meta/conf/machine/include/qemu.inc
@@ -8,6 +8,7 @@ PREFERRED_PROVIDER_virtual/libgles3 ?= "mesa"
XSERVER ?= "xserver-xorg \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-swrast xserver-xorg-extension-glx', '', d)} \
xf86-video-fbdev \
+ xf86-video-modesetting \
"
MACHINE_FEATURES = "alsa bluetooth usbgadget screen vfat"
diff --git a/poky/meta/lib/oe/__init__.py b/poky/meta/lib/oe/__init__.py
index 47be7b51d7..da7cbab308 100644
--- a/poky/meta/lib/oe/__init__.py
+++ b/poky/meta/lib/oe/__init__.py
@@ -7,6 +7,6 @@
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)
-BBIMPORTS = ["data", "path", "utils", "types", "package", \
+BBIMPORTS = ["data", "path", "utils", "types", "package", "packagedata", \
"packagegroup", "sstatesig", "lsb", "cachedpath", "license", \
"qa", "reproducible", "rust", "buildcfg"]
diff --git a/poky/meta/lib/oe/package.py b/poky/meta/lib/oe/package.py
index 9d70925b9b..1dd20f85eb 100644
--- a/poky/meta/lib/oe/package.py
+++ b/poky/meta/lib/oe/package.py
@@ -114,7 +114,7 @@ def is_static_lib(path):
return start == magic
return False
-def strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, d, qa_already_stripped=False):
+def strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, max_process, qa_already_stripped=False):
"""
Strip executable code (like executables, shared libraries) _in_place_
- Based on sysroot_strip in staging.bbclass
@@ -122,6 +122,7 @@ def strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, d, qa_already_stripp
:param strip_cmd: Strip command (usually ${STRIP})
:param libdir: ${libdir} - strip .so files in this directory
:param base_libdir: ${base_libdir} - strip .so files in this directory
+ :param max_process: number of stripping processes started in parallel
:param qa_already_stripped: Set to True if already-stripped' in ${INSANE_SKIP}
This is for proper logging and messages only.
"""
@@ -164,7 +165,7 @@ def strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, d, qa_already_stripp
# ...but is it ELF, and is it already stripped?
checkelf.append(file)
inodecache[file] = s.st_ino
- results = oe.utils.multiprocess_launch(is_elf, checkelf, d)
+ results = oe.utils.multiprocess_launch_mp(is_elf, checkelf, max_process)
for (file, elf_file) in results:
#elf_file = is_elf(file)
if elf_file & 1:
@@ -192,7 +193,7 @@ def strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, d, qa_already_stripp
elf_file = int(elffiles[file])
sfiles.append((file, elf_file, strip_cmd))
- oe.utils.multiprocess_launch(runstrip, sfiles, d)
+ oe.utils.multiprocess_launch_mp(runstrip, sfiles, max_process)
def file_translate(file):
diff --git a/poky/meta/lib/oe/package_manager/deb/sdk.py b/poky/meta/lib/oe/package_manager/deb/sdk.py
index 653e42ab3c..6f3005053e 100644
--- a/poky/meta/lib/oe/package_manager/deb/sdk.py
+++ b/poky/meta/lib/oe/package_manager/deb/sdk.py
@@ -69,7 +69,12 @@ class PkgSdk(Sdk):
self.target_pm.run_pre_post_installs()
+ env_bkp = os.environ.copy()
+ os.environ['PATH'] = self.d.expand("${COREBASE}/scripts/nativesdk-intercept") + \
+ os.pathsep + os.environ["PATH"]
+
self.target_pm.run_intercepts(populate_sdk='target')
+ os.environ.update(env_bkp)
execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND"))
diff --git a/poky/meta/lib/oe/package_manager/ipk/sdk.py b/poky/meta/lib/oe/package_manager/ipk/sdk.py
index 6a1f167fb7..cc7a7ede54 100644
--- a/poky/meta/lib/oe/package_manager/ipk/sdk.py
+++ b/poky/meta/lib/oe/package_manager/ipk/sdk.py
@@ -63,7 +63,12 @@ class PkgSdk(Sdk):
self.target_pm.install_complementary(self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY'))
+ env_bkp = os.environ.copy()
+ os.environ['PATH'] = self.d.expand("${COREBASE}/scripts/nativesdk-intercept") + \
+ os.pathsep + os.environ["PATH"]
+
self.target_pm.run_intercepts(populate_sdk='target')
+ os.environ.update(env_bkp)
execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND"))
diff --git a/poky/meta/lib/oe/package_manager/rpm/sdk.py b/poky/meta/lib/oe/package_manager/rpm/sdk.py
index 85df6e949c..ea79fe050b 100644
--- a/poky/meta/lib/oe/package_manager/rpm/sdk.py
+++ b/poky/meta/lib/oe/package_manager/rpm/sdk.py
@@ -67,7 +67,12 @@ class PkgSdk(Sdk):
self.target_pm.install_complementary(self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY'))
+ env_bkp = os.environ.copy()
+ os.environ['PATH'] = self.d.expand("${COREBASE}/scripts/nativesdk-intercept") + \
+ os.pathsep + os.environ["PATH"]
+
self.target_pm.run_intercepts(populate_sdk='target')
+ os.environ.update(env_bkp)
execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND"))
diff --git a/poky/meta/lib/oe/qa.py b/poky/meta/lib/oe/qa.py
index de980638c4..f8ae3c743f 100644
--- a/poky/meta/lib/oe/qa.py
+++ b/poky/meta/lib/oe/qa.py
@@ -216,8 +216,8 @@ def exit_if_errors(d):
def check_upstream_status(fullpath):
import re
kinda_status_re = re.compile(r"^.*upstream.*status.*$", re.IGNORECASE | re.MULTILINE)
- strict_status_re = re.compile(r"^Upstream-Status: (Pending|Submitted|Denied|Accepted|Inappropriate|Backport|Inactive-Upstream)( .+)?$", re.MULTILINE)
- guidelines = "https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines#Patch_Header_Recommendations:_Upstream-Status"
+ strict_status_re = re.compile(r"^Upstream-Status: (Pending|Submitted|Denied|Inappropriate|Backport|Inactive-Upstream)( .+)?$", re.MULTILINE)
+ guidelines = "https://docs.yoctoproject.org/contributor-guide/recipe-style-guide.html#patch-upstream-status"
with open(fullpath, encoding='utf-8', errors='ignore') as f:
file_content = f.read()
diff --git a/poky/meta/lib/oe/sbom.py b/poky/meta/lib/oe/sbom.py
index 1130fa668b..fd4b6895d8 100644
--- a/poky/meta/lib/oe/sbom.py
+++ b/poky/meta/lib/oe/sbom.py
@@ -38,16 +38,34 @@ def get_sdk_spdxid(sdk):
return "SPDXRef-SDK-%s" % sdk
-def doc_path_by_namespace(spdx_deploy, doc_namespace):
- return spdx_deploy / "by-namespace" / doc_namespace.replace("/", "_")
+def _doc_path_by_namespace(spdx_deploy, arch, doc_namespace):
+ return spdx_deploy / "by-namespace" / arch / doc_namespace.replace("/", "_")
-def doc_path_by_hashfn(spdx_deploy, doc_name, hashfn):
- return spdx_deploy / "by-hash" / hashfn.split()[1] / (doc_name + ".spdx.json")
+def doc_find_by_namespace(spdx_deploy, search_arches, doc_namespace):
+ for pkgarch in search_arches:
+ p = _doc_path_by_namespace(spdx_deploy, pkgarch, doc_namespace)
+ if os.path.exists(p):
+ return p
+ return None
+
+
+def _doc_path_by_hashfn(spdx_deploy, arch, doc_name, hashfn):
+ return (
+ spdx_deploy / "by-hash" / arch / hashfn.split()[1] / (doc_name + ".spdx.json")
+ )
+
+
+def doc_find_by_hashfn(spdx_deploy, search_arches, doc_name, hashfn):
+ for pkgarch in search_arches:
+ p = _doc_path_by_hashfn(spdx_deploy, pkgarch, doc_name, hashfn)
+ if os.path.exists(p):
+ return p
+ return None
def doc_path(spdx_deploy, doc_name, arch, subdir):
- return spdx_deploy / arch/ subdir / (doc_name + ".spdx.json")
+ return spdx_deploy / arch / subdir / (doc_name + ".spdx.json")
def write_doc(d, spdx_doc, arch, subdir, spdx_deploy=None, indent=None):
@@ -61,11 +79,13 @@ def write_doc(d, spdx_doc, arch, subdir, spdx_deploy=None, indent=None):
with dest.open("wb") as f:
doc_sha1 = spdx_doc.to_json(f, sort_keys=True, indent=indent)
- l = doc_path_by_namespace(spdx_deploy, spdx_doc.documentNamespace)
+ l = _doc_path_by_namespace(spdx_deploy, arch, spdx_doc.documentNamespace)
l.parent.mkdir(exist_ok=True, parents=True)
l.symlink_to(os.path.relpath(dest, l.parent))
- l = doc_path_by_hashfn(spdx_deploy, spdx_doc.name, d.getVar("BB_HASHFILENAME"))
+ l = _doc_path_by_hashfn(
+ spdx_deploy, arch, spdx_doc.name, d.getVar("BB_HASHFILENAME")
+ )
l.parent.mkdir(exist_ok=True, parents=True)
l.symlink_to(os.path.relpath(dest, l.parent))
diff --git a/poky/meta/lib/oe/utils.py b/poky/meta/lib/oe/utils.py
index 1658f3555d..a3b1bb1087 100644
--- a/poky/meta/lib/oe/utils.py
+++ b/poky/meta/lib/oe/utils.py
@@ -264,10 +264,17 @@ def execute_pre_post_process(d, cmds):
bb.note("Executing %s ..." % cmd)
bb.build.exec_func(cmd, d)
-# For each item in items, call the function 'target' with item as the first
+def get_bb_number_threads(d):
+ return int(d.getVar("BB_NUMBER_THREADS") or os.cpu_count() or 1)
+
+def multiprocess_launch(target, items, d, extraargs=None):
+ max_process = get_bb_number_threads(d)
+ return multiprocess_launch_mp(target, items, max_process, extraargs)
+
+# For each item in items, call the function 'target' with item as the first
# argument, extraargs as the other arguments and handle any exceptions in the
# parent thread
-def multiprocess_launch(target, items, d, extraargs=None):
+def multiprocess_launch_mp(target, items, max_process, extraargs=None):
class ProcessLaunch(multiprocessing.Process):
def __init__(self, *args, **kwargs):
@@ -302,7 +309,6 @@ def multiprocess_launch(target, items, d, extraargs=None):
self.update()
return self._result
- max_process = int(d.getVar("BB_NUMBER_THREADS") or os.cpu_count() or 1)
launched = []
errors = []
results = []
diff --git a/poky/meta/lib/oeqa/core/runner.py b/poky/meta/lib/oeqa/core/runner.py
index 5077eb8e3e..a86a706bd9 100644
--- a/poky/meta/lib/oeqa/core/runner.py
+++ b/poky/meta/lib/oeqa/core/runner.py
@@ -44,6 +44,7 @@ class OETestResult(_TestResult):
self.endtime = {}
self.progressinfo = {}
self.extraresults = {}
+ self.shownmsg = []
# Inject into tc so that TestDepends decorator can see results
tc.results = self
@@ -74,6 +75,7 @@ class OETestResult(_TestResult):
for (scase, msg) in getattr(self, t):
if test.id() == scase.id():
self.tc.logger.info(str(msg))
+ self.shownmsg.append(test.id())
break
def logSummary(self, component, context_msg=''):
@@ -169,7 +171,6 @@ class OETestResult(_TestResult):
def logDetails(self, json_file_dir=None, configuration=None, result_id=None,
dump_streams=False):
- self.tc.logger.info("RESULTS:")
result = self.extraresults
logs = {}
@@ -193,6 +194,10 @@ class OETestResult(_TestResult):
report = {'status': status}
if log:
report['log'] = log
+ # Class setup failures wouldn't enter stopTest so would never display
+ if case.id() not in self.shownmsg:
+ self.tc.logger.info("Failure (%s) for %s:\n" % (status, case.id()) + log)
+
if duration:
report['duration'] = duration
@@ -215,6 +220,7 @@ class OETestResult(_TestResult):
report['stderr'] = stderr
result[case.id()] = report
+ self.tc.logger.info("RESULTS:")
for i in ['PASSED', 'SKIPPED', 'EXPECTEDFAIL', 'ERROR', 'FAILED', 'UNKNOWN']:
if i not in logs:
continue
diff --git a/poky/meta/lib/oeqa/core/utils/concurrencytest.py b/poky/meta/lib/oeqa/core/utils/concurrencytest.py
index 4f77589b00..5e20b0e126 100644
--- a/poky/meta/lib/oeqa/core/utils/concurrencytest.py
+++ b/poky/meta/lib/oeqa/core/utils/concurrencytest.py
@@ -193,11 +193,12 @@ class dummybuf(object):
#
class ConcurrentTestSuite(unittest.TestSuite):
- def __init__(self, suite, processes, setupfunc, removefunc):
+ def __init__(self, suite, processes, setupfunc, removefunc, bb_vars):
super(ConcurrentTestSuite, self).__init__([suite])
self.processes = processes
self.setupfunc = setupfunc
self.removefunc = removefunc
+ self.bb_vars = bb_vars
def run(self, result):
testservers, totaltests = fork_for_tests(self.processes, self)
@@ -243,7 +244,7 @@ class ConcurrentTestSuite(unittest.TestSuite):
def fork_for_tests(concurrency_num, suite):
testservers = []
if 'BUILDDIR' in os.environ:
- selftestdir = get_test_layer()
+ selftestdir = get_test_layer(suite.bb_vars['BBLAYERS'])
test_blocks = partition_tests(suite, concurrency_num)
# Clear the tests from the original suite so it doesn't keep them alive
diff --git a/poky/meta/lib/oeqa/runtime/cases/buildcpio.py b/poky/meta/lib/oeqa/runtime/cases/buildcpio.py
index 3728855d24..ce122ebcf9 100644
--- a/poky/meta/lib/oeqa/runtime/cases/buildcpio.py
+++ b/poky/meta/lib/oeqa/runtime/cases/buildcpio.py
@@ -14,7 +14,7 @@ class BuildCpioTest(OERuntimeTestCase):
@classmethod
def setUpClass(cls):
- uri = 'https://downloads.yoctoproject.org/mirror/sources/cpio-2.13.tar.gz'
+ uri = 'https://downloads.yoctoproject.org/mirror/sources/cpio-2.14.tar.gz'
cls.project = TargetBuildProject(cls.tc.target,
uri,
dl_dir = cls.tc.td['DL_DIR'])
diff --git a/poky/meta/lib/oeqa/runtime/cases/go.py b/poky/meta/lib/oeqa/runtime/cases/go.py
index 7514d108f1..39a80f4dca 100644
--- a/poky/meta/lib/oeqa/runtime/cases/go.py
+++ b/poky/meta/lib/oeqa/runtime/cases/go.py
@@ -18,4 +18,4 @@ class GoHelloworldTest(OERuntimeTestCase):
self.assertEqual(status, 0, msg=msg)
msg = 'Incorrect output: %s' % output
- self.assertEqual(output, "Hello, Go examples!", msg=msg)
+ self.assertEqual(output, "Hello, world!", msg=msg)
diff --git a/poky/meta/lib/oeqa/runtime/cases/parselogs.py b/poky/meta/lib/oeqa/runtime/cases/parselogs.py
index e67d3750da..a805edd79d 100644
--- a/poky/meta/lib/oeqa/runtime/cases/parselogs.py
+++ b/poky/meta/lib/oeqa/runtime/cases/parselogs.py
@@ -4,17 +4,12 @@
# SPDX-License-Identifier: MIT
#
+import collections
import os
-from subprocess import check_output
from shutil import rmtree
from oeqa.runtime.case import OERuntimeTestCase
from oeqa.core.decorator.depends import OETestDepends
-from oeqa.core.decorator.data import skipIfDataVar
-from oeqa.runtime.decorator.package import OEHasPackage
-
-#in the future these lists could be moved outside of module
-errors = ["error", "cannot", "can\'t", "failed"]
common_errors = [
"(WW) warning, (EE) error, (NI) not implemented, (??) unknown.",
@@ -69,11 +64,9 @@ common_errors = [
"xf86OpenConsole: Switching VT failed",
"Failed to read LoaderConfigTimeoutOneShot variable, ignoring: Operation not supported",
"Failed to read LoaderEntryOneShot variable, ignoring: Operation not supported",
+ "invalid BAR (can't size)",
]
-video_related = [
-]
-
x86_common = [
'[drm:psb_do_init] *ERROR* Debug is',
'wrong ELF class',
@@ -105,16 +98,13 @@ ignore_errors = {
'default' : common_errors,
'qemux86' : [
'Failed to access perfctr msr (MSR',
- 'pci 0000:00:00.0: [Firmware Bug]: reg 0x..: invalid BAR (can\'t size)',
] + qemux86_common,
'qemux86-64' : qemux86_common,
'qemumips' : [
'Failed to load module "glx"',
- 'pci 0000:00:00.0: [Firmware Bug]: reg 0x..: invalid BAR (can\'t size)',
'cacheinfo: Failed to find cpu0 device node',
] + common_errors,
'qemumips64' : [
- 'pci 0000:00:00.0: [Firmware Bug]: reg 0x..: invalid BAR (can\'t size)',
'cacheinfo: Failed to find cpu0 device node',
] + common_errors,
'qemuppc' : [
@@ -206,17 +196,19 @@ ignore_errors = {
] + common_errors,
}
-log_locations = ["/var/log/","/var/log/dmesg", "/tmp/dmesg_output.log"]
-
class ParseLogsTest(OERuntimeTestCase):
+ # Which log files should be collected
+ log_locations = ["/var/log/", "/var/log/dmesg", "/tmp/dmesg_output.log"]
+
+ # The keywords that identify error messages in the log files
+ errors = ["error", "cannot", "can't", "failed"]
+
@classmethod
def setUpClass(cls):
- cls.errors = errors
-
# When systemd is enabled we need to notice errors on
# circular dependencies in units.
- if 'systemd' in cls.td.get('DISTRO_FEATURES', ''):
+ if 'systemd' in cls.td.get('DISTRO_FEATURES'):
cls.errors.extend([
'Found ordering cycle on',
'Breaking ordering cycle by deleting job',
@@ -224,48 +216,13 @@ class ParseLogsTest(OERuntimeTestCase):
'Ordering cycle found, skipping',
])
- cls.ignore_errors = ignore_errors
- cls.log_locations = log_locations
- cls.msg = ''
- is_lsb, _ = cls.tc.target.run("which LSB_Test.sh")
- if is_lsb == 0:
- for machine in cls.ignore_errors:
- cls.ignore_errors[machine] = cls.ignore_errors[machine] \
- + video_related
-
- def getMachine(self):
- return self.td.get('MACHINE', '')
-
- def getWorkdir(self):
- return self.td.get('WORKDIR', '')
-
- # Get some information on the CPU of the machine to display at the
- # beginning of the output. This info might be useful in some cases.
- def getHardwareInfo(self):
- hwi = ""
- cmd = ('cat /proc/cpuinfo | grep "model name" | head -n1 | '
- " awk 'BEGIN{FS=\":\"}{print $2}'")
- _, cpu_name = self.target.run(cmd)
-
- cmd = ('cat /proc/cpuinfo | grep "cpu cores" | head -n1 | '
- "awk {'print $4'}")
- _, cpu_physical_cores = self.target.run(cmd)
-
- cmd = 'cat /proc/cpuinfo | grep "processor" | wc -l'
- _, cpu_logical_cores = self.target.run(cmd)
-
- _, cpu_arch = self.target.run('uname -m')
+ cls.errors = [s.casefold() for s in cls.errors]
- hwi += 'Machine information: \n'
- hwi += '*******************************\n'
- hwi += 'Machine name: ' + self.getMachine() + '\n'
- hwi += 'CPU: ' + str(cpu_name) + '\n'
- hwi += 'Arch: ' + str(cpu_arch)+ '\n'
- hwi += 'Physical cores: ' + str(cpu_physical_cores) + '\n'
- hwi += 'Logical cores: ' + str(cpu_logical_cores) + '\n'
- hwi += '*******************************\n'
-
- return hwi
+ try:
+ cls.ignore_errors = [s.casefold() for s in ignore_errors[cls.td.get('MACHINE')]]
+ except KeyError:
+ cls.logger.info('No ignore list found for this machine, using default')
+ cls.ignore_errors = [s.casefold() for s in ignore_errors['default']]
# Go through the log locations provided and if it's a folder
# create a list with all the .log files in it, if it's a file
@@ -273,23 +230,23 @@ class ParseLogsTest(OERuntimeTestCase):
def getLogList(self, log_locations):
logs = []
for location in log_locations:
- status, _ = self.target.run('test -f ' + str(location))
+ status, _ = self.target.run('test -f %s' % location)
if status == 0:
- logs.append(str(location))
+ logs.append(location)
else:
- status, _ = self.target.run('test -d ' + str(location))
+ status, _ = self.target.run('test -d %s' % location)
if status == 0:
- cmd = 'find ' + str(location) + '/*.log -maxdepth 1 -type f'
+ cmd = 'find %s -name \\*.log -maxdepth 1 -type f' % location
status, output = self.target.run(cmd)
if status == 0:
output = output.splitlines()
for logfile in output:
- logs.append(os.path.join(location, str(logfile)))
+ logs.append(os.path.join(location, logfile))
return logs
# Copy the log files to be parsed locally
def transfer_logs(self, log_list):
- workdir = self.getWorkdir()
+ workdir = self.td.get('WORKDIR')
self.target_logs = workdir + '/' + 'target_logs'
target_logs = self.target_logs
if os.path.exists(target_logs):
@@ -306,65 +263,55 @@ class ParseLogsTest(OERuntimeTestCase):
logs = [f for f in dir_files if os.path.isfile(f)]
return logs
- # Build the grep command to be used with filters and exclusions
- def build_grepcmd(self, errors, ignore_errors, log):
- grepcmd = 'grep '
- grepcmd += '-Ei "'
- for error in errors:
- grepcmd += r'\<' + error + r'\>' + '|'
- grepcmd = grepcmd[:-1]
- grepcmd += '" ' + str(log) + " | grep -Eiv \'"
-
- try:
- errorlist = ignore_errors[self.getMachine()]
- except KeyError:
- self.msg += 'No ignore list found for this machine, using default\n'
- errorlist = ignore_errors['default']
-
- for ignore_error in errorlist:
- ignore_error = ignore_error.replace('(', r'\(')
- ignore_error = ignore_error.replace(')', r'\)')
- ignore_error = ignore_error.replace("'", '.')
- ignore_error = ignore_error.replace('?', r'\?')
- ignore_error = ignore_error.replace('[', r'\[')
- ignore_error = ignore_error.replace(']', r'\]')
- ignore_error = ignore_error.replace('*', r'\*')
- ignore_error = ignore_error.replace('0-9', '[0-9]')
- grepcmd += ignore_error + '|'
- grepcmd = grepcmd[:-1]
- grepcmd += "\'"
-
- return grepcmd
-
- # Grep only the errors so that their context could be collected.
- # Default context is 10 lines before and after the error itself
- def parse_logs(self, errors, ignore_errors, logs,
- lines_before = 10, lines_after = 10):
- results = {}
- rez = []
- grep_output = ''
+ def get_context(self, lines, index, before=6, after=3):
+ """
+ Given a set of lines and the index of the line that is important, return
+ a number of lines surrounding that line.
+ """
+ last = len(lines)
+
+ start = index - before
+ end = index + after + 1
+
+ if start < 0:
+ end -= start
+ start = 0
+ if end > last:
+ start -= end - last
+ end = last
+
+ return lines[start:end]
+
+ def test_get_context(self):
+ """
+ A test case for the test case.
+ """
+ lines = list(range(0,10))
+ self.assertEqual(self.get_context(lines, 0, 2, 1), [0, 1, 2, 3])
+ self.assertEqual(self.get_context(lines, 5, 2, 1), [3, 4, 5, 6])
+ self.assertEqual(self.get_context(lines, 9, 2, 1), [6, 7, 8, 9])
+
+ def parse_logs(self, logs, lines_before=10, lines_after=10):
+ """
+ Search the log files @logs looking for error lines (marked by
+ @self.errors), ignoring anything listed in @self.ignore_errors.
+
+ Returns a dictionary of log filenames to a dictionary of error lines to
+ the error context (controlled by @lines_before and @lines_after).
+ """
+ results = collections.defaultdict(dict)
for log in logs:
- result = None
- thegrep = self.build_grepcmd(errors, ignore_errors, log)
+ with open(log) as f:
+ lines = f.readlines()
- try:
- result = check_output(thegrep, shell=True).decode('utf-8')
- except:
- pass
+ for i, line in enumerate(lines):
+ line = line.strip()
+ line_lower = line.casefold()
- if result is not None:
- results[log] = {}
- rez = result.splitlines()
-
- for xrez in rez:
- try:
- cmd = ['grep', '-F', xrez, '-B', str(lines_before)]
- cmd += ['-A', str(lines_after), log]
- grep_output = check_output(cmd).decode('utf-8')
- except:
- pass
- results[log][xrez]=grep_output
+ if any(keyword in line_lower for keyword in self.errors):
+ if not any(ignore in line_lower for ignore in self.ignore_errors):
+ results[log][line] = "".join(self.get_context(lines, i, lines_before, lines_after))
return results
@@ -377,17 +324,18 @@ class ParseLogsTest(OERuntimeTestCase):
def test_parselogs(self):
self.write_dmesg()
log_list = self.get_local_log_list(self.log_locations)
- result = self.parse_logs(self.errors, self.ignore_errors, log_list)
- print(self.getHardwareInfo())
+ result = self.parse_logs(log_list)
+
errcount = 0
+ self.msg = ""
for log in result:
self.msg += 'Log: ' + log + '\n'
self.msg += '-----------------------\n'
for error in result[log]:
errcount += 1
- self.msg += 'Central error: ' + str(error) + '\n'
+ self.msg += 'Central error: ' + error + '\n'
self.msg += '***********************\n'
- self.msg += result[str(log)][str(error)] + '\n'
+ self.msg += result[log][error] + '\n'
self.msg += '***********************\n'
self.msg += '%s errors found in logs.' % errcount
self.assertEqual(errcount, 0, msg=self.msg)
diff --git a/poky/meta/lib/oeqa/runtime/cases/ptest.py b/poky/meta/lib/oeqa/runtime/cases/ptest.py
index 23a71ea064..fbaeb84d00 100644
--- a/poky/meta/lib/oeqa/runtime/cases/ptest.py
+++ b/poky/meta/lib/oeqa/runtime/cases/ptest.py
@@ -96,7 +96,7 @@ class PtestRunnerTest(OERuntimeTestCase):
failed_tests = {}
for section in sections:
- if 'exitcode' in sections[section].keys():
+ if 'exitcode' in sections[section].keys() or 'timeout' in sections[section].keys():
failed_tests[section] = sections[section]["log"]
for section in results:
diff --git a/poky/meta/lib/oeqa/sdk/cases/buildcpio.py b/poky/meta/lib/oeqa/sdk/cases/buildcpio.py
index c42c670add..33b946fc16 100644
--- a/poky/meta/lib/oeqa/sdk/cases/buildcpio.py
+++ b/poky/meta/lib/oeqa/sdk/cases/buildcpio.py
@@ -19,10 +19,10 @@ class BuildCpioTest(OESDKTestCase):
"""
def test_cpio(self):
with tempfile.TemporaryDirectory(prefix="cpio-", dir=self.tc.sdk_dir) as testdir:
- tarball = self.fetch(testdir, self.td["DL_DIR"], "https://ftp.gnu.org/gnu/cpio/cpio-2.13.tar.gz")
+ tarball = self.fetch(testdir, self.td["DL_DIR"], "https://ftp.gnu.org/gnu/cpio/cpio-2.14.tar.gz")
dirs = {}
- dirs["source"] = os.path.join(testdir, "cpio-2.13")
+ dirs["source"] = os.path.join(testdir, "cpio-2.14")
dirs["build"] = os.path.join(testdir, "build")
dirs["install"] = os.path.join(testdir, "install")
diff --git a/poky/meta/lib/oeqa/selftest/cases/bbtests.py b/poky/meta/lib/oeqa/selftest/cases/bbtests.py
index 31aa5680f0..d242352ea2 100644
--- a/poky/meta/lib/oeqa/selftest/cases/bbtests.py
+++ b/poky/meta/lib/oeqa/selftest/cases/bbtests.py
@@ -236,8 +236,11 @@ INHERIT:remove = \"report-error\"
result = bitbake('selftest-ed', ignore_status=True)
self.assertEqual(result.status, 0, "Bitbake failed, exit code %s, output %s" % (result.status, result.output))
lic_dir = get_bb_var('LICENSE_DIRECTORY')
- self.assertFalse(os.path.isfile(os.path.join(lic_dir, 'selftest-ed/generic_GPL-3.0-or-later')))
- self.assertTrue(os.path.isfile(os.path.join(lic_dir, 'selftest-ed/generic_GPL-2.0-or-later')))
+ arch = get_bb_var('SSTATE_PKGARCH')
+ filename = os.path.join(lic_dir, arch, 'selftest-ed', 'generic_GPL-3.0-or-later')
+ self.assertFalse(os.path.isfile(filename), msg="License file %s exists and shouldn't" % filename)
+ filename = os.path.join(lic_dir, arch, 'selftest-ed', 'generic_GPL-2.0-or-later')
+ self.assertTrue(os.path.isfile(filename), msg="License file %s doesn't exist" % filename)
def test_setscene_only(self):
""" Bitbake option to restore from sstate only within a build (i.e. execute no real tasks, only setscene)"""
diff --git a/poky/meta/lib/oeqa/selftest/cases/devtool.py b/poky/meta/lib/oeqa/selftest/cases/devtool.py
index a2b77e528d..b577f6d62a 100644
--- a/poky/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/poky/meta/lib/oeqa/selftest/cases/devtool.py
@@ -256,6 +256,31 @@ class DevtoolTestCase(OESelftestTestCase):
if remaining_removelines:
self.fail('Expected removed lines not found: %s' % remaining_removelines)
+ def _check_runqemu_prerequisites(self):
+ """Check runqemu is available
+
+ Whilst some tests would seemingly be better placed as a runtime test,
+ unfortunately the runtime tests run under bitbake and you can't run
+ devtool within bitbake (since devtool needs to run bitbake itself).
+ Additionally we are testing build-time functionality as well, so
+ really this has to be done as an oe-selftest test.
+ """
+ machine = get_bb_var('MACHINE')
+ if not machine.startswith('qemu'):
+ self.skipTest('This test only works with qemu machines')
+ if not os.path.exists('/etc/runqemu-nosudo'):
+ self.skipTest('You must set up tap devices with scripts/runqemu-gen-tapdevs before running this test')
+ result = runCmd('PATH="$PATH:/sbin:/usr/sbin" ip tuntap show', ignore_status=True)
+ if result.status != 0:
+ result = runCmd('PATH="$PATH:/sbin:/usr/sbin" ifconfig -a', ignore_status=True)
+ if result.status != 0:
+ self.skipTest('Failed to determine if tap devices exist with ifconfig or ip: %s' % result.output)
+ for line in result.output.splitlines():
+ if line.startswith('tap'):
+ break
+ else:
+ self.skipTest('No tap devices found - you must set up tap devices with scripts/runqemu-gen-tapdevs before running this test')
+
def _test_devtool_add_git_url(self, git_url, version, pn, resulting_src_uri):
self.track_for_cleanup(self.workspacedir)
self.add_command_to_tearDown('bitbake-layers remove-layer */workspace')
@@ -1616,28 +1641,7 @@ class DevtoolExtractTests(DevtoolBase):
@OETestTag("runqemu")
def test_devtool_deploy_target(self):
- # NOTE: Whilst this test would seemingly be better placed as a runtime test,
- # unfortunately the runtime tests run under bitbake and you can't run
- # devtool within bitbake (since devtool needs to run bitbake itself).
- # Additionally we are testing build-time functionality as well, so
- # really this has to be done as an oe-selftest test.
- #
- # Check preconditions
- machine = get_bb_var('MACHINE')
- if not machine.startswith('qemu'):
- self.skipTest('This test only works with qemu machines')
- if not os.path.exists('/etc/runqemu-nosudo'):
- self.skipTest('You must set up tap devices with scripts/runqemu-gen-tapdevs before running this test')
- result = runCmd('PATH="$PATH:/sbin:/usr/sbin" ip tuntap show', ignore_status=True)
- if result.status != 0:
- result = runCmd('PATH="$PATH:/sbin:/usr/sbin" ifconfig -a', ignore_status=True)
- if result.status != 0:
- self.skipTest('Failed to determine if tap devices exist with ifconfig or ip: %s' % result.output)
- for line in result.output.splitlines():
- if line.startswith('tap'):
- break
- else:
- self.skipTest('No tap devices found - you must set up tap devices with scripts/runqemu-gen-tapdevs before running this test')
+ self._check_runqemu_prerequisites()
self.assertTrue(not os.path.exists(self.workspacedir), 'This test cannot be run with a workspace directory under the build directory')
# Definitions
testrecipe = 'mdadm'
diff --git a/poky/meta/lib/oeqa/selftest/cases/meta_ide.py b/poky/meta/lib/oeqa/selftest/cases/meta_ide.py
index 59270fb3e0..e446d9308d 100644
--- a/poky/meta/lib/oeqa/selftest/cases/meta_ide.py
+++ b/poky/meta/lib/oeqa/selftest/cases/meta_ide.py
@@ -44,7 +44,7 @@ class MetaIDE(OESelftestTestCase):
def test_meta_ide_can_build_cpio_project(self):
dl_dir = self.td.get('DL_DIR', None)
self.project = SDKBuildProject(self.tmpdir_metaideQA + "/cpio/", self.environment_script_path,
- "https://ftp.gnu.org/gnu/cpio/cpio-2.13.tar.gz",
+ "https://ftp.gnu.org/gnu/cpio/cpio-2.14.tar.gz",
self.tmpdir_metaideQA, self.td['DATETIME'], dl_dir=dl_dir)
self.project.download_archive()
self.assertEqual(self.project.run_configure('$CONFIGURE_FLAGS --disable-maintainer-mode','sed -i -e "/char \*program_name/d" src/global.c;'), 0,
diff --git a/poky/meta/lib/oeqa/selftest/cases/oescripts.py b/poky/meta/lib/oeqa/selftest/cases/oescripts.py
index 7d3a00e2ab..f69efccfee 100644
--- a/poky/meta/lib/oeqa/selftest/cases/oescripts.py
+++ b/poky/meta/lib/oeqa/selftest/cases/oescripts.py
@@ -36,18 +36,16 @@ class BuildhistoryDiffTests(BuildhistoryBase):
if expected_endlines:
self.fail('Missing expected line endings:\n %s' % '\n '.join(expected_endlines))
-class OEScriptTests(OESelftestTestCase):
- scripts_dir = os.path.join(get_bb_var('COREBASE'), 'scripts')
-
@unittest.skipUnless(importlib.util.find_spec("cairo"), "Python cairo module is not present")
-class OEPybootchartguyTests(OEScriptTests):
+class OEPybootchartguyTests(OESelftestTestCase):
@classmethod
def setUpClass(cls):
- super(OEScriptTests, cls).setUpClass()
+ super().setUpClass()
bitbake("core-image-minimal -c rootfs -f")
cls.tmpdir = get_bb_var('TMPDIR')
cls.buildstats = cls.tmpdir + "/buildstats/" + sorted(os.listdir(cls.tmpdir + "/buildstats"))[-1]
+ cls.scripts_dir = os.path.join(get_bb_var('COREBASE'), 'scripts')
def test_pybootchartguy_help(self):
runCmd('%s/pybootchartgui/pybootchartgui.py --help' % self.scripts_dir)
@@ -65,7 +63,12 @@ class OEPybootchartguyTests(OEScriptTests):
self.assertTrue(os.path.exists(self.tmpdir + "/charts.pdf"))
-class OEGitproxyTests(OEScriptTests):
+class OEGitproxyTests(OESelftestTestCase):
+
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ cls.scripts_dir = os.path.join(get_bb_var('COREBASE'), 'scripts')
def test_oegitproxy_help(self):
try:
@@ -126,7 +129,13 @@ class OeRunNativeTest(OESelftestTestCase):
result = runCmd("oe-run-native qemu-helper-native qemu-oe-bridge-helper --help")
self.assertIn("Helper function to find and exec qemu-bridge-helper", result.output)
-class OEListPackageconfigTests(OEScriptTests):
+class OEListPackageconfigTests(OESelftestTestCase):
+
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ cls.scripts_dir = os.path.join(get_bb_var('COREBASE'), 'scripts')
+
#oe-core.scripts.List_all_the_PACKAGECONFIG's_flags
def check_endlines(self, results, expected_endlines):
for line in results.output.splitlines():
diff --git a/poky/meta/lib/oeqa/selftest/cases/reproducible.py b/poky/meta/lib/oeqa/selftest/cases/reproducible.py
index 4c6ed4e4a5..84c6c3a05f 100644
--- a/poky/meta/lib/oeqa/selftest/cases/reproducible.py
+++ b/poky/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -128,23 +128,17 @@ class DiffoscopeTests(OESelftestTestCase):
class ReproducibleTests(OESelftestTestCase):
# Test the reproducibility of whatever is built between sstate_targets and targets
- package_classes = get_bb_var("OEQA_REPRODUCIBLE_TEST_PACKAGE")
- if package_classes:
- package_classes = package_classes.split()
- else:
- package_classes = ['deb', 'ipk', 'rpm']
+ package_classes = ['deb', 'ipk', 'rpm']
# Maximum report size, in bytes
max_report_size = 250 * 1024 * 1024
# targets are the things we want to test the reproducibility of
- targets = get_bb_var("OEQA_REPRODUCIBLE_TEST_TARGET")
- if targets:
- targets = targets.split()
- else:
- targets = ['core-image-minimal', 'core-image-sato', 'core-image-full-cmdline', 'core-image-weston', 'world']
+ targets = ['core-image-minimal', 'core-image-sato', 'core-image-full-cmdline', 'core-image-weston', 'world']
+
# sstate targets are things to pull from sstate to potentially cut build/debugging time
- sstate_targets = (get_bb_var("OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS") or "").split()
+ sstate_targets = []
+
save_results = False
if 'OEQA_DEBUGGING_SAVED_OUTPUT' in os.environ:
save_results = os.environ['OEQA_DEBUGGING_SAVED_OUTPUT']
@@ -159,11 +153,20 @@ class ReproducibleTests(OESelftestTestCase):
def setUpLocal(self):
super().setUpLocal()
- needed_vars = ['TOPDIR', 'TARGET_PREFIX', 'BB_NUMBER_THREADS', 'BB_HASHSERVE']
+ needed_vars = ['TOPDIR', 'TARGET_PREFIX', 'BB_NUMBER_THREADS', 'BB_HASHSERVE', 'OEQA_REPRODUCIBLE_TEST_PACKAGE', 'OEQA_REPRODUCIBLE_TEST_TARGET', 'OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS']
bb_vars = get_bb_vars(needed_vars)
for v in needed_vars:
setattr(self, v.lower(), bb_vars[v])
+ if bb_vars['OEQA_REPRODUCIBLE_TEST_PACKAGE']:
+ self.package_classes = bb_vars['OEQA_REPRODUCIBLE_TEST_PACKAGE'].split()
+
+ if bb_vars['OEQA_REPRODUCIBLE_TEST_TARGET']:
+ self.targets = bb_vars['OEQA_REPRODUCIBLE_TEST_TARGET'].split()
+
+ if bb_vars['OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS']:
+ self.sstate_targets = bb_vars['OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS'].split()
+
self.extraresults = {}
self.extraresults.setdefault('reproducible.rawlogs', {})['log'] = ''
self.extraresults.setdefault('reproducible', {}).setdefault('files', {})
diff --git a/poky/meta/lib/oeqa/selftest/cases/runtime_test.py b/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
index 463679dd32..12000aac16 100644
--- a/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
+++ b/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
@@ -129,6 +129,22 @@ class TestImage(OESelftestTestCase):
bitbake('core-image-full-cmdline socat')
bitbake('-c testimage core-image-full-cmdline')
+ def test_testimage_slirp(self):
+ """
+ Summary: Check basic testimage functionality with qemu and slirp networking.
+ """
+
+ features = '''
+IMAGE_CLASSES:append = " testimage"
+IMAGE_FEATURES:append = " ssh-server-dropbear"
+IMAGE_ROOTFS_EXTRA_SPACE:append = "${@bb.utils.contains("IMAGE_CLASSES", "testimage", " + 5120", "", d)}"
+TEST_RUNQEMUPARAMS += " slirp"
+'''
+ self.write_config(features)
+
+ bitbake('core-image-minimal')
+ bitbake('-c testimage core-image-minimal')
+
def test_testimage_dnf(self):
"""
Summary: Check package feeds functionality for dnf
@@ -236,11 +252,11 @@ class TestImage(OESelftestTestCase):
features += 'TEST_SUITES = "ping ssh virgl"\n'
features += 'IMAGE_FEATURES:append = " ssh-server-dropbear"\n'
features += 'IMAGE_INSTALL:append = " kmscube"\n'
- features_gtk = features + 'TEST_RUNQEMUPARAMS = "gtk gl"\n'
+ features_gtk = features + 'TEST_RUNQEMUPARAMS += " gtk gl"\n'
self.write_config(features_gtk)
bitbake('core-image-minimal')
bitbake('-c testimage core-image-minimal')
- features_sdl = features + 'TEST_RUNQEMUPARAMS = "sdl gl"\n'
+ features_sdl = features + 'TEST_RUNQEMUPARAMS += " sdl gl"\n'
self.write_config(features_sdl)
bitbake('core-image-minimal')
bitbake('-c testimage core-image-minimal')
@@ -268,7 +284,7 @@ class TestImage(OESelftestTestCase):
features += 'TEST_SUITES = "ping ssh virgl"\n'
features += 'IMAGE_FEATURES:append = " ssh-server-dropbear"\n'
features += 'IMAGE_INSTALL:append = " kmscube"\n'
- features += 'TEST_RUNQEMUPARAMS = "egl-headless"\n'
+ features += 'TEST_RUNQEMUPARAMS += " egl-headless"\n'
self.write_config(features)
bitbake('core-image-minimal')
bitbake('-c testimage core-image-minimal')
diff --git a/poky/meta/lib/oeqa/selftest/cases/spdx.py b/poky/meta/lib/oeqa/selftest/cases/spdx.py
new file mode 100644
index 0000000000..05fc4e390b
--- /dev/null
+++ b/poky/meta/lib/oeqa/selftest/cases/spdx.py
@@ -0,0 +1,54 @@
+#
+# Copyright OpenEmbedded Contributors
+#
+# SPDX-License-Identifier: MIT
+#
+
+import json
+import os
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import bitbake, get_bb_var, runCmd
+
+class SPDXCheck(OESelftestTestCase):
+
+ @classmethod
+ def setUpClass(cls):
+ super(SPDXCheck, cls).setUpClass()
+ bitbake("python3-spdx-tools-native")
+ bitbake("-c addto_recipe_sysroot python3-spdx-tools-native")
+
+ def check_recipe_spdx(self, high_level_dir, spdx_file, target_name):
+ config = """
+INHERIT += "create-spdx"
+"""
+ self.write_config(config)
+
+ deploy_dir = get_bb_var("DEPLOY_DIR")
+ machine_var = get_bb_var("MACHINE")
+ # qemux86-64 creates the directory qemux86_64
+ machine_dir = machine_var.replace("-", "_")
+
+ full_file_path = os.path.join(deploy_dir, "spdx", machine_dir, high_level_dir, spdx_file)
+
+ try:
+ os.remove(full_file_path)
+ except FileNotFoundError:
+ pass
+
+ bitbake("%s -c create_spdx" % target_name)
+
+ def check_spdx_json(filename):
+ with open(filename) as f:
+ report = json.load(f)
+ self.assertNotEqual(report, None)
+ self.assertNotEqual(report["SPDXID"], None)
+
+ python = os.path.join(get_bb_var('STAGING_BINDIR', 'python3-spdx-tools-native'), 'nativepython3')
+ validator = os.path.join(get_bb_var('STAGING_BINDIR', 'python3-spdx-tools-native'), 'pyspdxtools')
+ result = runCmd("{} {} -i {}".format(python, validator, filename))
+
+ self.assertExists(full_file_path)
+ result = check_spdx_json(full_file_path)
+
+ def test_spdx_base_files(self):
+ self.check_recipe_spdx("packages", "base-files.spdx.json", "base-files")
diff --git a/poky/meta/lib/oeqa/selftest/cases/wic.py b/poky/meta/lib/oeqa/selftest/cases/wic.py
index aa61349ed1..b4866bcb32 100644
--- a/poky/meta/lib/oeqa/selftest/cases/wic.py
+++ b/poky/meta/lib/oeqa/selftest/cases/wic.py
@@ -729,7 +729,7 @@ part /etc --source rootfs --fstype=ext4 --change-directory=etc
wicout = glob(os.path.join(self.resultdir, "wictestdisk-*.direct"))
self.assertEqual(1, len(wicout))
size = os.path.getsize(wicout[0])
- self.assertTrue(size > extraspace)
+ self.assertTrue(size > extraspace, msg="Extra space not present (%s vs %s)" % (size, extraspace))
def test_no_table(self):
"""Test --no-table wks option."""
@@ -773,7 +773,7 @@ class Wic2(WicTestCase):
basename = bb_vars['IMAGE_BASENAME']
self.assertEqual(basename, image)
path = os.path.join(imgdatadir, basename) + '.env'
- self.assertTrue(os.path.isfile(path))
+ self.assertTrue(os.path.isfile(path), msg="File %s wasn't generated as expected" % path)
wicvars = set(bb_vars['WICVARS'].split())
# filter out optional variables
@@ -786,7 +786,7 @@ class Wic2(WicTestCase):
# test if variables used by wic present in the .env file
for var in wicvars:
self.assertTrue(var in content, "%s is not in .env file" % var)
- self.assertTrue(content[var])
+ self.assertTrue(content[var], "%s doesn't have a value (%s)" % (var, content[var]))
def test_image_vars_dir_short(self):
"""Test image vars directory selection -v option"""
@@ -833,8 +833,8 @@ class Wic2(WicTestCase):
# pointing to existing files
for suffix in ('wic', 'manifest'):
path = prefix + suffix
- self.assertTrue(os.path.islink(path))
- self.assertTrue(os.path.isfile(os.path.realpath(path)))
+ self.assertTrue(os.path.islink(path), msg="Link %s wasn't generated as expected" % path)
+ self.assertTrue(os.path.isfile(os.path.realpath(path)), msg="File linked to by %s wasn't generated as expected" % path)
# TODO this should work on aarch64
@skipIfNotArch(['i586', 'i686', 'x86_64'])
@@ -1104,7 +1104,7 @@ class Wic2(WicTestCase):
self.remove_config(config)
bb_vars = get_bb_vars(['DEPLOY_DIR_IMAGE', 'IMAGE_LINK_NAME'], image)
image_path = os.path.join(bb_vars['DEPLOY_DIR_IMAGE'], '%s.wic' % bb_vars['IMAGE_LINK_NAME'])
- self.assertTrue(os.path.exists(image_path))
+ self.assertTrue(os.path.exists(image_path), msg="Image file %s wasn't generated as expected" % image_path)
sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'wic-tools')
@@ -1345,11 +1345,11 @@ class Wic2(WicTestCase):
orig_sizes = [int(line.split()[3]) for line in orig.output.split('\n')[1:]]
exp_sizes = [int(line.split()[3]) for line in exp.output.split('\n')[1:]]
self.assertEqual(orig_sizes[0], exp_sizes[0]) # first partition is not resized
- self.assertTrue(orig_sizes[1] < exp_sizes[1])
+ self.assertTrue(orig_sizes[1] < exp_sizes[1], msg="Parition size wasn't enlarged (%s vs %s)" % (orig_sizes[1], exp_sizes[1]))
# Check if all free space is partitioned
result = runCmd("%s/usr/sbin/sfdisk -F %s" % (sysroot, new_image_path))
- self.assertTrue("0 B, 0 bytes, 0 sectors" in result.output)
+ self.assertIn("0 B, 0 bytes, 0 sectors", result.output)
os.rename(image_path, image_path + '.bak')
os.rename(new_image_path, image_path)
@@ -1433,7 +1433,7 @@ class ModifyTests(WicTestCase):
# check if file is there
result = runCmd("wic ls %s:1/ -n %s" % (images[0], sysroot))
self.assertEqual(7, len(result.output.split('\n')))
- self.assertTrue(os.path.basename(testfile.name) in result.output)
+ self.assertIn(os.path.basename(testfile.name), result.output)
# prepare directory
testdir = os.path.join(self.resultdir, 'wic-test-cp-dir')
@@ -1447,13 +1447,13 @@ class ModifyTests(WicTestCase):
# check if directory is there
result = runCmd("wic ls %s:1/ -n %s" % (images[0], sysroot))
self.assertEqual(8, len(result.output.split('\n')))
- self.assertTrue(os.path.basename(testdir) in result.output)
+ self.assertIn(os.path.basename(testdir), result.output)
# copy the file from the partition and check if it success
dest = '%s-cp' % testfile.name
runCmd("wic cp %s:1/%s %s -n %s" % (images[0],
os.path.basename(testfile.name), dest, sysroot))
- self.assertTrue(os.path.exists(dest))
+ self.assertTrue(os.path.exists(dest), msg="File %s wasn't generated as expected" % dest)
def test_wic_rm(self):
@@ -1497,7 +1497,7 @@ class ModifyTests(WicTestCase):
# list directory content of the second ext4 partition
result = runCmd("wic ls %s:2/ -n %s" % (images[0], sysroot))
self.assertTrue(set(['bin', 'home', 'proc', 'usr', 'var', 'dev', 'lib', 'sbin']).issubset(
- set(line.split()[-1] for line in result.output.split('\n') if line)))
+ set(line.split()[-1] for line in result.output.split('\n') if line)), msg="Expected directories not present %s" % result.output)
def test_wic_cp_ext(self):
"""Test copy files and directories to the ext partition."""
@@ -1512,7 +1512,7 @@ class ModifyTests(WicTestCase):
# list directory content of the ext4 partition
result = runCmd("wic ls %s:2/ -n %s" % (images[0], sysroot))
dirs = set(line.split()[-1] for line in result.output.split('\n') if line)
- self.assertTrue(set(['bin', 'home', 'proc', 'usr', 'var', 'dev', 'lib', 'sbin']).issubset(dirs))
+ self.assertTrue(set(['bin', 'home', 'proc', 'usr', 'var', 'dev', 'lib', 'sbin']).issubset(dirs), msg="Expected directories not present %s" % dirs)
with NamedTemporaryFile("w", suffix=".wic-cp") as testfile:
testfile.write("test")
@@ -1527,12 +1527,12 @@ class ModifyTests(WicTestCase):
# check if the file to copy is in the partition
result = runCmd("wic ls %s:2/etc/ -n %s" % (images[0], sysroot))
- self.assertTrue('fstab' in [line.split()[-1] for line in result.output.split('\n') if line])
+ self.assertIn('fstab', [line.split()[-1] for line in result.output.split('\n') if line])
# copy file from the partition, replace the temporary file content with it and
# check for the file size to validate the copy
runCmd("wic cp %s:2/etc/fstab %s -n %s" % (images[0], testfile.name, sysroot))
- self.assertTrue(os.stat(testfile.name).st_size > 0)
+ self.assertTrue(os.stat(testfile.name).st_size > 0, msg="Filesize not as expected %s" % os.stat(testfile.name).st_size)
def test_wic_rm_ext(self):
@@ -1547,18 +1547,18 @@ class ModifyTests(WicTestCase):
# list directory content of the /etc directory on ext4 partition
result = runCmd("wic ls %s:2/etc/ -n %s" % (images[0], sysroot))
- self.assertTrue('fstab' in [line.split()[-1] for line in result.output.split('\n') if line])
+ self.assertIn('fstab', [line.split()[-1] for line in result.output.split('\n') if line])
# remove file
runCmd("wic rm %s:2/etc/fstab -n %s" % (images[0], sysroot))
# check if it's removed
result = runCmd("wic ls %s:2/etc/ -n %s" % (images[0], sysroot))
- self.assertTrue('fstab' not in [line.split()[-1] for line in result.output.split('\n') if line])
+ self.assertNotIn('fstab', [line.split()[-1] for line in result.output.split('\n') if line])
# remove non-empty directory
runCmd("wic rm -r %s:2/etc/ -n %s" % (images[0], sysroot))
# check if it's removed
result = runCmd("wic ls %s:2/ -n %s" % (images[0], sysroot))
- self.assertTrue('etc' not in [line.split()[-1] for line in result.output.split('\n') if line])
+ self.assertNotIn('etc', [line.split()[-1] for line in result.output.split('\n') if line])
diff --git a/poky/meta/lib/oeqa/selftest/context.py b/poky/meta/lib/oeqa/selftest/context.py
index bd03e765b0..5a09aeedff 100644
--- a/poky/meta/lib/oeqa/selftest/context.py
+++ b/poky/meta/lib/oeqa/selftest/context.py
@@ -35,12 +35,13 @@ def get_oeselftest_metadata(args):
return result
class NonConcurrentTestSuite(unittest.TestSuite):
- def __init__(self, suite, processes, setupfunc, removefunc):
+ def __init__(self, suite, processes, setupfunc, removefunc, bb_vars):
super().__init__([suite])
self.processes = processes
self.suite = suite
self.setupfunc = setupfunc
self.removefunc = removefunc
+ self.bb_vars = bb_vars
def run(self, result):
(builddir, newbuilddir) = self.setupfunc("-st", None, self.suite)
@@ -79,16 +80,15 @@ class OESelftestTestContext(OETestContext):
else:
self.removebuilddir = removebuilddir
+ def set_variables(self, vars):
+ self.bb_vars = vars
+
def setup_builddir(self, suffix, selftestdir, suite):
- # Get SSTATE_DIR from the parent build dir
- with bb.tinfoil.Tinfoil(tracking=True) as tinfoil:
- tinfoil.prepare(quiet=2, config_only=True)
- d = tinfoil.config_data
- sstatedir = str(d.getVar('SSTATE_DIR'))
+ sstatedir = self.bb_vars['SSTATE_DIR']
builddir = os.environ['BUILDDIR']
if not selftestdir:
- selftestdir = get_test_layer()
+ selftestdir = get_test_layer(self.bb_vars['BBLAYERS'])
if self.newbuilddir:
newbuilddir = os.path.join(self.newbuilddir, 'build' + suffix)
else:
@@ -104,7 +104,7 @@ class OESelftestTestContext(OETestContext):
oe.path.copytree(builddir + "/cache", newbuilddir + "/cache")
oe.path.copytree(selftestdir, newselftestdir)
- subprocess.check_output("git init; git add *; git commit -a -m 'initial'", cwd=newselftestdir, shell=True)
+ subprocess.check_output("git init && git add * && git commit -a -m 'initial'", cwd=newselftestdir, shell=True)
# Tried to used bitbake-layers add/remove but it requires recipe parsing and hence is too slow
subprocess.check_output("sed %s/conf/bblayers.conf -i -e 's#%s#%s#g'" % (newbuilddir, selftestdir, newselftestdir), cwd=newbuilddir, shell=True)
@@ -155,9 +155,9 @@ class OESelftestTestContext(OETestContext):
if processes:
from oeqa.core.utils.concurrencytest import ConcurrentTestSuite
- return ConcurrentTestSuite(suites, processes, self.setup_builddir, self.removebuilddir)
+ return ConcurrentTestSuite(suites, processes, self.setup_builddir, self.removebuilddir, self.bb_vars)
else:
- return NonConcurrentTestSuite(suites, processes, self.setup_builddir, self.removebuilddir)
+ return NonConcurrentTestSuite(suites, processes, self.setup_builddir, self.removebuilddir, self.bb_vars)
def runTests(self, processes=None, machine=None, skips=[]):
if machine:
@@ -270,7 +270,7 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
builddir = os.environ.get("BUILDDIR")
self.tc_kwargs['init']['config_paths'] = {}
- self.tc_kwargs['init']['config_paths']['testlayer_path'] = get_test_layer()
+ self.tc_kwargs['init']['config_paths']['testlayer_path'] = get_test_layer(bbvars["BBLAYERS"])
self.tc_kwargs['init']['config_paths']['builddir'] = builddir
self.tc_kwargs['init']['config_paths']['localconf'] = os.path.join(builddir, "conf/local.conf")
self.tc_kwargs['init']['config_paths']['bblayers'] = os.path.join(builddir, "conf/bblayers.conf")
@@ -310,10 +310,10 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
meta_selftestdir = os.path.join(
self.tc.td["BBLAYERS_FETCH_DIR"], 'meta-selftest')
if os.path.isdir(meta_selftestdir):
- runCmd("bitbake-layers add-layer %s" %meta_selftestdir)
+ runCmd("bitbake-layers add-layer %s" % meta_selftestdir)
# reload data is needed because a meta-selftest layer was add
self.tc.td = get_bb_vars()
- self.tc.config_paths['testlayer_path'] = get_test_layer()
+ self.tc.config_paths['testlayer_path'] = get_test_layer(self.tc.td["BBLAYERS"])
else:
self.tc.logger.error("could not locate meta-selftest in:\n%s" % meta_selftestdir)
raise OEQAPreRun
@@ -351,8 +351,15 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
_add_layer_libs()
- self.tc.logger.info("Running bitbake -e to test the configuration is valid/parsable")
- runCmd("bitbake -e")
+ self.tc.logger.info("Checking base configuration is valid/parsable")
+
+ with bb.tinfoil.Tinfoil(tracking=True) as tinfoil:
+ tinfoil.prepare(quiet=2, config_only=True)
+ d = tinfoil.config_data
+ vars = {}
+ vars['SSTATE_DIR'] = str(d.getVar('SSTATE_DIR'))
+ vars['BBLAYERS'] = str(d.getVar('BBLAYERS'))
+ self.tc.set_variables(vars)
def get_json_result_dir(self, args):
json_result_dir = os.path.join(self.tc.td["LOG_DIR"], 'oeqa')
@@ -437,7 +444,7 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
output_link = os.path.join(os.path.dirname(args.output_log),
"%s-results.log" % self.name)
if os.path.lexists(output_link):
- os.remove(output_link)
+ os.unlink(output_link)
os.symlink(args.output_log, output_link)
return rc
diff --git a/poky/meta/lib/oeqa/utils/commands.py b/poky/meta/lib/oeqa/utils/commands.py
index c1f533802e..575e380017 100644
--- a/poky/meta/lib/oeqa/utils/commands.py
+++ b/poky/meta/lib/oeqa/utils/commands.py
@@ -285,8 +285,10 @@ def get_bb_vars(variables=None, target=None, postconfig=None):
def get_bb_var(var, target=None, postconfig=None):
return get_bb_vars([var], target, postconfig)[var]
-def get_test_layer():
- layers = get_bb_var("BBLAYERS").split()
+def get_test_layer(bblayers=None):
+ if bblayers is None:
+ bblayers = get_bb_var("BBLAYERS")
+ layers = bblayers.split()
testlayer = None
for l in layers:
if '~' in l:
diff --git a/poky/meta/lib/oeqa/utils/gitarchive.py b/poky/meta/lib/oeqa/utils/gitarchive.py
index 64448f47d9..f9c152681d 100644
--- a/poky/meta/lib/oeqa/utils/gitarchive.py
+++ b/poky/meta/lib/oeqa/utils/gitarchive.py
@@ -255,7 +255,15 @@ def get_test_revs(log, repo, tag_name, **kwargs):
if not commit in revs:
revs[commit] = TestedRev(commit, commit_num, [tag])
else:
- assert commit_num == revs[commit].commit_number, "Commit numbers do not match"
+ if commit_num != revs[commit].commit_number:
+ # Historically we have incorrect commit counts of '1' in the repo so fix these up
+ if int(revs[commit].commit_number) < 5:
+ tags = revs[commit].tags
+ revs[commit] = TestedRev(commit, commit_num, [tags])
+ elif int(commit_num) < 5:
+ pass
+ else:
+ sys.exit("Commit numbers for commit %s don't match (%s vs %s)" % (commit, commit_num, revs[commit].commit_number))
revs[commit].tags.append(tag)
# Return in sorted table
diff --git a/poky/meta/lib/patchtest/README.md b/poky/meta/lib/patchtest/README.md
new file mode 100644
index 0000000000..f66613c0c1
--- /dev/null
+++ b/poky/meta/lib/patchtest/README.md
@@ -0,0 +1,20 @@
+# patchtest selftests for openembedded-core
+
+This directory provides a test suite and selftest script for use with the
+patchtest repository: https://git.yoctoproject.org/patchtest/
+
+To setup for use:
+
+1. Clone https://git.openembedded.org/openembedded-core (this repo) and https://git.openembedded.org/bitbake/
+2. Clone https://git.yoctoproject.org/patchtest
+3. Install the necessary Python modules: in meta/lib/patchtest or the patchtest
+ repo, do `pip install -r requirements.txt`
+4. Add patchtest to PATH: `export PATH=/path/to/patchtest/repo:$PATH`
+5. Initialize the environment: `source oe-init-build-env`
+6. Add meta-selftest to bblayers.conf: `bitbake-layers add-layer
+ /path/to/meta-selftest/` (the selftests use this layer's recipes as test
+ targets)
+7. Finally, run the selftest script: `./meta/lib/patchtest/selftest/selftest`
+
+For more information on using patchtest, see the patchtest repo at
+https://git.yoctoproject.org/patchtest/.
diff --git a/poky/meta/lib/patchtest/requirements.txt b/poky/meta/lib/patchtest/requirements.txt
new file mode 100644
index 0000000000..785aa469f6
--- /dev/null
+++ b/poky/meta/lib/patchtest/requirements.txt
@@ -0,0 +1,4 @@
+jinja2
+pylint
+pyparsing>=3.0.9
+unidiff
diff --git a/poky/meta/lib/patchtest/selftest/files/Author.test_author_valid.1.fail b/poky/meta/lib/patchtest/selftest/files/Author.test_author_valid.1.fail
new file mode 100644
index 0000000000..0c40cdc1b6
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/Author.test_author_valid.1.fail
@@ -0,0 +1,32 @@
+From 1fbb446d1849b1208012cbdae5d85d228cdbe4a6 Mon Sep 17 00:00:00 2001
+From: First Last <first.last@example.com>
+Date: Tue, 29 Aug 2023 13:32:24 -0400
+Subject: [PATCH] selftest-hello: add a summary
+
+This patch should fail the selftests because the author address is from the
+invalid "example.com".
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../recipes-test/selftest-hello/selftest-hello_1.0.bb | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..491f0a3df7 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -1,3 +1,4 @@
++SUMMARY = "A cool sample"
+ DESCRIPTION = "Simple helloworld application -- selftest variant"
+ SECTION = "examples"
+ LICENSE = "MIT"
+@@ -16,4 +17,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/Author.test_author_valid.1.pass b/poky/meta/lib/patchtest/selftest/files/Author.test_author_valid.1.pass
new file mode 100644
index 0000000000..cbb8ef2cef
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/Author.test_author_valid.1.pass
@@ -0,0 +1,31 @@
+From 1fbb446d1849b1208012cbdae5d85d228cdbe4a6 Mon Sep 17 00:00:00 2001
+From: First Last <first.last@address.com>
+Date: Tue, 29 Aug 2023 13:32:24 -0400
+Subject: [PATCH] selftest-hello: add a summary
+
+This patch should pass the selftests because the author address is in a valid format.
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../recipes-test/selftest-hello/selftest-hello_1.0.bb | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..491f0a3df7 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -1,3 +1,4 @@
++SUMMARY = "A cool sample"
+ DESCRIPTION = "Simple helloworld application -- selftest variant"
+ SECTION = "examples"
+ LICENSE = "MIT"
+@@ -16,4 +17,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/Author.test_author_valid.2.fail b/poky/meta/lib/patchtest/selftest/files/Author.test_author_valid.2.fail
new file mode 100644
index 0000000000..3e2b81bca1
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/Author.test_author_valid.2.fail
@@ -0,0 +1,31 @@
+From 1fbb446d1849b1208012cbdae5d85d228cdbe4a6 Mon Sep 17 00:00:00 2001
+From: Upgrade Helper <auh@auh.yoctoproject.org>
+Date: Tue, 29 Aug 2023 13:32:24 -0400
+Subject: [PATCH] selftest-hello: add a summary
+
+This patch should fail the selftests because AUH is an invalid sender.
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../recipes-test/selftest-hello/selftest-hello_1.0.bb | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..491f0a3df7 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -1,3 +1,4 @@
++SUMMARY = "A cool sample"
+ DESCRIPTION = "Simple helloworld application -- selftest variant"
+ SECTION = "examples"
+ LICENSE = "MIT"
+@@ -16,4 +17,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/Author.test_author_valid.2.pass b/poky/meta/lib/patchtest/selftest/files/Author.test_author_valid.2.pass
new file mode 100644
index 0000000000..f84e1265a7
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/Author.test_author_valid.2.pass
@@ -0,0 +1,31 @@
+From 1fbb446d1849b1208012cbdae5d85d228cdbe4a6 Mon Sep 17 00:00:00 2001
+From: First Last <averylongemailaddressthatishardtoread.from@address.com>
+Date: Tue, 29 Aug 2023 13:32:24 -0400
+Subject: [PATCH] selftest-hello: add a summary
+
+This patch should pass the selftests because the author address is in a valid format.
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../recipes-test/selftest-hello/selftest-hello_1.0.bb | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..491f0a3df7 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -1,3 +1,4 @@
++SUMMARY = "A cool sample"
+ DESCRIPTION = "Simple helloworld application -- selftest variant"
+ SECTION = "examples"
+ LICENSE = "MIT"
+@@ -16,4 +17,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/Bugzilla.test_bugzilla_entry_format.fail b/poky/meta/lib/patchtest/selftest/files/Bugzilla.test_bugzilla_entry_format.fail
new file mode 100644
index 0000000000..80f409e952
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/Bugzilla.test_bugzilla_entry_format.fail
@@ -0,0 +1,25 @@
+From fdfd605e565d874502522c4b70b786c8c5aa0bad Mon Sep 17 00:00:00 2001
+From: name@somedomain.com <email@address.com>
+Date: Fri, 17 Feb 2017 16:29:21 -0600
+Subject: [PATCH] README: adds 'foo' to the header
+
+This test patch adds 'foo' to the header
+
+[YOCTO 1234]
+
+Signed-off-by: Daniela Plascencia <daniela.plascencia@linux.intel.com>
+---
+ README | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README b/README
+index 521916cd4f..cdf29dcea3 100644
+--- a/README
++++ b/README
+@@ -1,3 +1,4 @@
++**** FOO ****
+ OpenEmbedded-Core
+ =================
+
+--
+2.11.0
diff --git a/poky/meta/lib/patchtest/selftest/files/Bugzilla.test_bugzilla_entry_format.pass b/poky/meta/lib/patchtest/selftest/files/Bugzilla.test_bugzilla_entry_format.pass
new file mode 100644
index 0000000000..2648b03364
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/Bugzilla.test_bugzilla_entry_format.pass
@@ -0,0 +1,25 @@
+From fdfd605e565d874502522c4b70b786c8c5aa0bad Mon Sep 17 00:00:00 2001
+From: name@somedomain.com <email@address.com>
+Date: Fri, 17 Feb 2017 16:29:21 -0600
+Subject: [PATCH] README: adds 'foo' to the header
+
+This test patch adds 'foo' to the header
+
+[YOCTO #1234]
+
+Signed-off-by: Daniela Plascencia <daniela.plascencia@linux.intel.com>
+---
+ README | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README b/README
+index 521916cd4f..cdf29dcea3 100644
+--- a/README
++++ b/README
+@@ -1,3 +1,4 @@
++**** FOO ****
+ OpenEmbedded-Core
+ =================
+
+--
+2.11.0
diff --git a/poky/meta/lib/patchtest/selftest/files/CVE.test_cve_presence_in_commit_message.fail b/poky/meta/lib/patchtest/selftest/files/CVE.test_cve_presence_in_commit_message.fail
new file mode 100644
index 0000000000..d40b8a936b
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/CVE.test_cve_presence_in_commit_message.fail
@@ -0,0 +1,72 @@
+From 14d72f6973270f78455a8628143f2cff90e8f41e Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Tue, 29 Aug 2023 14:12:27 -0400
+Subject: [PATCH] selftest-hello: fix CVE-1234-56789
+
+This patch should fail the test for CVE presence in the mbox commit message.
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../selftest-hello/files/CVE-1234-56789.patch | 27 +++++++++++++++++++
+ .../selftest-hello/selftest-hello_1.0.bb | 6 +++--
+ 2 files changed, 31 insertions(+), 2 deletions(-)
+ create mode 100644 meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch b/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+new file mode 100644
+index 0000000000..869cfb6fe5
+--- /dev/null
++++ b/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+@@ -0,0 +1,27 @@
++From b26a31186e6ee2eb1f506d5f2f9394d327a0df2f Mon Sep 17 00:00:00 2001
++From: Trevor Gamblin <tgamblin@baylibre.com>
++Date: Tue, 29 Aug 2023 14:08:20 -0400
++Subject: [PATCH] Fix CVE-NOT-REAL
++
++CVE: CVE-1234-56789
++Upstream-Status: Backport(http://example.com/example)
++
++Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
++---
++ strlen.c | 1 +
++ 1 file changed, 1 insertion(+)
++
++diff --git a/strlen.c b/strlen.c
++index 1788f38..83d7918 100644
++--- a/strlen.c
+++++ b/strlen.c
++@@ -8,6 +8,7 @@ int main() {
++
++ printf("%d\n", str_len(string1));
++ printf("%d\n", str_len(string2));
+++ printf("CVE FIXED!!!\n");
++
++ return 0;
++ }
++--
++2.41.0
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..76975a6729 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -3,7 +3,9 @@ SECTION = "examples"
+ LICENSE = "MIT"
+ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+-SRC_URI = "file://helloworld.c"
++SRC_URI = "file://helloworld.c \
++ file://CVE-1234-56789.patch \
++ "
+
+ S = "${WORKDIR}"
+
+@@ -16,4 +18,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/CVE.test_cve_presence_in_commit_message.pass b/poky/meta/lib/patchtest/selftest/files/CVE.test_cve_presence_in_commit_message.pass
new file mode 100644
index 0000000000..433c7a450a
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/CVE.test_cve_presence_in_commit_message.pass
@@ -0,0 +1,74 @@
+From 14d72f6973270f78455a8628143f2cff90e8f41e Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Tue, 29 Aug 2023 14:12:27 -0400
+Subject: [PATCH] selftest-hello: fix CVE-1234-56789
+
+This test should pass the mbox cve tag test.
+
+CVE: CVE-1234-56789
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../selftest-hello/files/CVE-1234-56789.patch | 27 +++++++++++++++++++
+ .../selftest-hello/selftest-hello_1.0.bb | 6 +++--
+ 2 files changed, 31 insertions(+), 2 deletions(-)
+ create mode 100644 meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch b/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+new file mode 100644
+index 0000000000..869cfb6fe5
+--- /dev/null
++++ b/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+@@ -0,0 +1,27 @@
++From b26a31186e6ee2eb1f506d5f2f9394d327a0df2f Mon Sep 17 00:00:00 2001
++From: Trevor Gamblin <tgamblin@baylibre.com>
++Date: Tue, 29 Aug 2023 14:08:20 -0400
++Subject: [PATCH] Fix CVE-NOT-REAL
++
++CVE: CVE-1234-56789
++Upstream-Status: Backport(http://example.com/example)
++
++Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
++---
++ strlen.c | 1 +
++ 1 file changed, 1 insertion(+)
++
++diff --git a/strlen.c b/strlen.c
++index 1788f38..83d7918 100644
++--- a/strlen.c
+++++ b/strlen.c
++@@ -8,6 +8,7 @@ int main() {
++
++ printf("%d\n", str_len(string1));
++ printf("%d\n", str_len(string2));
+++ printf("CVE FIXED!!!\n");
++
++ return 0;
++ }
++--
++2.41.0
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..76975a6729 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -3,7 +3,9 @@ SECTION = "examples"
+ LICENSE = "MIT"
+ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+-SRC_URI = "file://helloworld.c"
++SRC_URI = "file://helloworld.c \
++ file://CVE-1234-56789.patch \
++ "
+
+ S = "${WORKDIR}"
+
+@@ -16,4 +18,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/CVE.test_cve_tag_format.fail b/poky/meta/lib/patchtest/selftest/files/CVE.test_cve_tag_format.fail
new file mode 100644
index 0000000000..c763a7506e
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/CVE.test_cve_tag_format.fail
@@ -0,0 +1,73 @@
+From 35ccee3cee96fb29514475279248078d88907231 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Tue, 29 Aug 2023 14:12:27 -0400
+Subject: [PATCH] selftest-hello: fix CVE-1234-56789
+
+CVE: CVE-BAD-FORMAT
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../files/0001-Fix-CVE-1234-56789.patch | 27 +++++++++++++++++++
+ .../selftest-hello/selftest-hello_1.0.bb | 6 +++--
+ 2 files changed, 31 insertions(+), 2 deletions(-)
+ create mode 100644 meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch b/meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch
+new file mode 100644
+index 0000000000..9219b8db62
+--- /dev/null
++++ b/meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch
+@@ -0,0 +1,27 @@
++From b26a31186e6ee2eb1f506d5f2f9394d327a0df2f Mon Sep 17 00:00:00 2001
++From: Trevor Gamblin <tgamblin@baylibre.com>
++Date: Tue, 29 Aug 2023 14:08:20 -0400
++Subject: [PATCH] Fix CVE-NOT-REAL
++
++CVE: CVE-BAD-FORMAT
++Upstream-Status: Backport(http://example.com/example)
++
++Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
++---
++ strlen.c | 1 +
++ 1 file changed, 1 insertion(+)
++
++diff --git a/strlen.c b/strlen.c
++index 1788f38..83d7918 100644
++--- a/strlen.c
+++++ b/strlen.c
++@@ -8,6 +8,7 @@ int main() {
++
++ printf("%d\n", str_len(string1));
++ printf("%d\n", str_len(string2));
+++ printf("CVE FIXED!!!\n");
++
++ return 0;
++ }
++--
++2.41.0
++
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..76975a6729 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -3,7 +3,9 @@ SECTION = "examples"
+ LICENSE = "MIT"
+ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+-SRC_URI = "file://helloworld.c"
++SRC_URI = "file://helloworld.c \
++ file://CVE-1234-56789.patch \
++ "
+
+ S = "${WORKDIR}"
+
+@@ -16,4 +18,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/CVE.test_cve_tag_format.pass b/poky/meta/lib/patchtest/selftest/files/CVE.test_cve_tag_format.pass
new file mode 100644
index 0000000000..ef6017037c
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/CVE.test_cve_tag_format.pass
@@ -0,0 +1,73 @@
+From 35ccee3cee96fb29514475279248078d88907231 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Tue, 29 Aug 2023 14:12:27 -0400
+Subject: [PATCH] selftest-hello: fix CVE-1234-56789
+
+CVE: CVE-1234-56789
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../files/0001-Fix-CVE-1234-56789.patch | 27 +++++++++++++++++++
+ .../selftest-hello/selftest-hello_1.0.bb | 6 +++--
+ 2 files changed, 31 insertions(+), 2 deletions(-)
+ create mode 100644 meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch b/meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch
+new file mode 100644
+index 0000000000..9219b8db62
+--- /dev/null
++++ b/meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch
+@@ -0,0 +1,27 @@
++From b26a31186e6ee2eb1f506d5f2f9394d327a0df2f Mon Sep 17 00:00:00 2001
++From: Trevor Gamblin <tgamblin@baylibre.com>
++Date: Tue, 29 Aug 2023 14:08:20 -0400
++Subject: [PATCH] Fix CVE-NOT-REAL
++
++CVE: CVE-1234-56789
++Upstream-Status: Backport(http://example.com/example)
++
++Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
++---
++ strlen.c | 1 +
++ 1 file changed, 1 insertion(+)
++
++diff --git a/strlen.c b/strlen.c
++index 1788f38..83d7918 100644
++--- a/strlen.c
+++++ b/strlen.c
++@@ -8,6 +8,7 @@ int main() {
++
++ printf("%d\n", str_len(string1));
++ printf("%d\n", str_len(string2));
+++ printf("CVE FIXED!!!\n");
++
++ return 0;
++ }
++--
++2.41.0
++
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..76975a6729 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -3,7 +3,9 @@ SECTION = "examples"
+ LICENSE = "MIT"
+ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+-SRC_URI = "file://helloworld.c"
++SRC_URI = "file://helloworld.c \
++ file://CVE-1234-56789.patch \
++ "
+
+ S = "${WORKDIR}"
+
+@@ -16,4 +18,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/CommitMessage.test_commit_message_presence.fail b/poky/meta/lib/patchtest/selftest/files/CommitMessage.test_commit_message_presence.fail
new file mode 100644
index 0000000000..93ca0f9119
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/CommitMessage.test_commit_message_presence.fail
@@ -0,0 +1,22 @@
+From 0a52a62c9430c05d22cb7f46380488f2280b69bb Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Fri, 1 Sep 2023 08:56:14 -0400
+Subject: [PATCH] README.OE-Core.md: add foo
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ README.OE-Core.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.OE-Core.md b/README.OE-Core.md
+index 2f2127fb03..48464252c8 100644
+--- a/README.OE-Core.md
++++ b/README.OE-Core.md
+@@ -1,3 +1,4 @@
++** FOO **
+ OpenEmbedded-Core
+ =================
+
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/CommitMessage.test_commit_message_presence.pass b/poky/meta/lib/patchtest/selftest/files/CommitMessage.test_commit_message_presence.pass
new file mode 100644
index 0000000000..5e3dcbd58b
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/CommitMessage.test_commit_message_presence.pass
@@ -0,0 +1,24 @@
+From 0a52a62c9430c05d22cb7f46380488f2280b69bb Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Fri, 1 Sep 2023 08:56:14 -0400
+Subject: [PATCH] README.OE-Core.md: add foo
+
+This is a commit message
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ README.OE-Core.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.OE-Core.md b/README.OE-Core.md
+index 2f2127fb03..48464252c8 100644
+--- a/README.OE-Core.md
++++ b/README.OE-Core.md
+@@ -1,3 +1,4 @@
++** FOO **
+ OpenEmbedded-Core
+ =================
+
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/LicFilesChkSum.test_lic_files_chksum_modified_not_mentioned.fail b/poky/meta/lib/patchtest/selftest/files/LicFilesChkSum.test_lic_files_chksum_modified_not_mentioned.fail
new file mode 100644
index 0000000000..ab6c52c374
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/LicFilesChkSum.test_lic_files_chksum_modified_not_mentioned.fail
@@ -0,0 +1,37 @@
+From f89919ea86d38404dd621521680a0162367bb965 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Wed, 6 Sep 2023 09:09:27 -0400
+Subject: [PATCH] selftest-hello: update LIC_FILES_CHKSUM
+
+This test should fail the
+test_metadata_lic_files_chksum.LicFilesChkSum.test_lic_files_chksum_modified_not_mentioned
+test.
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../recipes-test/selftest-hello/selftest-hello_1.0.bb | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..65dda40aba 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -1,7 +1,7 @@
+ DESCRIPTION = "Simple helloworld application -- selftest variant"
+ SECTION = "examples"
+ LICENSE = "MIT"
+-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
++LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f303"
+
+ SRC_URI = "file://helloworld.c"
+
+@@ -16,4 +16,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/LicFilesChkSum.test_lic_files_chksum_modified_not_mentioned.pass b/poky/meta/lib/patchtest/selftest/files/LicFilesChkSum.test_lic_files_chksum_modified_not_mentioned.pass
new file mode 100644
index 0000000000..99d9f144da
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/LicFilesChkSum.test_lic_files_chksum_modified_not_mentioned.pass
@@ -0,0 +1,39 @@
+From f89919ea86d38404dd621521680a0162367bb965 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Wed, 6 Sep 2023 09:09:27 -0400
+Subject: [PATCH] selftest-hello: update LIC_FILES_CHKSUM
+
+License-Update: Fix checksum
+
+This test should pass the
+test_metadata_lic_files_chksum.LicFilesChkSum.test_lic_files_chksum_modified_not_mentioned
+test.
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../recipes-test/selftest-hello/selftest-hello_1.0.bb | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..65dda40aba 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -1,7 +1,7 @@
+ DESCRIPTION = "Simple helloworld application -- selftest variant"
+ SECTION = "examples"
+ LICENSE = "MIT"
+-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
++LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f303"
+
+ SRC_URI = "file://helloworld.c"
+
+@@ -16,4 +16,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/LicFilesChkSum.test_lic_files_chksum_presence.fail b/poky/meta/lib/patchtest/selftest/files/LicFilesChkSum.test_lic_files_chksum_presence.fail
new file mode 100644
index 0000000000..e14d644bb2
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/LicFilesChkSum.test_lic_files_chksum_presence.fail
@@ -0,0 +1,53 @@
+From 66430e7c6fbd5187b66560909a510e136fed91c0 Mon Sep 17 00:00:00 2001
+From: Daniela Plascencia <daniela.plascencia@linux.intel.com>
+Date: Thu, 23 Feb 2017 10:34:27 -0600
+Subject: [PATCH] meta: adding hello-yocto recipe
+
+This is a sample recipe
+
+Signed-off-by: Daniela Plascencia <daniela.plascencia@linux.intel.com>
+---
+ .../hello-world/hello-world/hello_world.c | 5 +++++
+ .../hello-world/hello-world_1.0.bb | 18 ++++++++++++++++++
+ 2 files changed, 23 insertions(+)
+ create mode 100644 meta/recipes-devtools/hello-world/hello-world/hello_world.c
+ create mode 100644 meta/recipes-devtools/hello-world/hello-world_1.0.bb
+
+diff --git a/meta/recipes-devtools/hello-world/hello-world/hello_world.c b/meta/recipes-devtools/hello-world/hello-world/hello_world.c
+new file mode 100644
+index 0000000000..0d59f57d4c
+--- /dev/null
++++ b/meta/recipes-devtools/hello-world/hello-world/hello_world.c
+@@ -0,0 +1,5 @@
++#include <stdio.h>
++
++int main(){
++ printf("Hello World\n");
++}
+diff --git a/meta/recipes-devtools/hello-world/hello-world_1.0.bb b/meta/recipes-devtools/hello-world/hello-world_1.0.bb
+new file mode 100644
+index 0000000000..3c990c108a
+--- /dev/null
++++ b/meta/recipes-devtools/hello-world/hello-world_1.0.bb
+@@ -0,0 +1,18 @@
++SUMMARY = "This is a sample summary"
++DESCRIPTION = "This is a sample description"
++HOMEPAGE = "https://sample.com/this-is-a-sample"
++LICENSE = "MIT"
++
++SRC_URI += "file://hello_world.c"
++
++SRC_URI[md5sum] = "4ee21e9dcc9b5b6012c23038734e1632"
++SRC_URI[sha256sum] = "edef2bbde0fbf0d88232782a0eded323f483a0519d6fde9a3b1809056fd35f3e"
++
++do_compile(){
++ ${CC} -o hello_world ../hello_world.c
++}
++
++do_install(){
++ install -d ${D}${bindir}
++ install -m +x hello_world ${D}${bindir}/hello_world
++}
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/LicFilesChkSum.test_lic_files_chksum_presence.pass b/poky/meta/lib/patchtest/selftest/files/LicFilesChkSum.test_lic_files_chksum_presence.pass
new file mode 100644
index 0000000000..b8da16dfe5
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/LicFilesChkSum.test_lic_files_chksum_presence.pass
@@ -0,0 +1,54 @@
+From 5144d2ba1aa763312c047dd5f8901368cff79da6 Mon Sep 17 00:00:00 2001
+From: Daniela Plascencia <daniela.plascencia@linux.intel.com>
+Date: Thu, 23 Feb 2017 10:34:27 -0600
+Subject: [PATCH] meta: adding hello-yocto recipe
+
+This is a sample recipe
+
+Signed-off-by: Daniela Plascencia <daniela.plascencia@linux.intel.com>
+---
+ .../hello-world/hello-world/hello_world.c | 5 +++++
+ .../hello-world/hello-world_1.0.bb | 19 +++++++++++++++++++
+ 2 files changed, 24 insertions(+)
+ create mode 100644 meta/recipes-devtools/hello-world/hello-world/hello_world.c
+ create mode 100644 meta/recipes-devtools/hello-world/hello-world_1.0.bb
+
+diff --git a/meta/recipes-devtools/hello-world/hello-world/hello_world.c b/meta/recipes-devtools/hello-world/hello-world/hello_world.c
+new file mode 100644
+index 0000000000..0d59f57d4c
+--- /dev/null
++++ b/meta/recipes-devtools/hello-world/hello-world/hello_world.c
+@@ -0,0 +1,5 @@
++#include <stdio.h>
++
++int main(){
++ printf("Hello World\n");
++}
+diff --git a/meta/recipes-devtools/hello-world/hello-world_1.0.bb b/meta/recipes-devtools/hello-world/hello-world_1.0.bb
+new file mode 100644
+index 0000000000..44d888c82a
+--- /dev/null
++++ b/meta/recipes-devtools/hello-world/hello-world_1.0.bb
+@@ -0,0 +1,19 @@
++SUMMARY = "This is a sample summary"
++DESCRIPTION = "This is a sample description"
++HOMEPAGE = "https://sample.com/this-is-a-sample"
++LICENSE = "MIT"
++LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
++
++SRC_URI += "file://hello_world.c"
++
++SRC_URI[md5sum] = "4ee21e9dcc9b5b6012c23038734e1632"
++SRC_URI[sha256sum] = "edef2bbde0fbf0d88232782a0eded323f483a0519d6fde9a3b1809056fd35f3e"
++
++do_compile(){
++ ${CC} -o hello_world ../hello_world.c
++}
++
++do_install(){
++ install -d ${D}${bindir}
++ install -m +x hello_world ${D}${bindir}/hello_world
++}
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/MboxFormat.test_mbox_format.1.fail b/poky/meta/lib/patchtest/selftest/files/MboxFormat.test_mbox_format.1.fail
new file mode 100644
index 0000000000..9cc4aab38a
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/MboxFormat.test_mbox_format.1.fail
@@ -0,0 +1,36 @@
+From d12db4cfa913b0e7a4b5bd858d3019acc53ce426 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Wed, 30 Aug 2023 12:15:00 -0400
+Subject: [PATCH] selftest-hello: upgrade 1.0 -> 1.1
+
+This test should fail the mbox formatting test and the merge on head
+test.
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../{selftest-hello_1.0.bb => selftest-hello_1.1.bb} | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+ rename meta-selftest/recipes-test/selftest-hello/{selftest-hello_1.0.bb => selftest-hello_1.1.bb} (88%)
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.1.bb
+similarity index 88%
+rename from meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+rename to meta-selftest/recipes-test/selftest-hello/selftest-hello_1.1.bb
+index 547587bef4..acc388ec2c 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.1.bb
+@@ -1,3 +1,4 @@
+%+SUMMARY = "Hello!"
+ DESCRIPTION = "Simple helloworld application -- selftest variant"
+ SECTION = "examples"
+ LICENSE = "MIT"
+@@ -16,4 +17,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/MboxFormat.test_mbox_format.2.fail b/poky/meta/lib/patchtest/selftest/files/MboxFormat.test_mbox_format.2.fail
new file mode 100644
index 0000000000..eca1c60085
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/MboxFormat.test_mbox_format.2.fail
@@ -0,0 +1,35 @@
+From d12db4cfa913b0e7a4b5bd858d3019acc53ce426 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Wed, 30 Aug 2023 12:15:00 -0400
+Subject: [PATCH] selftest-hello: upgrade 1.0 -> 1.1
+
+This test should fail the merge-on-head and mbox formatting tests.
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../{selftest-hello_1.0.bb => selftest-hello_1.1.bb} | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+ rename meta-selftest/recipes-test/selftest-hello/{selftest-hello_1.0.bb => selftest-hello_1.1.bb} (88%)
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.1.bb
+similarity index 88%
+rename from meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+rename to meta-selftest/recipes-test/selftest-hello/selftest-hello_1.1.bb
+index 547587bef4..acc388ec2c 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.1.bb
+@@ -1,3 +1,4 @@
+%+SUMMARY = "Hello!"
+ DESCRIPTION = "Simple helloworld application -- selftest variant"
+ SECTION = "examples"
+ LICENSE = "MIT"
+@@ -16,4 +17,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/MboxFormat.test_mbox_format.pass b/poky/meta/lib/patchtest/selftest/files/MboxFormat.test_mbox_format.pass
new file mode 100644
index 0000000000..33940adffc
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/MboxFormat.test_mbox_format.pass
@@ -0,0 +1,33 @@
+From d12db4cfa913b0e7a4b5bd858d3019acc53ce426 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Wed, 30 Aug 2023 12:15:00 -0400
+Subject: [PATCH] selftest-hello: upgrade 1.0 -> 1.1
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../{selftest-hello_1.0.bb => selftest-hello_1.1.bb} | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+ rename meta-selftest/recipes-test/selftest-hello/{selftest-hello_1.0.bb => selftest-hello_1.1.bb} (88%)
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.1.bb
+similarity index 88%
+rename from meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+rename to meta-selftest/recipes-test/selftest-hello/selftest-hello_1.1.bb
+index 547587bef4..acc388ec2c 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.1.bb
+@@ -1,3 +1,4 @@
++SUMMARY = "Hello!"
+ DESCRIPTION = "Simple helloworld application -- selftest variant"
+ SECTION = "examples"
+ LICENSE = "MIT"
+@@ -16,4 +17,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/Merge.test_series_merge_on_head.fail b/poky/meta/lib/patchtest/selftest/files/Merge.test_series_merge_on_head.fail
new file mode 100644
index 0000000000..49bd1f8ede
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/Merge.test_series_merge_on_head.fail
@@ -0,0 +1,41 @@
+From 55208224f492af0ad929555ffc9b95ff1d301c5f Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Thu, 17 Aug 2023 15:02:38 -0400
+Subject: [PATCH] python3-dtc: upgrade 1.6.1 -> 1.7.0
+
+Changelog: https://kernel.googlesource.com/pub/scm/utils/dtc/dtc/+log/039a99414e778332d8f9c04cbd3072e1dcc62798
+
+Remove custom PV from the recipe since the relevant functionality is in
+1.7.0:
+
+[tgamblin@megalith dtc]$ git tag --contains c001fc01a43e7a06447c06ea3d50bd60641322b8
+v1.7.0
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+---
+ .../python/{python3-dtc_1.6.1.bb => python3-dtc_1.7.0.bb} | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+ rename meta/recipes-devtools/python/{python3-dtc_1.6.1.bb => python3-dtc_1.7.0.bb} (92%)
+
+diff --git a/meta/recipes-devtools/python/python3-dtc_1.6.1.bb b/meta/recipes-devtools/python/python3-dtc_1.7.0.bb
+similarity index 92%
+rename from meta/recipes-devtools/python/python3-dtc_1.6.1.bb
+rename to meta/recipes-devtools/python/python3-dtc_1.7.0.bb
+index 95ab0be474..85e48d4694 100644
+--- a/meta/recipes-devtools/python/python3-dtc_1.6.1.bb
++++ b/meta/recipes-devtools/python/python3-dtc_1.7.0.bb
+@@ -14,9 +14,8 @@ UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+ LIC_FILES_CHKSUM = "file://pylibfdt/libfdt.i;beginline=1;endline=6;md5=afda088c974174a29108c8d80b5dce90"
+
+-SRCREV = "c001fc01a43e7a06447c06ea3d50bd60641322b8"
++SRCREV = "039a99414e778332d8f9c04cbd3072e1dcc62798"
+
+-PV = "1.6.1+git"
+ S = "${WORKDIR}/git"
+
+ PYPA_WHEEL = "${S}/dist/libfdt-1.6.2*.whl"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/Merge.test_series_merge_on_head.pass b/poky/meta/lib/patchtest/selftest/files/Merge.test_series_merge_on_head.pass
new file mode 100644
index 0000000000..2a72457878
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/Merge.test_series_merge_on_head.pass
@@ -0,0 +1,35 @@
+From d12db4cfa913b0e7a4b5bd858d3019acc53ce426 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Wed, 30 Aug 2023 12:15:00 -0400
+Subject: [PATCH] selftest-hello: upgrade 1.0 -> 1.1
+
+This file should pass the test_series_merge_on_head test.
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../{selftest-hello_1.0.bb => selftest-hello_1.1.bb} | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+ rename meta-selftest/recipes-test/selftest-hello/{selftest-hello_1.0.bb => selftest-hello_1.1.bb} (88%)
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.1.bb
+similarity index 88%
+rename from meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+rename to meta-selftest/recipes-test/selftest-hello/selftest-hello_1.1.bb
+index 547587bef4..acc388ec2c 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.1.bb
+@@ -1,3 +1,4 @@
++SUMMARY = "Hello!"
+ DESCRIPTION = "Simple helloworld application -- selftest variant"
+ SECTION = "examples"
+ LICENSE = "MIT"
+@@ -16,4 +17,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/PatchSignedOffBy.test_signed_off_by_presence.fail b/poky/meta/lib/patchtest/selftest/files/PatchSignedOffBy.test_signed_off_by_presence.fail
new file mode 100644
index 0000000000..ce8bf7b7d1
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/PatchSignedOffBy.test_signed_off_by_presence.fail
@@ -0,0 +1,71 @@
+From 5a2d0ac780a0f4c046fb1a3c3463d3e726f191cb Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Tue, 29 Aug 2023 14:12:27 -0400
+Subject: [PATCH] selftest-hello: fix CVE-1234-56789
+
+CVE: CVE-1234-56789
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../selftest-hello/files/CVE-1234-56789.patch | 26 +++++++++++++++++++
+ .../selftest-hello/selftest-hello_1.0.bb | 6 +++--
+ 2 files changed, 30 insertions(+), 2 deletions(-)
+ create mode 100644 meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch b/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+new file mode 100644
+index 0000000000..92a5b65a53
+--- /dev/null
++++ b/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+@@ -0,0 +1,26 @@
++From b26a31186e6ee2eb1f506d5f2f9394d327a0df2f Mon Sep 17 00:00:00 2001
++From: Trevor Gamblin <tgamblin@baylibre.com>
++Date: Tue, 29 Aug 2023 14:08:20 -0400
++Subject: [PATCH] Fix CVE-NOT-REAL
++
++CVE: CVE-1234-56789
++Upstream-Status: Backport(http://example.com/example)
++
++---
++ strlen.c | 1 +
++ 1 file changed, 1 insertion(+)
++
++diff --git a/strlen.c b/strlen.c
++index 1788f38..83d7918 100644
++--- a/strlen.c
+++++ b/strlen.c
++@@ -8,6 +8,7 @@ int main() {
++
++ printf("%d\n", str_len(string1));
++ printf("%d\n", str_len(string2));
+++ printf("CVE FIXED!!!\n");
++
++ return 0;
++ }
++--
++2.41.0
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..76975a6729 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -3,7 +3,9 @@ SECTION = "examples"
+ LICENSE = "MIT"
+ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+-SRC_URI = "file://helloworld.c"
++SRC_URI = "file://helloworld.c \
++ file://CVE-1234-56789.patch \
++ "
+
+ S = "${WORKDIR}"
+
+@@ -16,4 +18,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/PatchSignedOffBy.test_signed_off_by_presence.pass b/poky/meta/lib/patchtest/selftest/files/PatchSignedOffBy.test_signed_off_by_presence.pass
new file mode 100644
index 0000000000..ea34c76f0d
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/PatchSignedOffBy.test_signed_off_by_presence.pass
@@ -0,0 +1,72 @@
+From 14d72f6973270f78455a8628143f2cff90e8f41e Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Tue, 29 Aug 2023 14:12:27 -0400
+Subject: [PATCH] selftest-hello: fix CVE-1234-56789
+
+CVE: CVE-1234-56789
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../selftest-hello/files/CVE-1234-56789.patch | 27 +++++++++++++++++++
+ .../selftest-hello/selftest-hello_1.0.bb | 6 +++--
+ 2 files changed, 31 insertions(+), 2 deletions(-)
+ create mode 100644 meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch b/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+new file mode 100644
+index 0000000000..869cfb6fe5
+--- /dev/null
++++ b/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+@@ -0,0 +1,27 @@
++From b26a31186e6ee2eb1f506d5f2f9394d327a0df2f Mon Sep 17 00:00:00 2001
++From: Trevor Gamblin <tgamblin@baylibre.com>
++Date: Tue, 29 Aug 2023 14:08:20 -0400
++Subject: [PATCH] Fix CVE-NOT-REAL
++
++CVE: CVE-1234-56789
++Upstream-Status: Backport(http://example.com/example)
++
++Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
++---
++ strlen.c | 1 +
++ 1 file changed, 1 insertion(+)
++
++diff --git a/strlen.c b/strlen.c
++index 1788f38..83d7918 100644
++--- a/strlen.c
+++++ b/strlen.c
++@@ -8,6 +8,7 @@ int main() {
++
++ printf("%d\n", str_len(string1));
++ printf("%d\n", str_len(string2));
+++ printf("CVE FIXED!!!\n");
++
++ return 0;
++ }
++--
++2.41.0
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..76975a6729 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -3,7 +3,9 @@ SECTION = "examples"
+ LICENSE = "MIT"
+ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+-SRC_URI = "file://helloworld.c"
++SRC_URI = "file://helloworld.c \
++ file://CVE-1234-56789.patch \
++ "
+
+ S = "${WORKDIR}"
+
+@@ -16,4 +18,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/Shortlog.test_shortlog_format.fail b/poky/meta/lib/patchtest/selftest/files/Shortlog.test_shortlog_format.fail
new file mode 100644
index 0000000000..cdbbc61b61
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/Shortlog.test_shortlog_format.fail
@@ -0,0 +1,73 @@
+From 35ccee3cee96fb29514475279248078d88907231 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Tue, 29 Aug 2023 14:12:27 -0400
+Subject: [PATCH] selftest-hello% fix CVE-1234-56789
+
+CVE: CVE-1234-56789
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../files/0001-Fix-CVE-1234-56789.patch | 27 +++++++++++++++++++
+ .../selftest-hello/selftest-hello_1.0.bb | 6 +++--
+ 2 files changed, 31 insertions(+), 2 deletions(-)
+ create mode 100644 meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch b/meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch
+new file mode 100644
+index 0000000000..9219b8db62
+--- /dev/null
++++ b/meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch
+@@ -0,0 +1,27 @@
++From b26a31186e6ee2eb1f506d5f2f9394d327a0df2f Mon Sep 17 00:00:00 2001
++From: Trevor Gamblin <tgamblin@baylibre.com>
++Date: Tue, 29 Aug 2023 14:08:20 -0400
++Subject: [PATCH] Fix CVE-NOT-REAL
++
++CVE: CVE-1234-56789
++Upstream-Status: Backport(http://example.com/example)
++
++Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
++---
++ strlen.c | 1 +
++ 1 file changed, 1 insertion(+)
++
++diff --git a/strlen.c b/strlen.c
++index 1788f38..83d7918 100644
++--- a/strlen.c
+++++ b/strlen.c
++@@ -8,6 +8,7 @@ int main() {
++
++ printf("%d\n", str_len(string1));
++ printf("%d\n", str_len(string2));
+++ printf("CVE FIXED!!!\n");
++
++ return 0;
++ }
++--
++2.41.0
++
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..76975a6729 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -3,7 +3,9 @@ SECTION = "examples"
+ LICENSE = "MIT"
+ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+-SRC_URI = "file://helloworld.c"
++SRC_URI = "file://helloworld.c \
++ file://CVE-1234-56789.patch \
++ "
+
+ S = "${WORKDIR}"
+
+@@ -16,4 +18,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/Shortlog.test_shortlog_format.pass b/poky/meta/lib/patchtest/selftest/files/Shortlog.test_shortlog_format.pass
new file mode 100644
index 0000000000..ef6017037c
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/Shortlog.test_shortlog_format.pass
@@ -0,0 +1,73 @@
+From 35ccee3cee96fb29514475279248078d88907231 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Tue, 29 Aug 2023 14:12:27 -0400
+Subject: [PATCH] selftest-hello: fix CVE-1234-56789
+
+CVE: CVE-1234-56789
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../files/0001-Fix-CVE-1234-56789.patch | 27 +++++++++++++++++++
+ .../selftest-hello/selftest-hello_1.0.bb | 6 +++--
+ 2 files changed, 31 insertions(+), 2 deletions(-)
+ create mode 100644 meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch b/meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch
+new file mode 100644
+index 0000000000..9219b8db62
+--- /dev/null
++++ b/meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch
+@@ -0,0 +1,27 @@
++From b26a31186e6ee2eb1f506d5f2f9394d327a0df2f Mon Sep 17 00:00:00 2001
++From: Trevor Gamblin <tgamblin@baylibre.com>
++Date: Tue, 29 Aug 2023 14:08:20 -0400
++Subject: [PATCH] Fix CVE-NOT-REAL
++
++CVE: CVE-1234-56789
++Upstream-Status: Backport(http://example.com/example)
++
++Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
++---
++ strlen.c | 1 +
++ 1 file changed, 1 insertion(+)
++
++diff --git a/strlen.c b/strlen.c
++index 1788f38..83d7918 100644
++--- a/strlen.c
+++++ b/strlen.c
++@@ -8,6 +8,7 @@ int main() {
++
++ printf("%d\n", str_len(string1));
++ printf("%d\n", str_len(string2));
+++ printf("CVE FIXED!!!\n");
++
++ return 0;
++ }
++--
++2.41.0
++
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..76975a6729 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -3,7 +3,9 @@ SECTION = "examples"
+ LICENSE = "MIT"
+ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+-SRC_URI = "file://helloworld.c"
++SRC_URI = "file://helloworld.c \
++ file://CVE-1234-56789.patch \
++ "
+
+ S = "${WORKDIR}"
+
+@@ -16,4 +18,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/Shortlog.test_shortlog_length.fail b/poky/meta/lib/patchtest/selftest/files/Shortlog.test_shortlog_length.fail
new file mode 100644
index 0000000000..247b2a8a80
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/Shortlog.test_shortlog_length.fail
@@ -0,0 +1,73 @@
+From 35ccee3cee96fb29514475279248078d88907231 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Tue, 29 Aug 2023 14:12:27 -0400
+Subject: [PATCH] selftest-hello: this is a very long commit shortlog with way too many words included in it to pass the test
+
+CVE: CVE-1234-56789
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../files/0001-Fix-CVE-1234-56789.patch | 27 +++++++++++++++++++
+ .../selftest-hello/selftest-hello_1.0.bb | 6 +++--
+ 2 files changed, 31 insertions(+), 2 deletions(-)
+ create mode 100644 meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch b/meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch
+new file mode 100644
+index 0000000000..9219b8db62
+--- /dev/null
++++ b/meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch
+@@ -0,0 +1,27 @@
++From b26a31186e6ee2eb1f506d5f2f9394d327a0df2f Mon Sep 17 00:00:00 2001
++From: Trevor Gamblin <tgamblin@baylibre.com>
++Date: Tue, 29 Aug 2023 14:08:20 -0400
++Subject: [PATCH] Fix CVE-NOT-REAL
++
++CVE: CVE-1234-56789
++Upstream-Status: Backport(http://example.com/example)
++
++Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
++---
++ strlen.c | 1 +
++ 1 file changed, 1 insertion(+)
++
++diff --git a/strlen.c b/strlen.c
++index 1788f38..83d7918 100644
++--- a/strlen.c
+++++ b/strlen.c
++@@ -8,6 +8,7 @@ int main() {
++
++ printf("%d\n", str_len(string1));
++ printf("%d\n", str_len(string2));
+++ printf("CVE FIXED!!!\n");
++
++ return 0;
++ }
++--
++2.41.0
++
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..76975a6729 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -3,7 +3,9 @@ SECTION = "examples"
+ LICENSE = "MIT"
+ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+-SRC_URI = "file://helloworld.c"
++SRC_URI = "file://helloworld.c \
++ file://CVE-1234-56789.patch \
++ "
+
+ S = "${WORKDIR}"
+
+@@ -16,4 +18,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/Shortlog.test_shortlog_length.pass b/poky/meta/lib/patchtest/selftest/files/Shortlog.test_shortlog_length.pass
new file mode 100644
index 0000000000..ef6017037c
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/Shortlog.test_shortlog_length.pass
@@ -0,0 +1,73 @@
+From 35ccee3cee96fb29514475279248078d88907231 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Tue, 29 Aug 2023 14:12:27 -0400
+Subject: [PATCH] selftest-hello: fix CVE-1234-56789
+
+CVE: CVE-1234-56789
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../files/0001-Fix-CVE-1234-56789.patch | 27 +++++++++++++++++++
+ .../selftest-hello/selftest-hello_1.0.bb | 6 +++--
+ 2 files changed, 31 insertions(+), 2 deletions(-)
+ create mode 100644 meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch b/meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch
+new file mode 100644
+index 0000000000..9219b8db62
+--- /dev/null
++++ b/meta-selftest/recipes-test/selftest-hello/files/0001-Fix-CVE-1234-56789.patch
+@@ -0,0 +1,27 @@
++From b26a31186e6ee2eb1f506d5f2f9394d327a0df2f Mon Sep 17 00:00:00 2001
++From: Trevor Gamblin <tgamblin@baylibre.com>
++Date: Tue, 29 Aug 2023 14:08:20 -0400
++Subject: [PATCH] Fix CVE-NOT-REAL
++
++CVE: CVE-1234-56789
++Upstream-Status: Backport(http://example.com/example)
++
++Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
++---
++ strlen.c | 1 +
++ 1 file changed, 1 insertion(+)
++
++diff --git a/strlen.c b/strlen.c
++index 1788f38..83d7918 100644
++--- a/strlen.c
+++++ b/strlen.c
++@@ -8,6 +8,7 @@ int main() {
++
++ printf("%d\n", str_len(string1));
++ printf("%d\n", str_len(string2));
+++ printf("CVE FIXED!!!\n");
++
++ return 0;
++ }
++--
++2.41.0
++
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..76975a6729 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -3,7 +3,9 @@ SECTION = "examples"
+ LICENSE = "MIT"
+ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+-SRC_URI = "file://helloworld.c"
++SRC_URI = "file://helloworld.c \
++ file://CVE-1234-56789.patch \
++ "
+
+ S = "${WORKDIR}"
+
+@@ -16,4 +18,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/SignedOffBy.test_signed_off_by_presence.1.fail b/poky/meta/lib/patchtest/selftest/files/SignedOffBy.test_signed_off_by_presence.1.fail
new file mode 100644
index 0000000000..35d92aeed7
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/SignedOffBy.test_signed_off_by_presence.1.fail
@@ -0,0 +1,71 @@
+From 14d72f6973270f78455a8628143f2cff90e8f41e Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Tue, 29 Aug 2023 14:12:27 -0400
+Subject: [PATCH] selftest-hello: fix CVE-1234-56789
+
+CVE: CVE-1234-56789
+
+---
+ .../selftest-hello/files/CVE-1234-56789.patch | 27 +++++++++++++++++++
+ .../selftest-hello/selftest-hello_1.0.bb | 6 +++--
+ 2 files changed, 31 insertions(+), 2 deletions(-)
+ create mode 100644 meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch b/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+new file mode 100644
+index 0000000000..869cfb6fe5
+--- /dev/null
++++ b/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+@@ -0,0 +1,27 @@
++From b26a31186e6ee2eb1f506d5f2f9394d327a0df2f Mon Sep 17 00:00:00 2001
++From: Trevor Gamblin <tgamblin@baylibre.com>
++Date: Tue, 29 Aug 2023 14:08:20 -0400
++Subject: [PATCH] Fix CVE-NOT-REAL
++
++CVE: CVE-1234-56789
++Upstream-Status: Backport(http://example.com/example)
++
++Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
++---
++ strlen.c | 1 +
++ 1 file changed, 1 insertion(+)
++
++diff --git a/strlen.c b/strlen.c
++index 1788f38..83d7918 100644
++--- a/strlen.c
+++++ b/strlen.c
++@@ -8,6 +8,7 @@ int main() {
++
++ printf("%d\n", str_len(string1));
++ printf("%d\n", str_len(string2));
+++ printf("CVE FIXED!!!\n");
++
++ return 0;
++ }
++--
++2.41.0
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..76975a6729 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -3,7 +3,9 @@ SECTION = "examples"
+ LICENSE = "MIT"
+ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+-SRC_URI = "file://helloworld.c"
++SRC_URI = "file://helloworld.c \
++ file://CVE-1234-56789.patch \
++ "
+
+ S = "${WORKDIR}"
+
+@@ -16,4 +18,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/SignedOffBy.test_signed_off_by_presence.2.fail b/poky/meta/lib/patchtest/selftest/files/SignedOffBy.test_signed_off_by_presence.2.fail
new file mode 100644
index 0000000000..68f38dee06
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/SignedOffBy.test_signed_off_by_presence.2.fail
@@ -0,0 +1,72 @@
+From 14d72f6973270f78455a8628143f2cff90e8f41e Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Tue, 29 Aug 2023 14:12:27 -0400
+Subject: [PATCH] selftest-hello: fix CVE-1234-56789
+
+CVE: CVE-1234-56789
+
+Approved: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../selftest-hello/files/CVE-1234-56789.patch | 27 +++++++++++++++++++
+ .../selftest-hello/selftest-hello_1.0.bb | 6 +++--
+ 2 files changed, 31 insertions(+), 2 deletions(-)
+ create mode 100644 meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch b/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+new file mode 100644
+index 0000000000..869cfb6fe5
+--- /dev/null
++++ b/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+@@ -0,0 +1,27 @@
++From b26a31186e6ee2eb1f506d5f2f9394d327a0df2f Mon Sep 17 00:00:00 2001
++From: Trevor Gamblin <tgamblin@baylibre.com>
++Date: Tue, 29 Aug 2023 14:08:20 -0400
++Subject: [PATCH] Fix CVE-NOT-REAL
++
++CVE: CVE-1234-56789
++Upstream-Status: Backport(http://example.com/example)
++
++Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
++---
++ strlen.c | 1 +
++ 1 file changed, 1 insertion(+)
++
++diff --git a/strlen.c b/strlen.c
++index 1788f38..83d7918 100644
++--- a/strlen.c
+++++ b/strlen.c
++@@ -8,6 +8,7 @@ int main() {
++
++ printf("%d\n", str_len(string1));
++ printf("%d\n", str_len(string2));
+++ printf("CVE FIXED!!!\n");
++
++ return 0;
++ }
++--
++2.41.0
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..76975a6729 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -3,7 +3,9 @@ SECTION = "examples"
+ LICENSE = "MIT"
+ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+-SRC_URI = "file://helloworld.c"
++SRC_URI = "file://helloworld.c \
++ file://CVE-1234-56789.patch \
++ "
+
+ S = "${WORKDIR}"
+
+@@ -16,4 +18,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/SignedOffBy.test_signed_off_by_presence.pass b/poky/meta/lib/patchtest/selftest/files/SignedOffBy.test_signed_off_by_presence.pass
new file mode 100644
index 0000000000..ea34c76f0d
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/SignedOffBy.test_signed_off_by_presence.pass
@@ -0,0 +1,72 @@
+From 14d72f6973270f78455a8628143f2cff90e8f41e Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Tue, 29 Aug 2023 14:12:27 -0400
+Subject: [PATCH] selftest-hello: fix CVE-1234-56789
+
+CVE: CVE-1234-56789
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../selftest-hello/files/CVE-1234-56789.patch | 27 +++++++++++++++++++
+ .../selftest-hello/selftest-hello_1.0.bb | 6 +++--
+ 2 files changed, 31 insertions(+), 2 deletions(-)
+ create mode 100644 meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch b/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+new file mode 100644
+index 0000000000..869cfb6fe5
+--- /dev/null
++++ b/meta-selftest/recipes-test/selftest-hello/files/CVE-1234-56789.patch
+@@ -0,0 +1,27 @@
++From b26a31186e6ee2eb1f506d5f2f9394d327a0df2f Mon Sep 17 00:00:00 2001
++From: Trevor Gamblin <tgamblin@baylibre.com>
++Date: Tue, 29 Aug 2023 14:08:20 -0400
++Subject: [PATCH] Fix CVE-NOT-REAL
++
++CVE: CVE-1234-56789
++Upstream-Status: Backport(http://example.com/example)
++
++Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
++---
++ strlen.c | 1 +
++ 1 file changed, 1 insertion(+)
++
++diff --git a/strlen.c b/strlen.c
++index 1788f38..83d7918 100644
++--- a/strlen.c
+++++ b/strlen.c
++@@ -8,6 +8,7 @@ int main() {
++
++ printf("%d\n", str_len(string1));
++ printf("%d\n", str_len(string2));
+++ printf("CVE FIXED!!!\n");
++
++ return 0;
++ }
++--
++2.41.0
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..76975a6729 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -3,7 +3,9 @@ SECTION = "examples"
+ LICENSE = "MIT"
+ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+-SRC_URI = "file://helloworld.c"
++SRC_URI = "file://helloworld.c \
++ file://CVE-1234-56789.patch \
++ "
+
+ S = "${WORKDIR}"
+
+@@ -16,4 +18,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/SrcUri.test_src_uri_left_files.fail b/poky/meta/lib/patchtest/selftest/files/SrcUri.test_src_uri_left_files.fail
new file mode 100644
index 0000000000..983b6e0c2b
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/SrcUri.test_src_uri_left_files.fail
@@ -0,0 +1,35 @@
+From 4ab06b5f81455249cd5e89d2cce9863803b5ecb5 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Fri, 8 Sep 2023 14:41:00 -0400
+Subject: [PATCH] selftest-hello: remove helloworld.c
+
+This should fail the test_src_uri_left_files selftest.
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../recipes-test/selftest-hello/selftest-hello_1.0.bb | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..f6817f05bc 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -3,8 +3,6 @@ SECTION = "examples"
+ LICENSE = "MIT"
+ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+-SRC_URI = "file://helloworld.c"
+-
+ S = "${WORKDIR}"
+
+ do_compile() {
+@@ -16,4 +14,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/SrcUri.test_src_uri_left_files.pass b/poky/meta/lib/patchtest/selftest/files/SrcUri.test_src_uri_left_files.pass
new file mode 100644
index 0000000000..1f1a77e581
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/SrcUri.test_src_uri_left_files.pass
@@ -0,0 +1,51 @@
+From 6c7ac367a873bf827c19b81085c943eace917a99 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Fri, 8 Sep 2023 14:41:00 -0400
+Subject: [PATCH] selftest-hello: remove helloworld.c
+
+This should pass the test_src_uri_left_files selftest.
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ .../recipes-test/selftest-hello/files/helloworld.c | 8 --------
+ .../recipes-test/selftest-hello/selftest-hello_1.0.bb | 4 +---
+ 2 files changed, 1 insertion(+), 11 deletions(-)
+ delete mode 100644 meta-selftest/recipes-test/selftest-hello/files/helloworld.c
+
+diff --git a/meta-selftest/recipes-test/selftest-hello/files/helloworld.c b/meta-selftest/recipes-test/selftest-hello/files/helloworld.c
+deleted file mode 100644
+index fc7169b7b8..0000000000
+--- a/meta-selftest/recipes-test/selftest-hello/files/helloworld.c
++++ /dev/null
+@@ -1,8 +0,0 @@
+-#include <stdio.h>
+-
+-int main(void)
+-{
+- printf("Hello world!\n");
+-
+- return 0;
+-}
+diff --git a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+index 547587bef4..f6817f05bc 100644
+--- a/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
++++ b/meta-selftest/recipes-test/selftest-hello/selftest-hello_1.0.bb
+@@ -3,8 +3,6 @@ SECTION = "examples"
+ LICENSE = "MIT"
+ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+-SRC_URI = "file://helloworld.c"
+-
+ S = "${WORKDIR}"
+
+ do_compile() {
+@@ -16,4 +14,4 @@ do_install() {
+ install -m 0755 helloworld ${D}${bindir}
+ }
+
+-BBCLASSEXTEND = "native nativesdk"
+\ No newline at end of file
++BBCLASSEXTEND = "native nativesdk"
+--
+2.41.0
+
diff --git a/poky/meta/lib/patchtest/selftest/files/Summary.test_summary_presence.fail b/poky/meta/lib/patchtest/selftest/files/Summary.test_summary_presence.fail
new file mode 100644
index 0000000000..2d2b4e683d
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/Summary.test_summary_presence.fail
@@ -0,0 +1,46 @@
+From e29da5faa74409be394caa09d9f3b7b60f8592b9 Mon Sep 17 00:00:00 2001
+From: Daniela Plascencia <daniela.plascencia@linux.intel.com>
+Date: Thu, 23 Feb 2017 10:34:27 -0600
+Subject: [PATCH] meta: adding hello-yocto recipe
+
+This is a sample recipe
+
+Signed-off-by: Daniela Plascencia <daniela.plascencia@linux.intel.com>
+---
+ meta/recipes-devtools/hello-world/hello-world/hello_world.c | 5 +++++
+ meta/recipes-devtools/hello-world/hello-world_1.0.bb | 12 ++++++++++++
+ 2 files changed, 17 insertions(+)
+ create mode 100644 meta/recipes-devtools/hello-world/hello-world/hello_world.c
+ create mode 100644 meta/recipes-devtools/hello-world/hello-world_1.0.bb
+
+diff --git a/meta/recipes-devtools/hello-world/hello-world/hello_world.c b/meta/recipes-devtools/hello-world/hello-world/hello_world.c
+new file mode 100644
+index 0000000000..0d59f57d4c
+--- /dev/null
++++ b/meta/recipes-devtools/hello-world/hello-world/hello_world.c
+@@ -0,0 +1,5 @@
++#include <stdio.h>
++
++int main(){
++ printf("Hello World\n");
++}
+diff --git a/meta/recipes-devtools/hello-world/hello-world_1.0.bb b/meta/recipes-devtools/hello-world/hello-world_1.0.bb
+new file mode 100644
+index 0000000000..c4e1359217
+--- /dev/null
++++ b/meta/recipes-devtools/hello-world/hello-world_1.0.bb
+@@ -0,0 +1,12 @@
++LICENSE = "CLOSED"
++
++SRC_URI += "file://hello_world.c"
++
++do_compile(){
++ ${CC} -o hello_world ../hello_world.c
++}
++
++do_install(){
++ install -d ${D}${bindir}
++ install -m +x hello_world ${D}${bindir}/hello_world
++}
+--
+2.11.0
diff --git a/poky/meta/lib/patchtest/selftest/files/Summary.test_summary_presence.pass b/poky/meta/lib/patchtest/selftest/files/Summary.test_summary_presence.pass
new file mode 100644
index 0000000000..55f0309b3f
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/files/Summary.test_summary_presence.pass
@@ -0,0 +1,49 @@
+From 0cd2fed12ce4b7b071edde12aec4481ad7a6f107 Mon Sep 17 00:00:00 2001
+From: Daniela Plascencia <daniela.plascencia@linux.intel.com>
+Date: Thu, 23 Feb 2017 10:34:27 -0600
+Subject: [PATCH] meta: adding hello-yocto recipe
+
+This is a sample recipe
+
+Signed-off-by: Daniela Plascencia <daniela.plascencia@linux.intel.com>
+---
+ .../hello-world/hello-world/hello_world.c | 5 +++++
+ meta/recipes-devtools/hello-world/hello-world_1.0.bb | 15 +++++++++++++++
+ 2 files changed, 20 insertions(+)
+ create mode 100644 meta/recipes-devtools/hello-world/hello-world/hello_world.c
+ create mode 100644 meta/recipes-devtools/hello-world/hello-world_1.0.bb
+
+diff --git a/meta/recipes-devtools/hello-world/hello-world/hello_world.c b/meta/recipes-devtools/hello-world/hello-world/hello_world.c
+new file mode 100644
+index 0000000000..0d59f57d4c
+--- /dev/null
++++ b/meta/recipes-devtools/hello-world/hello-world/hello_world.c
+@@ -0,0 +1,5 @@
++#include <stdio.h>
++
++int main(){
++ printf("Hello World\n");
++}
+diff --git a/meta/recipes-devtools/hello-world/hello-world_1.0.bb b/meta/recipes-devtools/hello-world/hello-world_1.0.bb
+new file mode 100644
+index 0000000000..c54283eece
+--- /dev/null
++++ b/meta/recipes-devtools/hello-world/hello-world_1.0.bb
+@@ -0,0 +1,15 @@
++SUMMARY = "This is a sample summary"
++DESCRIPTION = "This is a sample description"
++HOMEPAGE = "https://sample.com/this-is-a-sample"
++LICENSE = "CLOSED"
++
++SRC_URI += "file://hello_world.c"
++
++do_compile(){
++ ${CC} -o hello_world ../hello_world.c
++}
++
++do_install(){
++ install -d ${D}${bindir}
++ install -m +x hello_world ${D}${bindir}/hello_world
++}
+--
+2.11.0
diff --git a/poky/meta/lib/patchtest/selftest/selftest b/poky/meta/lib/patchtest/selftest/selftest
new file mode 100755
index 0000000000..d2b61e951a
--- /dev/null
+++ b/poky/meta/lib/patchtest/selftest/selftest
@@ -0,0 +1,89 @@
+#!/usr/bin/env python3
+
+# Test every patch from files folder and output error on failure
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import os
+import subprocess
+import sys
+
+currentdir = os.path.dirname(os.path.abspath(__file__))
+patchesdir = os.path.join(currentdir, 'files')
+topdir = os.path.dirname(currentdir)
+parentdir = os.path.dirname(topdir)
+
+# path to the repo root
+repodir = os.path.dirname(os.path.dirname(parentdir))
+
+def print_results(passcount, skipcount, failcount, xpasscount, xfailcount, errorcount):
+ total = passcount + skipcount + failcount + xpasscount + xfailcount + errorcount
+ print("============================================================================")
+ print("Testsuite summary for %s" % os.path.basename(topdir))
+ print("============================================================================")
+ print("# TOTAL: %s" % str(total))
+ print("# XPASS: %s" % str(xpasscount))
+ print("# XFAIL: %s" % str(xfailcount))
+ print("# PASS: %s" % str(passcount))
+ print("# FAIL: %s" % str(failcount))
+ print("# SKIP: %s" % str(skipcount))
+ print("# ERROR: %s" % str(errorcount))
+ print("============================================================================")
+
+# Once the tests are in oe-core, we can remove the testdir param and use os.path.dirname to get relative paths
+def test(root, patch):
+ res = True
+ patchpath = os.path.abspath(os.path.join(root, patch))
+
+ cmd = 'patchtest %s %s/tests --patch %s' % (repodir, topdir, patchpath)
+ results = subprocess.check_output(cmd, stderr=subprocess.STDOUT, universal_newlines=True, shell=True)
+
+ return results
+
+if __name__ == '__main__':
+ passcount = 0
+ failcount = 0
+ skipcount = 0
+ xpasscount = 0
+ xfailcount = 0
+ errorcount = 0
+
+ results = None
+
+ for root, dirs, patches in os.walk(patchesdir):
+ for patch in patches:
+ results = test(root, patch)
+
+ a = patch.split('.')
+ klass, testname = a[0], a[1]
+ expected_result = a[-1]
+ testid = ".%s.%s" % (klass,testname)
+
+ for resultline in results.splitlines():
+ if testid in resultline:
+ result, _ = resultline.split(' ', 1)
+
+ if expected_result.upper() == "FAIL" and result.upper() == "FAIL":
+ xfailcount = xfailcount + 1
+ print("XFAIL: %s (file: %s)" % (testid.strip("."), os.path.basename(patch)))
+ elif expected_result.upper() == "PASS" and result.upper() == "PASS":
+ xpasscount = xpasscount + 1
+ print("XPASS: %s (file: %s)" % (testid.strip("."), os.path.basename(patch)))
+ else:
+ print("%s: %s (%s)" % (result.upper(), testid.strip("."), os.path.basename(patch)))
+ if result.upper() == "PASS":
+ passcount = passcount + 1
+ elif result.upper() == "FAIL":
+ failcount = failcount + 1
+ elif result.upper() == "SKIP":
+ skipcount = skipcount + 1
+ else:
+ print("Bad result on test %s against %s" % (testid.strip("."), os.path.basename(patch)))
+ errorcount = errorcount + 1
+ break
+ else:
+ print ("No test for=%s" % patch)
+
+ print_results(passcount, skipcount, failcount, xpasscount, xfailcount, errorcount)
diff --git a/poky/meta/lib/patchtest/tests/__init__.py b/poky/meta/lib/patchtest/tests/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/__init__.py
diff --git a/poky/meta/lib/patchtest/tests/base.py b/poky/meta/lib/patchtest/tests/base.py
new file mode 100644
index 0000000000..27db380353
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/base.py
@@ -0,0 +1,239 @@
+# Base class to be used by all test cases defined in the suite
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import unittest
+import logging
+import json
+import unidiff
+from data import PatchTestInput
+import mailbox
+import collections
+import sys
+import os
+import re
+
+sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'pyparsing'))
+
+logger = logging.getLogger('patchtest')
+debug=logger.debug
+info=logger.info
+warn=logger.warn
+error=logger.error
+
+Commit = collections.namedtuple('Commit', ['author', 'subject', 'commit_message', 'shortlog', 'payload'])
+
+class PatchtestOEError(Exception):
+ """Exception for handling patchtest-oe errors"""
+ def __init__(self, message, exitcode=1):
+ super().__init__(message)
+ self.exitcode = exitcode
+
+class Base(unittest.TestCase):
+ # if unit test fails, fail message will throw at least the following JSON: {"id": <testid>}
+
+ endcommit_messages_regex = re.compile('\(From \w+-\w+ rev:|(?<!\S)Signed-off-by|(?<!\S)---\n')
+ patchmetadata_regex = re.compile('-{3} \S+|\+{3} \S+|@{2} -\d+,\d+ \+\d+,\d+ @{2} \S+')
+
+
+ @staticmethod
+ def msg_to_commit(msg):
+ payload = msg.get_payload()
+ return Commit(subject=msg['subject'].replace('\n', ' ').replace(' ', ' '),
+ author=msg.get('From'),
+ shortlog=Base.shortlog(msg['subject']),
+ commit_message=Base.commit_message(payload),
+ payload=payload)
+
+ @staticmethod
+ def commit_message(payload):
+ commit_message = payload.__str__()
+ match = Base.endcommit_messages_regex.search(payload)
+ if match:
+ commit_message = payload[:match.start()]
+ return commit_message
+
+ @staticmethod
+ def shortlog(shlog):
+ # remove possible prefix (between brackets) before colon
+ start = shlog.find(']', 0, shlog.find(':'))
+ # remove also newlines and spaces at both sides
+ return shlog[start + 1:].replace('\n', '').strip()
+
+ @classmethod
+ def setUpClass(cls):
+
+ # General objects: mailbox.mbox and patchset
+ cls.mbox = mailbox.mbox(PatchTestInput.repo.patch)
+
+ # Patch may be malformed, so try parsing it
+ cls.unidiff_parse_error = ''
+ cls.patchset = None
+ try:
+ cls.patchset = unidiff.PatchSet.from_filename(PatchTestInput.repo.patch, encoding=u'UTF-8')
+ except unidiff.UnidiffParseError as upe:
+ cls.patchset = []
+ cls.unidiff_parse_error = str(upe)
+
+ # Easy to iterate list of commits
+ cls.commits = []
+ for msg in cls.mbox:
+ if msg['subject'] and msg.get_payload():
+ cls.commits.append(Base.msg_to_commit(msg))
+
+ cls.setUpClassLocal()
+
+ @classmethod
+ def tearDownClass(cls):
+ cls.tearDownClassLocal()
+
+ @classmethod
+ def setUpClassLocal(cls):
+ pass
+
+ @classmethod
+ def tearDownClassLocal(cls):
+ pass
+
+ def fail(self, issue, fix=None, commit=None, data=None):
+ """ Convert to a JSON string failure data"""
+ value = {'id': self.id(),
+ 'issue': issue}
+
+ if fix:
+ value['fix'] = fix
+ if commit:
+ value['commit'] = {'subject': commit.subject,
+ 'shortlog': commit.shortlog}
+
+ # extend return value with other useful info
+ if data:
+ value['data'] = data
+
+ return super(Base, self).fail(json.dumps(value))
+
+ def skip(self, issue, data=None):
+ """ Convert the skip string to JSON"""
+ value = {'id': self.id(),
+ 'issue': issue}
+
+ # extend return value with other useful info
+ if data:
+ value['data'] = data
+
+ return super(Base, self).skipTest(json.dumps(value))
+
+ def shortid(self):
+ return self.id().split('.')[-1]
+
+ def __str__(self):
+ return json.dumps({'id': self.id()})
+
+class Metadata(Base):
+ @classmethod
+ def setUpClassLocal(cls):
+ cls.tinfoil = cls.setup_tinfoil()
+
+ # get info about added/modified/remove recipes
+ cls.added, cls.modified, cls.removed = cls.get_metadata_stats(cls.patchset)
+
+ @classmethod
+ def tearDownClassLocal(cls):
+ cls.tinfoil.shutdown()
+
+ @classmethod
+ def setup_tinfoil(cls, config_only=False):
+ """Initialize tinfoil api from bitbake"""
+
+ # import relevant libraries
+ try:
+ scripts_path = os.path.join(PatchTestInput.repodir, 'scripts', 'lib')
+ if scripts_path not in sys.path:
+ sys.path.insert(0, scripts_path)
+ import scriptpath
+ scriptpath.add_bitbake_lib_path()
+ import bb.tinfoil
+ except ImportError:
+ raise PatchtestOEError('Could not import tinfoil module')
+
+ orig_cwd = os.path.abspath(os.curdir)
+
+ # Load tinfoil
+ tinfoil = None
+ try:
+ builddir = os.environ.get('BUILDDIR')
+ if not builddir:
+ logger.warn('Bitbake environment not loaded?')
+ return tinfoil
+ os.chdir(builddir)
+ tinfoil = bb.tinfoil.Tinfoil()
+ tinfoil.prepare(config_only=config_only)
+ except bb.tinfoil.TinfoilUIException as te:
+ if tinfoil:
+ tinfoil.shutdown()
+ raise PatchtestOEError('Could not prepare properly tinfoil (TinfoilUIException)')
+ except Exception as e:
+ if tinfoil:
+ tinfoil.shutdown()
+ raise e
+ finally:
+ os.chdir(orig_cwd)
+
+ return tinfoil
+
+ @classmethod
+ def get_metadata_stats(cls, patchset):
+ """Get lists of added, modified and removed metadata files"""
+
+ def find_pn(data, path):
+ """Find the PN from data"""
+ pn = None
+ pn_native = None
+ for _path, _pn in data:
+ if path in _path:
+ if 'native' in _pn:
+ # store the native PN but look for the non-native one first
+ pn_native = _pn
+ else:
+ pn = _pn
+ break
+ else:
+ # sent the native PN if found previously
+ if pn_native:
+ return pn_native
+
+ # on renames (usually upgrades), we need to check (FILE) base names
+ # because the unidiff library does not provided the new filename, just the modified one
+ # and tinfoil datastore, once the patch is merged, will contain the new filename
+ path_basename = path.split('_')[0]
+ for _path, _pn in data:
+ _path_basename = _path.split('_')[0]
+ if path_basename == _path_basename:
+ pn = _pn
+ return pn
+
+ if not cls.tinfoil:
+ cls.tinfoil = cls.setup_tinfoil()
+
+ added_paths, modified_paths, removed_paths = [], [], []
+ added, modified, removed = [], [], []
+
+ # get metadata filename additions, modification and removals
+ for patch in patchset:
+ if patch.path.endswith('.bb') or patch.path.endswith('.bbappend') or patch.path.endswith('.inc'):
+ if patch.is_added_file:
+ added_paths.append(os.path.join(os.path.abspath(PatchTestInput.repodir), patch.path))
+ elif patch.is_modified_file:
+ modified_paths.append(os.path.join(os.path.abspath(PatchTestInput.repodir), patch.path))
+ elif patch.is_removed_file:
+ removed_paths.append(os.path.join(os.path.abspath(PatchTestInput.repodir), patch.path))
+
+ data = cls.tinfoil.cooker.recipecaches[''].pkg_fn.items()
+
+ added = [find_pn(data,path) for path in added_paths]
+ modified = [find_pn(data,path) for path in modified_paths]
+ removed = [find_pn(data,path) for path in removed_paths]
+
+ return [a for a in added if a], [m for m in modified if m], [r for r in removed if r]
diff --git a/poky/meta/lib/patchtest/tests/pyparsing/common.py b/poky/meta/lib/patchtest/tests/pyparsing/common.py
new file mode 100644
index 0000000000..9d37b0403d
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/pyparsing/common.py
@@ -0,0 +1,26 @@
+# common pyparsing variables
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import pyparsing
+
+# general
+colon = pyparsing.Literal(":")
+start = pyparsing.LineStart()
+end = pyparsing.LineEnd()
+at = pyparsing.Literal("@")
+lessthan = pyparsing.Literal("<")
+greaterthan = pyparsing.Literal(">")
+opensquare = pyparsing.Literal("[")
+closesquare = pyparsing.Literal("]")
+inappropriate = pyparsing.CaselessLiteral("Inappropriate")
+submitted = pyparsing.CaselessLiteral("Submitted")
+
+# word related
+nestexpr = pyparsing.nestedExpr(opener='[', closer=']')
+inappropriateinfo = pyparsing.Literal("Inappropriate") + nestexpr
+submittedinfo = pyparsing.Literal("Submitted") + nestexpr
+word = pyparsing.Word(pyparsing.alphas)
+worddot = pyparsing.Word(pyparsing.alphas+".")
diff --git a/poky/meta/lib/patchtest/tests/pyparsing/parse_cve_tags.py b/poky/meta/lib/patchtest/tests/pyparsing/parse_cve_tags.py
new file mode 100644
index 0000000000..dd7131a650
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/pyparsing/parse_cve_tags.py
@@ -0,0 +1,18 @@
+# signed-off-by pyparsing definition
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+
+import pyparsing
+import common
+
+name = pyparsing.Regex('\S+.*(?= <)')
+username = pyparsing.OneOrMore(common.worddot)
+domain = pyparsing.OneOrMore(common.worddot)
+cve = pyparsing.Regex('CVE\-\d{4}\-\d+')
+cve_mark = pyparsing.Literal("CVE:")
+
+cve_tag = pyparsing.AtLineStart(cve_mark + cve)
+patch_cve_tag = pyparsing.AtLineStart("+" + cve_mark + cve)
diff --git a/poky/meta/lib/patchtest/tests/pyparsing/parse_shortlog.py b/poky/meta/lib/patchtest/tests/pyparsing/parse_shortlog.py
new file mode 100644
index 0000000000..26e9612c4a
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/pyparsing/parse_shortlog.py
@@ -0,0 +1,14 @@
+# subject pyparsing definition
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+# NOTE:This is an oversimplified syntax of the mbox's summary
+
+import pyparsing
+import common
+
+target = pyparsing.OneOrMore(pyparsing.Word(pyparsing.printables.replace(':','')))
+summary = pyparsing.OneOrMore(pyparsing.Word(pyparsing.printables))
+shortlog = common.start + target + common.colon + summary + common.end
diff --git a/poky/meta/lib/patchtest/tests/pyparsing/parse_signed_off_by.py b/poky/meta/lib/patchtest/tests/pyparsing/parse_signed_off_by.py
new file mode 100644
index 0000000000..c8a4351551
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/pyparsing/parse_signed_off_by.py
@@ -0,0 +1,22 @@
+# signed-off-by pyparsing definition
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+
+import pyparsing
+import common
+
+name = pyparsing.Regex('\S+.*(?= <)')
+username = pyparsing.OneOrMore(common.worddot)
+domain = pyparsing.OneOrMore(common.worddot)
+
+# taken from https://pyparsing-public.wikispaces.com/Helpful+Expressions
+email = pyparsing.Regex(r"(?P<user>[A-Za-z0-9._%+-]+)@(?P<hostname>[A-Za-z0-9.-]+)\.(?P<domain>[A-Za-z]{2,})")
+
+email_enclosed = common.lessthan + email + common.greaterthan
+
+signed_off_by_mark = pyparsing.Literal("Signed-off-by:")
+signed_off_by = pyparsing.AtLineStart(signed_off_by_mark + name + email_enclosed)
+patch_signed_off_by = pyparsing.AtLineStart("+" + signed_off_by_mark + name + email_enclosed)
diff --git a/poky/meta/lib/patchtest/tests/pyparsing/parse_upstream_status.py b/poky/meta/lib/patchtest/tests/pyparsing/parse_upstream_status.py
new file mode 100644
index 0000000000..d63567efbe
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/pyparsing/parse_upstream_status.py
@@ -0,0 +1,24 @@
+# upstream-status pyparsing definition
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+
+import common
+import pyparsing
+
+upstream_status_literal_valid_status = ["Pending", "Backport", "Denied", "Inappropriate", "Submitted"]
+upstream_status_nonliteral_valid_status = ["Pending", "Backport", "Denied", "Inappropriate [reason]", "Submitted [where]"]
+
+upstream_status_valid_status = pyparsing.Or(
+ [pyparsing.Literal(status) for status in upstream_status_literal_valid_status]
+)
+
+upstream_status_mark = pyparsing.Literal("Upstream-Status")
+inappropriate_status_mark = common.inappropriate
+submitted_status_mark = common.submitted
+
+upstream_status = common.start + upstream_status_mark + common.colon + upstream_status_valid_status
+upstream_status_inappropriate_info = common.start + upstream_status_mark + common.colon + common.inappropriateinfo
+upstream_status_submitted_info = common.start + upstream_status_mark + common.colon + common.submittedinfo
diff --git a/poky/meta/lib/patchtest/tests/test_mbox_author.py b/poky/meta/lib/patchtest/tests/test_mbox_author.py
new file mode 100644
index 0000000000..6c79f164d4
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/test_mbox_author.py
@@ -0,0 +1,29 @@
+# Checks related to the patch's author
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import base
+import re
+
+class Author(base.Base):
+
+ auh_email = '<auh@auh.yoctoproject.org>'
+
+ invalids = [re.compile("^Upgrade Helper.+"),
+ re.compile(re.escape(auh_email)),
+ re.compile("uh@not\.set"),
+ re.compile("\S+@example\.com")]
+
+
+ def test_author_valid(self):
+ for commit in self.commits:
+ for invalid in self.invalids:
+ if invalid.search(commit.author):
+ self.fail('Invalid author %s' % commit.author, 'Resend the series with a valid patch\'s author', commit)
+
+ def test_non_auh_upgrade(self):
+ for commit in self.commits:
+ if self.auh_email in commit.payload:
+ self.fail('Invalid author %s in commit message' % self.auh_email, 'Resend the series with a valid patch\'s author', commit)
diff --git a/poky/meta/lib/patchtest/tests/test_mbox_bugzilla.py b/poky/meta/lib/patchtest/tests/test_mbox_bugzilla.py
new file mode 100644
index 0000000000..e8de48bb8d
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/test_mbox_bugzilla.py
@@ -0,0 +1,22 @@
+# Checks related to the patch's bugzilla tag
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import re
+import base
+
+class Bugzilla(base.Base):
+ rexp_detect = re.compile("\[\s?YOCTO.*\]", re.IGNORECASE)
+ rexp_validation = re.compile("\[(\s?YOCTO\s?#\s?(\d+)\s?,?)+\]", re.IGNORECASE)
+
+ def test_bugzilla_entry_format(self):
+ for commit in Bugzilla.commits:
+ for line in commit.commit_message.splitlines():
+ if self.rexp_detect.match(line):
+ if not self.rexp_validation.match(line):
+ self.fail('Yocto Project bugzilla tag is not correctly formatted',
+ 'Specify bugzilla ID in commit description with format: "[YOCTO #<bugzilla ID>]"',
+ commit)
+
diff --git a/poky/meta/lib/patchtest/tests/test_mbox_cve.py b/poky/meta/lib/patchtest/tests/test_mbox_cve.py
new file mode 100644
index 0000000000..f99194c094
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/test_mbox_cve.py
@@ -0,0 +1,49 @@
+# Checks related to the patch's CVE lines
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+import base
+import os
+import parse_cve_tags
+import re
+
+class CVE(base.Base):
+
+ revert_shortlog_regex = re.compile('Revert\s+".*"')
+ prog = parse_cve_tags.cve_tag
+
+ def setUp(self):
+ if self.unidiff_parse_error:
+ self.skip('Parse error %s' % self.unidiff_parse_error)
+
+ # we are just interested in series that introduce CVE patches, thus discard other
+ # possibilities: modification to current CVEs, patch directly introduced into the
+ # recipe, upgrades already including the CVE, etc.
+ new_cves = [p for p in self.patchset if p.path.endswith('.patch') and p.is_added_file]
+ if not new_cves:
+ self.skip('No new CVE patches introduced')
+
+ def test_cve_presence_in_commit_message(self):
+ for commit in CVE.commits:
+ # skip those patches that revert older commits, these do not required the tag presence
+ if self.revert_shortlog_regex.match(commit.shortlog):
+ continue
+ if not self.prog.search_string(commit.payload):
+ self.fail('Missing or incorrectly formatted CVE tag in mbox',
+ 'Correct or include the CVE tag in the mbox with format: "CVE: CVE-YYYY-XXXX"',
+ commit)
diff --git a/poky/meta/lib/patchtest/tests/test_mbox_description.py b/poky/meta/lib/patchtest/tests/test_mbox_description.py
new file mode 100644
index 0000000000..7addc6b5f7
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/test_mbox_description.py
@@ -0,0 +1,17 @@
+# Checks related to the patch's commit_message
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import base
+
+class CommitMessage(base.Base):
+
+ def test_commit_message_presence(self):
+ for commit in CommitMessage.commits:
+ if not commit.commit_message.strip():
+ self.fail('Patch is missing a descriptive commit message',
+ 'Please include a commit message on your patch explaining the change (most importantly why the change is being made)',
+ commit)
+
diff --git a/poky/meta/lib/patchtest/tests/test_mbox_format.py b/poky/meta/lib/patchtest/tests/test_mbox_format.py
new file mode 100644
index 0000000000..85c452ca0d
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/test_mbox_format.py
@@ -0,0 +1,16 @@
+# Checks correct parsing of mboxes
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import base
+import re
+
+class MboxFormat(base.Base):
+
+ def test_mbox_format(self):
+ if self.unidiff_parse_error:
+ self.fail('Series cannot be parsed correctly due to malformed diff lines',
+ 'Create the series again using git-format-patch and ensure it can be applied using git am',
+ data=[('Diff line', re.sub('^.+:\s(?<!$)','',self.unidiff_parse_error))])
diff --git a/poky/meta/lib/patchtest/tests/test_mbox_mailinglist.py b/poky/meta/lib/patchtest/tests/test_mbox_mailinglist.py
new file mode 100644
index 0000000000..de38e205b1
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/test_mbox_mailinglist.py
@@ -0,0 +1,64 @@
+# Check if the series was intended for other project (not OE-Core)
+#
+# Copyright (C) 2017 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import subprocess
+import collections
+import base
+import re
+from data import PatchTestInput
+
+class MailingList(base.Base):
+
+ # base paths of main yocto project sub-projects
+ paths = {
+ 'oe-core': ['meta-selftest', 'meta-skeleton', 'meta', 'scripts'],
+ 'bitbake': ['bitbake'],
+ 'documentation': ['documentation'],
+ 'poky': ['meta-poky','meta-yocto-bsp'],
+ 'oe': ['meta-gpe', 'meta-gnome', 'meta-efl', 'meta-networking', 'meta-multimedia','meta-initramfs', 'meta-ruby', 'contrib', 'meta-xfce', 'meta-filesystems', 'meta-perl', 'meta-webserver', 'meta-systemd', 'meta-oe', 'meta-python']
+ }
+
+ # scripts folder is a mix of oe-core and poky, most is oe-core code except:
+ poky_scripts = ['scripts/yocto-bsp', 'scripts/yocto-kernel', 'scripts/yocto-layer', 'scripts/lib/bsp']
+
+ Project = collections.namedtuple('Project', ['name', 'listemail', 'gitrepo', 'paths'])
+
+ bitbake = Project(name='Bitbake', listemail='bitbake-devel@lists.openembedded.org', gitrepo='http://git.openembedded.org/bitbake/', paths=paths['bitbake'])
+ doc = Project(name='Documentantion', listemail='yocto@yoctoproject.org', gitrepo='http://git.yoctoproject.org/cgit/cgit.cgi/yocto-docs/', paths=paths['documentation'])
+ poky = Project(name='Poky', listemail='poky@yoctoproject.org', gitrepo='http://git.yoctoproject.org/cgit/cgit.cgi/poky/', paths=paths['poky'])
+ oe = Project(name='oe', listemail='openembedded-devel@lists.openembedded.org', gitrepo='http://git.openembedded.org/meta-openembedded/', paths=paths['oe'])
+
+
+ def test_target_mailing_list(self):
+ """In case of merge failure, check for other targeted projects"""
+ if PatchTestInput.repo.ismerged:
+ self.skip('Series merged, no reason to check other mailing lists')
+
+ # a meta project may be indicted in the message subject, if this is the case, just fail
+ # TODO: there may be other project with no-meta prefix, we also need to detect these
+ project_regex = re.compile("\[(?P<project>meta-.+)\]")
+ for commit in MailingList.commits:
+ match = project_regex.match(commit.subject)
+ if match:
+ self.fail('Series sent to the wrong mailing list',
+ 'Check the project\'s README (%s) and send the patch to the indicated list' % match.group('project'),
+ commit)
+
+ for patch in self.patchset:
+ folders = patch.path.split('/')
+ base_path = folders[0]
+ for project in [self.bitbake, self.doc, self.oe, self.poky]:
+ if base_path in project.paths:
+ self.fail('Series sent to the wrong mailing list or some patches from the series correspond to different mailing lists', 'Send the series again to the correct mailing list (ML)',
+ data=[('Suggested ML', '%s [%s]' % (project.listemail, project.gitrepo)),
+ ('Patch\'s path:', patch.path)])
+
+ # check for poky's scripts code
+ if base_path.startswith('scripts'):
+ for poky_file in self.poky_scripts:
+ if patch.path.startswith(poky_file):
+ self.fail('Series sent to the wrong mailing list or some patches from the series correspond to different mailing lists', 'Send the series again to the correct mailing list (ML)',
+ data=[('Suggested ML', '%s [%s]' % (self.poky.listemail, self.poky.gitrepo)),('Patch\'s path:', patch.path)])
diff --git a/poky/meta/lib/patchtest/tests/test_mbox_merge.py b/poky/meta/lib/patchtest/tests/test_mbox_merge.py
new file mode 100644
index 0000000000..c8b6718d15
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/test_mbox_merge.py
@@ -0,0 +1,25 @@
+# Check if mbox was merged by patchtest
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import subprocess
+import base
+from data import PatchTestInput
+
+def headlog():
+ output = subprocess.check_output(
+ "cd %s; git log --pretty='%%h#%%aN#%%cD:#%%s' -1" % PatchTestInput.repodir,
+ universal_newlines=True,
+ shell=True
+ )
+ return output.split('#')
+
+class Merge(base.Base):
+ def test_series_merge_on_head(self):
+ if not PatchTestInput.repo.ismerged:
+ commithash, author, date, shortlog = headlog()
+ self.fail('Series does not apply on top of target branch',
+ 'Rebase your series on top of targeted branch',
+ data=[('Targeted branch', '%s (currently at %s)' % (PatchTestInput.repo.branch, commithash))])
diff --git a/poky/meta/lib/patchtest/tests/test_mbox_shortlog.py b/poky/meta/lib/patchtest/tests/test_mbox_shortlog.py
new file mode 100644
index 0000000000..b6c2a209ff
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/test_mbox_shortlog.py
@@ -0,0 +1,41 @@
+# Checks related to the patch's summary
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import base
+import parse_shortlog
+import pyparsing
+
+maxlength = 90
+
+class Shortlog(base.Base):
+
+ def test_shortlog_format(self):
+ for commit in Shortlog.commits:
+ shortlog = commit.shortlog
+ if not shortlog.strip():
+ self.skip('Empty shortlog, no reason to execute shortlog format test')
+ else:
+ # no reason to re-check on revert shortlogs
+ if shortlog.startswith('Revert "'):
+ continue
+ try:
+ parse_shortlog.shortlog.parseString(shortlog)
+ except pyparsing.ParseException as pe:
+ self.fail('Shortlog does not follow expected format',
+ 'Commit shortlog (first line of commit message) should follow the format "<target>: <summary>"',
+ commit)
+
+ def test_shortlog_length(self):
+ for commit in Shortlog.commits:
+ # no reason to re-check on revert shortlogs
+ shortlog = commit.shortlog
+ if shortlog.startswith('Revert "'):
+ continue
+ l = len(shortlog)
+ if l > maxlength:
+ self.fail('Commit shortlog is too long',
+ 'Edit shortlog so that it is %d characters or less (currently %d characters)' % (maxlength, l),
+ commit)
diff --git a/poky/meta/lib/patchtest/tests/test_mbox_signed_off_by.py b/poky/meta/lib/patchtest/tests/test_mbox_signed_off_by.py
new file mode 100644
index 0000000000..6458951f1c
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/test_mbox_signed_off_by.py
@@ -0,0 +1,28 @@
+# Checks related to the patch's signed-off-by lines
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import base
+import parse_signed_off_by
+import re
+
+class SignedOffBy(base.Base):
+
+ revert_shortlog_regex = re.compile('Revert\s+".*"')
+
+ @classmethod
+ def setUpClassLocal(cls):
+ # match self.mark with no '+' preceding it
+ cls.prog = parse_signed_off_by.signed_off_by
+
+ def test_signed_off_by_presence(self):
+ for commit in SignedOffBy.commits:
+ # skip those patches that revert older commits, these do not required the tag presence
+ if self.revert_shortlog_regex.match(commit.shortlog):
+ continue
+ if not SignedOffBy.prog.search_string(commit.payload):
+ self.fail('Patch is missing Signed-off-by',
+ 'Sign off the patch (either manually or with "git commit --amend -s")',
+ commit)
diff --git a/poky/meta/lib/patchtest/tests/test_metadata_lic_files_chksum.py b/poky/meta/lib/patchtest/tests/test_metadata_lic_files_chksum.py
new file mode 100644
index 0000000000..e9a5b6bb4e
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/test_metadata_lic_files_chksum.py
@@ -0,0 +1,82 @@
+# Checks related to the patch's LIC_FILES_CHKSUM metadata variable
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import base
+import re
+from data import PatchTestInput, PatchTestDataStore
+
+class LicFilesChkSum(base.Metadata):
+ metadata = 'LIC_FILES_CHKSUM'
+ license = 'LICENSE'
+ closed = 'CLOSED'
+ lictag = 'License-Update'
+ lictag_re = re.compile("^%s:" % lictag, re.MULTILINE)
+
+ def setUp(self):
+ # these tests just make sense on patches that can be merged
+ if not PatchTestInput.repo.canbemerged:
+ self.skip('Patch cannot be merged')
+
+ def test_lic_files_chksum_presence(self):
+ if not self.added:
+ self.skip('No added recipes, skipping test')
+
+ for pn in self.added:
+ rd = self.tinfoil.parse_recipe(pn)
+ pathname = rd.getVar('FILE')
+ # we are not interested in images
+ if '/images/' in pathname:
+ continue
+ lic_files_chksum = rd.getVar(self.metadata)
+ if rd.getVar(self.license) == self.closed:
+ continue
+ if not lic_files_chksum:
+ self.fail('%s is missing in newly added recipe' % self.metadata,
+ 'Specify the variable %s in %s' % (self.metadata, pn))
+
+ def pretest_lic_files_chksum_modified_not_mentioned(self):
+ if not self.modified:
+ self.skip('No modified recipes, skipping pretest')
+ # get the proper metadata values
+ for pn in self.modified:
+ rd = self.tinfoil.parse_recipe(pn)
+ pathname = rd.getVar('FILE')
+ # we are not interested in images
+ if '/images/' in pathname:
+ continue
+ PatchTestDataStore['%s-%s-%s' % (self.shortid(),self.metadata,pn)] = rd.getVar(self.metadata)
+
+ def test_lic_files_chksum_modified_not_mentioned(self):
+ if not self.modified:
+ self.skip('No modified recipes, skipping test')
+
+ # get the proper metadata values
+ for pn in self.modified:
+ rd = self.tinfoil.parse_recipe(pn)
+ pathname = rd.getVar('FILE')
+ # we are not interested in images
+ if '/images/' in pathname:
+ continue
+ PatchTestDataStore['%s-%s-%s' % (self.shortid(),self.metadata,pn)] = rd.getVar(self.metadata)
+ # compare if there were changes between pre-merge and merge
+ for pn in self.modified:
+ pretest = PatchTestDataStore['pre%s-%s-%s' % (self.shortid(),self.metadata, pn)]
+ test = PatchTestDataStore['%s-%s-%s' % (self.shortid(),self.metadata, pn)]
+
+ # TODO: this is workaround to avoid false-positives when pretest metadata is empty (not reason found yet)
+ # For more info, check bug 12284
+ if not pretest:
+ return
+
+ if pretest != test:
+ # if any patch on the series contain reference on the metadata, fail
+ for commit in self.commits:
+ if self.lictag_re.search(commit.commit_message):
+ break
+ else:
+ self.fail('LIC_FILES_CHKSUM changed on target %s but there is no "%s" tag in commit message' % (pn, self.lictag),
+ 'Include "%s: <description>" into the commit message with a brief description' % self.lictag,
+ data=[('Current checksum', pretest), ('New checksum', test)])
diff --git a/poky/meta/lib/patchtest/tests/test_metadata_license.py b/poky/meta/lib/patchtest/tests/test_metadata_license.py
new file mode 100644
index 0000000000..16604dbfb1
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/test_metadata_license.py
@@ -0,0 +1,55 @@
+# Checks related to the patch's LIC_FILES_CHKSUM metadata variable
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import base
+import os
+from data import PatchTestInput
+
+class License(base.Metadata):
+ metadata = 'LICENSE'
+ invalid_license = 'PATCHTESTINVALID'
+
+ def setUp(self):
+ # these tests just make sense on patches that can be merged
+ if not PatchTestInput.repo.canbemerged:
+ self.skip('Patch cannot be merged')
+
+ def test_license_presence(self):
+ if not self.added:
+ self.skip('No added recipes, skipping test')
+
+ # TODO: this is a workaround so we can parse the recipe not
+ # containing the LICENSE var: add some default license instead
+ # of INVALID into auto.conf, then remove this line at the end
+ auto_conf = os.path.join(os.environ.get('BUILDDIR'), 'conf', 'auto.conf')
+ open_flag = 'w'
+ if os.path.exists(auto_conf):
+ open_flag = 'a'
+ with open(auto_conf, open_flag) as fd:
+ for pn in self.added:
+ fd.write('LICENSE ??= "%s"\n' % self.invalid_license)
+
+ no_license = False
+ for pn in self.added:
+ rd = self.tinfoil.parse_recipe(pn)
+ license = rd.getVar(self.metadata)
+ if license == self.invalid_license:
+ no_license = True
+ break
+
+ # remove auto.conf line or the file itself
+ if open_flag == 'w':
+ os.remove(auto_conf)
+ else:
+ fd = open(auto_conf, 'r')
+ lines = fd.readlines()
+ fd.close()
+ with open(auto_conf, 'w') as fd:
+ fd.write(''.join(lines[:-1]))
+
+ if no_license:
+ self.fail('Recipe does not have the LICENSE field set', 'Include a LICENSE into the new recipe')
+
diff --git a/poky/meta/lib/patchtest/tests/test_metadata_max_length.py b/poky/meta/lib/patchtest/tests/test_metadata_max_length.py
new file mode 100644
index 0000000000..04a5e23469
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/test_metadata_max_length.py
@@ -0,0 +1,26 @@
+# Checks related to patch line lengths
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import base
+import re
+
+class MaxLength(base.Base):
+ add_mark = re.compile('\+ ')
+ max_length = 200
+
+ def test_max_line_length(self):
+ for patch in self.patchset:
+ # for the moment, we are just interested in metadata
+ if patch.path.endswith('.patch'):
+ continue
+ payload = str(patch)
+ for line in payload.splitlines():
+ if self.add_mark.match(line):
+ current_line_length = len(line[1:])
+ if current_line_length > self.max_length:
+ self.fail('Patch line too long (current length %s)' % current_line_length,
+ 'Shorten the corresponding patch line (max length supported %s)' % self.max_length,
+ data=[('Patch', patch.path), ('Line', '%s ...' % line[0:80])])
diff --git a/poky/meta/lib/patchtest/tests/test_metadata_src_uri.py b/poky/meta/lib/patchtest/tests/test_metadata_src_uri.py
new file mode 100644
index 0000000000..718229d7ad
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/test_metadata_src_uri.py
@@ -0,0 +1,75 @@
+# Checks related to the patch's SRC_URI metadata variable
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import subprocess
+import base
+import re
+import os
+from data import PatchTestInput, PatchTestDataStore
+
+class SrcUri(base.Metadata):
+
+ metadata = 'SRC_URI'
+ md5sum = 'md5sum'
+ sha256sum = 'sha256sum'
+ git_regex = re.compile('^git\:\/\/.*')
+
+ def setUp(self):
+ # these tests just make sense on patches that can be merged
+ if not PatchTestInput.repo.canbemerged:
+ self.skip('Patch cannot be merged')
+
+ def pretest_src_uri_left_files(self):
+ if not self.modified:
+ self.skip('No modified recipes, skipping pretest')
+
+ # get the proper metadata values
+ for pn in self.modified:
+ # we are not interested in images
+ if 'core-image' in pn:
+ continue
+ rd = self.tinfoil.parse_recipe(pn)
+ PatchTestDataStore['%s-%s-%s' % (self.shortid(), self.metadata, pn)] = rd.getVar(self.metadata)
+
+ def test_src_uri_left_files(self):
+ if not self.modified:
+ self.skip('No modified recipes, skipping pretest')
+
+ # get the proper metadata values
+ for pn in self.modified:
+ # we are not interested in images
+ if 'core-image' in pn:
+ continue
+ rd = self.tinfoil.parse_recipe(pn)
+ PatchTestDataStore['%s-%s-%s' % (self.shortid(), self.metadata, pn)] = rd.getVar(self.metadata)
+
+ for pn in self.modified:
+ pretest_src_uri = PatchTestDataStore['pre%s-%s-%s' % (self.shortid(), self.metadata, pn)].split()
+ test_src_uri = PatchTestDataStore['%s-%s-%s' % (self.shortid(), self.metadata, pn)].split()
+
+ pretest_files = set([os.path.basename(patch) for patch in pretest_src_uri if patch.startswith('file://')])
+ test_files = set([os.path.basename(patch) for patch in test_src_uri if patch.startswith('file://')])
+
+ # check if files were removed
+ if len(test_files) < len(pretest_files):
+
+ # get removals from patchset
+ filesremoved_from_patchset = set()
+ for patch in self.patchset:
+ if patch.is_removed_file:
+ filesremoved_from_patchset.add(os.path.basename(patch.path))
+
+ # get the deleted files from the SRC_URI
+ filesremoved_from_usr_uri = pretest_files - test_files
+
+ # finally, get those patches removed at SRC_URI and not removed from the patchset
+ # TODO: we are not taking into account renames, so test may raise false positives
+ not_removed = filesremoved_from_usr_uri - filesremoved_from_patchset
+ if not_removed:
+ self.fail('Patches not removed from tree',
+ 'Amend the patch containing the software patch file removal',
+ data=[('Patch', f) for f in not_removed])
+
diff --git a/poky/meta/lib/patchtest/tests/test_metadata_summary.py b/poky/meta/lib/patchtest/tests/test_metadata_summary.py
new file mode 100644
index 0000000000..931b26768e
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/test_metadata_summary.py
@@ -0,0 +1,32 @@
+# Checks related to the patch's summary metadata variable
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import base
+from data import PatchTestInput
+
+class Summary(base.Metadata):
+ metadata = 'SUMMARY'
+
+ def setUp(self):
+ # these tests just make sense on patches that can be merged
+ if not PatchTestInput.repo.canbemerged:
+ self.skip('Patch cannot be merged')
+
+ def test_summary_presence(self):
+ if not self.added:
+ self.skip('No added recipes, skipping test')
+
+ for pn in self.added:
+ # we are not interested in images
+ if 'core-image' in pn:
+ continue
+ rd = self.tinfoil.parse_recipe(pn)
+ summary = rd.getVar(self.metadata)
+
+ # "${PN} version ${PN}-${PR}" is the default, so fail if default
+ if summary.startswith('%s version' % pn):
+ self.fail('%s is missing in newly added recipe' % self.metadata,
+ 'Specify the variable %s in %s' % (self.metadata, pn))
diff --git a/poky/meta/lib/patchtest/tests/test_patch_cve.py b/poky/meta/lib/patchtest/tests/test_patch_cve.py
new file mode 100644
index 0000000000..46ed9ef791
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/test_patch_cve.py
@@ -0,0 +1,51 @@
+# Checks related to the patch's CVE lines
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+import base
+import os
+import re
+
+class CVE(base.Base):
+
+ re_cve_pattern = re.compile("CVE\-\d{4}\-\d+", re.IGNORECASE)
+ re_cve_payload_tag = re.compile("\+CVE:(\s+CVE\-\d{4}\-\d+)+")
+
+ def setUp(self):
+ if self.unidiff_parse_error:
+ self.skip('Parse error %s' % self.unidiff_parse_error)
+
+ # we are just interested in series that introduce CVE patches, thus discard other
+ # possibilities: modification to current CVEs, patch directly introduced into the
+ # recipe, upgrades already including the CVE, etc.
+ new_cves = [p for p in self.patchset if p.path.endswith('.patch') and p.is_added_file]
+ if not new_cves:
+ self.skip('No new CVE patches introduced')
+
+ def test_cve_tag_format(self):
+ for commit in CVE.commits:
+ if self.re_cve_pattern.search(commit.shortlog) or self.re_cve_pattern.search(commit.commit_message):
+ tag_found = False
+ for line in commit.payload.splitlines():
+ if self.re_cve_payload_tag.match(line):
+ tag_found = True
+ break
+ if not tag_found:
+ self.fail('Missing or incorrectly formatted CVE tag in included patch file',
+ 'Correct or include the CVE tag on cve patch with format: "CVE: CVE-YYYY-XXXX"',
+ commit)
diff --git a/poky/meta/lib/patchtest/tests/test_patch_signed_off_by.py b/poky/meta/lib/patchtest/tests/test_patch_signed_off_by.py
new file mode 100644
index 0000000000..4855d6daf7
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/test_patch_signed_off_by.py
@@ -0,0 +1,43 @@
+# Checks related to the patch's signed-off-by lines
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import base
+import parse_signed_off_by
+import re
+
+class PatchSignedOffBy(base.Base):
+
+ @classmethod
+ def setUpClassLocal(cls):
+ cls.newpatches = []
+ # get just those relevant patches: new software patches
+ for patch in cls.patchset:
+ if patch.path.endswith('.patch') and patch.is_added_file:
+ cls.newpatches.append(patch)
+
+ cls.mark = str(parse_signed_off_by.signed_off_by_mark).strip('"')
+
+ # match PatchSignedOffBy.mark with '+' preceding it
+ cls.prog = parse_signed_off_by.patch_signed_off_by
+
+ def setUp(self):
+ if self.unidiff_parse_error:
+ self.skip('Parse error %s' % self.unidiff_parse_error)
+
+ def test_signed_off_by_presence(self):
+ if not PatchSignedOffBy.newpatches:
+ self.skip("There are no new software patches, no reason to test %s presence" % PatchSignedOffBy.mark)
+
+ for newpatch in PatchSignedOffBy.newpatches:
+ payload = newpatch.__str__()
+ for line in payload.splitlines():
+ if self.patchmetadata_regex.match(line):
+ continue
+ if PatchSignedOffBy.prog.search_string(payload):
+ break
+ else:
+ self.fail('A patch file has been added, but does not have a Signed-off-by tag',
+ 'Sign off the added patch file (%s)' % newpatch.path)
diff --git a/poky/meta/lib/patchtest/tests/test_patch_upstream_status.py b/poky/meta/lib/patchtest/tests/test_patch_upstream_status.py
new file mode 100644
index 0000000000..eda5353c66
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/test_patch_upstream_status.py
@@ -0,0 +1,64 @@
+# Checks related to the patch's upstream-status lines
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import base
+import parse_upstream_status
+import pyparsing
+import os
+
+class PatchUpstreamStatus(base.Base):
+
+ upstream_status_regex = pyparsing.AtLineStart("+" + "Upstream-Status")
+
+ @classmethod
+ def setUpClassLocal(cls):
+ cls.newpatches = []
+ # get just those relevant patches: new software patches
+ for patch in cls.patchset:
+ if patch.path.endswith('.patch') and patch.is_added_file:
+ cls.newpatches.append(patch)
+
+ def setUp(self):
+ if self.unidiff_parse_error:
+ self.skip('Python-unidiff parse error')
+ self.valid_status = ', '.join(parse_upstream_status.upstream_status_nonliteral_valid_status)
+ self.standard_format = 'Upstream-Status: <Valid status>'
+
+ def test_upstream_status_presence_format(self):
+ if not PatchUpstreamStatus.newpatches:
+ self.skip("There are no new software patches, no reason to test Upstream-Status presence/format")
+
+ for newpatch in PatchUpstreamStatus.newpatches:
+ payload = newpatch.__str__()
+ if not self.upstream_status_regex.search_string(payload):
+ self.fail('Added patch file is missing Upstream-Status in the header',
+ 'Add Upstream-Status: <Valid status> to the header of %s' % newpatch.path,
+ data=[('Standard format', self.standard_format), ('Valid status', self.valid_status)])
+ for line in payload.splitlines():
+ if self.patchmetadata_regex.match(line):
+ continue
+ if self.upstream_status_regex.search_string(line):
+ if parse_upstream_status.inappropriate_status_mark.searchString(line):
+ try:
+ parse_upstream_status.upstream_status_inappropriate_info.parseString(line.lstrip('+'))
+ except pyparsing.ParseException as pe:
+ self.fail('Upstream-Status is Inappropriate, but no reason was provided',
+ 'Include a brief reason why %s is inappropriate' % os.path.basename(newpatch.path),
+ data=[('Current', pe.pstr), ('Standard format', 'Upstream-Status: Inappropriate [reason]')])
+ elif parse_upstream_status.submitted_status_mark.searchString(line):
+ try:
+ parse_upstream_status.upstream_status_submitted_info.parseString(line.lstrip('+'))
+ except pyparsing.ParseException as pe:
+ self.fail('Upstream-Status is Submitted, but it is not mentioned where',
+ 'Include where %s was submitted' % os.path.basename(newpatch.path),
+ data=[('Current', pe.pstr), ('Standard format', 'Upstream-Status: Submitted [where]')])
+ else:
+ try:
+ parse_upstream_status.upstream_status.parseString(line.lstrip('+'))
+ except pyparsing.ParseException as pe:
+ self.fail('Upstream-Status is in incorrect format',
+ 'Fix Upstream-Status format in %s' % os.path.basename(newpatch.path),
+ data=[('Current', pe.pstr), ('Standard format', self.standard_format), ('Valid status', self.valid_status)])
diff --git a/poky/meta/lib/patchtest/tests/test_python_pylint.py b/poky/meta/lib/patchtest/tests/test_python_pylint.py
new file mode 100644
index 0000000000..ea8efb7c2a
--- /dev/null
+++ b/poky/meta/lib/patchtest/tests/test_python_pylint.py
@@ -0,0 +1,61 @@
+# Checks related to the python code done with pylint
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0
+
+import base
+from data import PatchTestInput
+import pylint.epylint as lint
+
+class PyLint(base.Base):
+ pythonpatches = []
+ pylint_pretest = {}
+ pylint_test = {}
+ pylint_options = " -E --disable='E0611, E1101, F0401, E0602' --msg-template='L:{line} F:{module} I:{msg}'"
+
+ @classmethod
+ def setUpClassLocal(cls):
+ # get just those patches touching python files
+ cls.pythonpatches = []
+ for patch in cls.patchset:
+ if patch.path.endswith('.py'):
+ if not patch.is_removed_file:
+ cls.pythonpatches.append(patch)
+
+ def setUp(self):
+ if self.unidiff_parse_error:
+ self.skip('Python-unidiff parse error')
+ if not PatchTestInput.repo.canbemerged:
+ self.skip('Patch cannot be merged, no reason to execute the test method')
+ if not PyLint.pythonpatches:
+ self.skip('No python related patches, skipping test')
+
+ def pretest_pylint(self):
+ for pythonpatch in self.pythonpatches:
+ if pythonpatch.is_modified_file:
+ (pylint_stdout, pylint_stderr) = lint.py_run(command_options = pythonpatch.path + self.pylint_options, return_std=True)
+ for line in pylint_stdout.readlines():
+ if not '*' in line:
+ if line.strip():
+ self.pylint_pretest[line.strip().split(' ',1)[0]] = line.strip().split(' ',1)[1]
+
+ def test_pylint(self):
+ for pythonpatch in self.pythonpatches:
+ # a condition checking whether a file is renamed or not
+ # unidiff doesn't support this yet
+ if pythonpatch.target_file is not pythonpatch.path:
+ path = pythonpatch.target_file[2:]
+ else:
+ path = pythonpatch.path
+ (pylint_stdout, pylint_stderr) = lint.py_run(command_options = path + self.pylint_options, return_std=True)
+ for line in pylint_stdout.readlines():
+ if not '*' in line:
+ if line.strip():
+ self.pylint_test[line.strip().split(' ',1)[0]] = line.strip().split(' ',1)[1]
+
+ for issue in self.pylint_test:
+ if self.pylint_test[issue] not in self.pylint_pretest.values():
+ self.fail('Errors in your Python code were encountered',
+ 'Correct the lines introduced by your patch',
+ data=[('Output', 'Please, fix the listed issues:'), ('', issue + ' ' + self.pylint_test[issue])])
diff --git a/poky/meta/recipes-bsp/alsa-state/alsa-state.bb b/poky/meta/recipes-bsp/alsa-state/alsa-state.bb
index 27b2eccbe4..bd7f610f46 100644
--- a/poky/meta/recipes-bsp/alsa-state/alsa-state.bb
+++ b/poky/meta/recipes-bsp/alsa-state/alsa-state.bb
@@ -14,7 +14,6 @@ LIC_FILES_CHKSUM = " \
file://alsa-state-init;beginline=3;endline=4;md5=3ff7ecbf534d7d503941abe8e268ef50 \
"
PV = "0.2.0"
-PR = "r5"
SRC_URI = "\
file://asound.conf \
diff --git a/poky/meta/recipes-bsp/formfactor/formfactor_0.0.bb b/poky/meta/recipes-bsp/formfactor/formfactor_0.0.bb
index ea1fa4c754..1eaf30746b 100644
--- a/poky/meta/recipes-bsp/formfactor/formfactor_0.0.bb
+++ b/poky/meta/recipes-bsp/formfactor/formfactor_0.0.bb
@@ -5,7 +5,6 @@ build system cannot obtain from other sources such as the kernel."
SECTION = "base"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-PR = "r45"
SRC_URI = "file://config file://machconfig"
S = "${WORKDIR}"
diff --git a/poky/meta/recipes-bsp/keymaps/keymaps_1.0.bb b/poky/meta/recipes-bsp/keymaps/keymaps_1.0.bb
index 84d09cb965..3d5d127820 100644
--- a/poky/meta/recipes-bsp/keymaps/keymaps_1.0.bb
+++ b/poky/meta/recipes-bsp/keymaps/keymaps_1.0.bb
@@ -7,7 +7,6 @@ RDEPENDS:${PN} = "kbd"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://keymap.sh;beginline=5;endline=5;md5=829e563511c9a1d6d41f17a7a4989d6a"
PACKAGE_ARCH = "${MACHINE_ARCH}"
-PR = "r31"
INHIBIT_DEFAULT_DEPS = "1"
diff --git a/poky/meta/recipes-bsp/libacpi/libacpi_0.2.bb b/poky/meta/recipes-bsp/libacpi/libacpi_0.2.bb
index 6d4be76bab..6aae34b310 100644
--- a/poky/meta/recipes-bsp/libacpi/libacpi_0.2.bb
+++ b/poky/meta/recipes-bsp/libacpi/libacpi_0.2.bb
@@ -5,7 +5,6 @@ SECTION = "base"
HOMEPAGE = "http://www.ngolde.de/libacpi.html"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=fec17f82f16630adf2dfb7d2a46f21c5"
-PR = "r6"
SRC_URI = "http://www.ngolde.de/download/libacpi-${PV}.tar.gz \
file://makefile-fix.patch \
diff --git a/poky/meta/recipes-bsp/lrzsz/lrzsz_0.12.20.bb b/poky/meta/recipes-bsp/lrzsz/lrzsz_0.12.20.bb
index a34fb4eb03..63edcbd864 100644
--- a/poky/meta/recipes-bsp/lrzsz/lrzsz_0.12.20.bb
+++ b/poky/meta/recipes-bsp/lrzsz/lrzsz_0.12.20.bb
@@ -10,7 +10,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
file://src/lrz.c;beginline=1;endline=10;md5=5276956373ff7d8758837f6399a1045f"
SECTION = "console/network"
DEPENDS = ""
-PR = "r6"
SRC_URI = "http://www.ohse.de/uwe/releases/lrzsz-${PV}.tar.gz \
file://autotools-update.patch \
diff --git a/poky/meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb b/poky/meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb
index 2c3ade9934..c7b95e57b0 100644
--- a/poky/meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb
+++ b/poky/meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb
@@ -6,7 +6,6 @@ LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://src/pm-pmu.c;beginline=1;endline=22;md5=3c1ddbc54e735fb4a0386e14c78a3147"
-PR = "r1"
SRC_URI = "http://pm-utils.freedesktop.org/releases/pm-utils-${PV}.tar.gz"
diff --git a/poky/meta/recipes-bsp/setserial/setserial_2.17.bb b/poky/meta/recipes-bsp/setserial/setserial_2.17.bb
index 8e4bb62b9f..98ab45145f 100644
--- a/poky/meta/recipes-bsp/setserial/setserial_2.17.bb
+++ b/poky/meta/recipes-bsp/setserial/setserial_2.17.bb
@@ -5,7 +5,6 @@ SECTION = "console/utils"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://version.h;beginline=1;endline=6;md5=2e7c59cb9e57e356ae81f50f4e4dfd99"
-PR = "r3"
DEPENDS += "groff-native"
diff --git a/poky/meta/recipes-bsp/usbinit/usbinit.bb b/poky/meta/recipes-bsp/usbinit/usbinit.bb
index ffaca4b58d..3a50b835c2 100644
--- a/poky/meta/recipes-bsp/usbinit/usbinit.bb
+++ b/poky/meta/recipes-bsp/usbinit/usbinit.bb
@@ -7,7 +7,6 @@ HOMEPAGE = "http://linux-sunxi.org/USB_Gadget/Ethernet"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://${WORKDIR}/COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe"
-PR = "r3"
SRC_URI = "file://usb-gether \
file://COPYING.GPL"
diff --git a/poky/meta/recipes-bsp/v86d/v86d_0.1.10.bb b/poky/meta/recipes-bsp/v86d/v86d_0.1.10.bb
index b4fe362f8e..6151f0a7e2 100644
--- a/poky/meta/recipes-bsp/v86d/v86d_0.1.10.bb
+++ b/poky/meta/recipes-bsp/v86d/v86d_0.1.10.bb
@@ -7,7 +7,6 @@ LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://README;md5=94ac1971e4f2309dc322d598e7b1f7dd"
RRECOMMENDS:${PN} = "kernel-module-uvesafb"
-PR = "r2"
SRC_URI = "http://snapshot.debian.org/archive/debian/20110427T035506Z/pool/main/v/${BPN}/${BPN}_${PV}.orig.tar.gz \
file://Update-x86emu-from-X.org.patch \
diff --git a/poky/meta/recipes-connectivity/bind/bind_9.18.18.bb b/poky/meta/recipes-connectivity/bind/bind_9.18.19.bb
index e74e685fe8..8124c5c591 100644
--- a/poky/meta/recipes-connectivity/bind/bind_9.18.18.bb
+++ b/poky/meta/recipes-connectivity/bind/bind_9.18.19.bb
@@ -20,7 +20,7 @@ SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.xz \
file://0001-avoid-start-failure-with-bind-user.patch \
"
-SRC_URI[sha256sum] = "d735cdc127a6c5709bde475b5bf16fa2133f36fdba202f7c3c37d134e5192160"
+SRC_URI[sha256sum] = "115e09c05439bebade1d272eda08fa88eb3b60129edef690588c87a4d27612cc"
UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/"
# follow the ESV versions divisible by 2
diff --git a/poky/meta/recipes-connectivity/connman/connman-conf.bb b/poky/meta/recipes-connectivity/connman/connman-conf.bb
index 7959ed8e50..a1a0e08faa 100644
--- a/poky/meta/recipes-connectivity/connman/connman-conf.bb
+++ b/poky/meta/recipes-connectivity/connman/connman-conf.bb
@@ -4,7 +4,6 @@ network interface inside qemu machines."
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
-PR = "r2"
SRC_URI = "file://main.conf \
"
diff --git a/poky/meta/recipes-connectivity/iproute2/iproute2/0001-bridge-mdb.c-include-limits.h.patch b/poky/meta/recipes-connectivity/iproute2/iproute2/0001-bridge-mdb.c-include-limits.h.patch
deleted file mode 100644
index f9a0e35d83..0000000000
--- a/poky/meta/recipes-connectivity/iproute2/iproute2/0001-bridge-mdb.c-include-limits.h.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From b13f04c0c685b6d2474aa7d97e191531f327bc45 Mon Sep 17 00:00:00 2001
-From: Trevor Gamblin <tgamblin@baylibre.com>
-Date: Thu, 20 Jul 2023 14:32:23 -0400
-Subject: [PATCH] bridge/mdb.c: include limits.h
-
-Upstream-Status: Submitted
-(https://lore.kernel.org/netdev/20230720203726.2316251-1-tgamblin@baylibre.com/)
-
-While building iproute2 6.4.0 with musl using Yocto Project, errors such
-as the following were encountered:
-
-| mdb.c: In function 'mdb_parse_vni':
-| mdb.c:666:47: error: 'ULONG_MAX' undeclared (first use in this function)
-| 666 | if ((endptr && *endptr) || vni_num == ULONG_MAX)
-| | ^~~~~~~~~
-| mdb.c:666:47: note: 'ULONG_MAX' is defined in header '<limits.h>'; did you forget to '#include <limits.h>'?
-
-Include limits.h in bridge/mdb.c to fix this issue. This change is based
-on one in Alpine Linux, but the author there had no plans to submit:
-https://git.alpinelinux.org/aports/commit/main/iproute2/include.patch?id=bd46efb8a8da54948639cebcfa5b37bd608f1069
-
-Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
----
- bridge/mdb.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/bridge/mdb.c b/bridge/mdb.c
-index fbb4f704..18793458 100644
---- a/bridge/mdb.c
-+++ b/bridge/mdb.c
-@@ -15,6 +15,7 @@
- #include <string.h>
- #include <arpa/inet.h>
- #include <netdb.h>
-+#include <limits.h>
-
- #include "libnetlink.h"
- #include "utils.h"
---
-2.41.0
-
diff --git a/poky/meta/recipes-connectivity/iproute2/iproute2_6.4.0.bb b/poky/meta/recipes-connectivity/iproute2/iproute2_6.5.0.bb
index 32e2f8176b..2b28b10c20 100644
--- a/poky/meta/recipes-connectivity/iproute2/iproute2_6.4.0.bb
+++ b/poky/meta/recipes-connectivity/iproute2/iproute2_6.5.0.bb
@@ -13,10 +13,9 @@ DEPENDS = "flex-native bison-native iptables libcap"
SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BP}.tar.xz \
file://0001-libc-compat.h-add-musl-workaround.patch \
- file://0001-bridge-mdb.c-include-limits.h.patch \
"
-SRC_URI[sha256sum] = "4c51b8decbc7e4da159ffb066f590cfb93dbf9af7ff86b1647ce42b7c179a272"
+SRC_URI[sha256sum] = "a70179085fa1b96d3c33b040c809b75e2b57563adc505a4ad05e2609df373463"
inherit update-alternatives bash-completion pkgconfig
@@ -37,6 +36,7 @@ EXTRA_OEMAKE = "\
DOCDIR=${docdir}/iproute2 \
SUBDIRS='${IPROUTE2_MAKE_SUBDIRS}' \
SBINDIR='${base_sbindir}' \
+ CONF_USR_DIR='${libdir}/iproute2' \
LIBDIR='${libdir}' \
CCOPTS='${CFLAGS}' \
"
@@ -82,7 +82,7 @@ FILES:${PN}-lnstat = "${base_sbindir}/lnstat \
${base_sbindir}/ctstat \
${base_sbindir}/rtstat"
FILES:${PN}-ifstat = "${base_sbindir}/ifstat"
-FILES:${PN}-ip = "${base_sbindir}/ip.${PN} ${sysconfdir}/iproute2"
+FILES:${PN}-ip = "${base_sbindir}/ip.* ${libdir}/iproute2"
FILES:${PN}-genl = "${base_sbindir}/genl"
FILES:${PN}-rtacct = "${base_sbindir}/rtacct"
FILES:${PN}-nstat = "${base_sbindir}/nstat"
diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service
index c01415de84..ebfe64b9ce 100644
--- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service
+++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service
@@ -12,6 +12,7 @@ ConditionPathExists=@SYSCONFDIR@/exports
EnvironmentFile=-@SYSCONFDIR@/nfs-utils.conf
ExecStart=@SBINDIR@/rpc.mountd -F $MOUNTD_OPTS
LimitNOFILE=@HIGH_RLIMIT_NOFILE@
+StateDirectory=nfs
[Install]
WantedBy=multi-user.target
diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service
index 5c845b7e82..15ceee04d0 100644
--- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service
+++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service
@@ -18,6 +18,7 @@ ExecStopPost=@SBINDIR@/exportfs -au
ExecStopPost=@SBINDIR@/exportfs -f
ExecReload=@SBINDIR@/exportfs -r
RemainAfterExit=yes
+StateDirectory=nfs
[Install]
WantedBy=multi-user.target
diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service
index 4fa64e1998..b519194121 100644
--- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service
+++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service
@@ -4,11 +4,13 @@ DefaultDependencies=no
Conflicts=umount.target
Requires=nss-lookup.target rpcbind.service
After=network.target nss-lookup.target rpcbind.service
+ConditionPathExists=@SYSCONFDIR@/exports
[Service]
EnvironmentFile=-@SYSCONFDIR@/nfs-utils.conf
ExecStart=@SBINDIR@/rpc.statd -F $STATD_OPTS
LimitNOFILE=@HIGH_RLIMIT_NOFILE@
+StateDirectory=nfs
[Install]
WantedBy=multi-user.target
diff --git a/poky/meta/recipes-connectivity/openssh/openssh/0001-openssh-regress-Makefile-print-logs-if-test-fails.patch b/poky/meta/recipes-connectivity/openssh/openssh/0001-openssh-regress-Makefile-print-logs-if-test-fails.patch
deleted file mode 100644
index baa68dc6ff..0000000000
--- a/poky/meta/recipes-connectivity/openssh/openssh/0001-openssh-regress-Makefile-print-logs-if-test-fails.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 554f7baed050f89ffc2a7192d3071e8c5420f6d3 Mon Sep 17 00:00:00 2001
-From: Mikko Rapeli <mikko.rapeli@linaro.org>
-Date: Fri, 25 Aug 2023 10:35:28 +0000
-Subject: [PATCH] openssh regress/Makefile: print logs if test fails
-
-Some tests are failing in CI runs and reproduction has failed. Print
-the captured sshd and ssh client logs if test fails. This should
-help to fix the root causes.
-
-Reference: https://bugzilla.yoctoproject.org/show_bug.cgi?id=15178
-
-Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
----
- regress/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Upstream-Status: Submitted [https://github.com/openssh/openssh-portable/pull/437]
-
-diff --git a/regress/Makefile b/regress/Makefile
-index d80bf59..a972dff 100644
---- a/regress/Makefile
-+++ b/regress/Makefile
-@@ -229,7 +229,7 @@ t-exec: ${LTESTS:=.sh}
- done; \
- if [ "x$${skip}" = "xno" ]; then \
- echo "run test $${TEST}" ... 1>&2; \
-- (env SUDO="${SUDO}" TEST_ENV=${TEST_ENV} ${TEST_SHELL} ${.CURDIR}/test-exec.sh ${.OBJDIR} ${.CURDIR}/$${TEST}) || exit $$?; \
-+ (env SUDO="${SUDO}" TEST_ENV=${TEST_ENV} ${TEST_SHELL} ${.CURDIR}/test-exec.sh ${.OBJDIR} ${.CURDIR}/$${TEST}) || (echo return value: $$?; echo capturing logs; cat *.log; exit 1); \
- else \
- echo skip test $${TEST} 1>&2; \
- fi; \
---
-2.34.1
-
diff --git a/poky/meta/recipes-connectivity/openssh/openssh/0001-regress-banner.sh-log-input-and-output-files-on-erro.patch b/poky/meta/recipes-connectivity/openssh/openssh/0001-regress-banner.sh-log-input-and-output-files-on-erro.patch
new file mode 100644
index 0000000000..2c14014fed
--- /dev/null
+++ b/poky/meta/recipes-connectivity/openssh/openssh/0001-regress-banner.sh-log-input-and-output-files-on-erro.patch
@@ -0,0 +1,61 @@
+From f5a4dacc987ca548fc86577c2dba121c86da3c34 Mon Sep 17 00:00:00 2001
+From: Mikko Rapeli <mikko.rapeli@linaro.org>
+Date: Mon, 11 Sep 2023 09:55:21 +0100
+Subject: [PATCH] regress/banner.sh: log input and output files on error
+
+Some test environments like yocto with qemu are seeing these
+tests failing. There may be additional error messages in the
+stderr of ssh cloent command. busybox cmp shows this error when
+first input file has less new line characters then second
+input file:
+
+cmp: EOF on /usr/lib/openssh/ptest/regress/banner.in
+
+Logging the full banner.out will show what other error messages
+are captured in addition of the expected banner.
+
+Full log of a failing banner test runs is:
+
+run test banner.sh ...
+test banner: missing banner file
+test banner: size 0
+cmp: EOF on /usr/lib/openssh/ptest/regress/banner.in
+banner size 0 mismatch
+test banner: size 10
+test banner: size 100
+cmp: EOF on /usr/lib/openssh/ptest/regress/banner.in
+banner size 100 mismatch
+test banner: size 1000
+test banner: size 10000
+test banner: size 100000
+test banner: suppress banner (-q)
+FAIL: banner
+return value: 1
+
+See: https://bugzilla.yoctoproject.org/show_bug.cgi?id=15178
+
+Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
+---
+ regress/banner.sh | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+Upstream-Status: Denied [https://github.com/openssh/openssh-portable/pull/437]
+
+diff --git a/regress/banner.sh b/regress/banner.sh
+index a84feb5a..de84957a 100644
+--- a/regress/banner.sh
++++ b/regress/banner.sh
+@@ -32,7 +32,9 @@ for s in 0 10 100 1000 10000 100000 ; do
+ verbose "test $tid: size $s"
+ ( ${SSH} -F $OBJ/ssh_proxy otherhost true 2>$OBJ/banner.out && \
+ cmp $OBJ/banner.in $OBJ/banner.out ) || \
+- fail "banner size $s mismatch"
++ ( verbose "Contents of $OBJ/banner.in:"; cat $OBJ/banner.in; \
++ verbose "Contents of $OBJ/banner.out:"; cat $OBJ/banner.out; \
++ fail "banner size $s mismatch" )
+ done
+
+ trace "test suppress banner (-q)"
+--
+2.34.1
+
diff --git a/poky/meta/recipes-connectivity/openssh/openssh/run-ptest b/poky/meta/recipes-connectivity/openssh/openssh/run-ptest
index 8a9b770d59..1e6eec5799 100755
--- a/poky/meta/recipes-connectivity/openssh/openssh/run-ptest
+++ b/poky/meta/recipes-connectivity/openssh/openssh/run-ptest
@@ -4,6 +4,20 @@ export TEST_SHELL=sh
export SKIP_UNIT=1
cd regress
+
+# copied from openssh-portable/.github/run_test.sh
+output_failed_logs() {
+ for i in failed*.log; do
+ if [ -f "$i" ]; then
+ echo -------------------------------------------------------------------------
+ echo LOGFILE $i
+ cat $i
+ echo -------------------------------------------------------------------------
+ fi
+ done
+}
+trap output_failed_logs 0
+
sed -i "/\t\tagent-ptrace /d" Makefile
make -k BUILDDIR=`pwd`/.. .OBJDIR=`pwd` .CURDIR=`pwd` SUDO="sudo" tests \
| sed -u -e 's/^skipped/SKIP: /g' -e 's/^ok /PASS: /g' -e 's/^failed/FAIL: /g'
diff --git a/poky/meta/recipes-connectivity/openssh/openssh_9.4p1.bb b/poky/meta/recipes-connectivity/openssh/openssh_9.4p1.bb
index 2c85780e4d..a38d9c2b81 100644
--- a/poky/meta/recipes-connectivity/openssh/openssh_9.4p1.bb
+++ b/poky/meta/recipes-connectivity/openssh/openssh_9.4p1.bb
@@ -24,7 +24,7 @@ SRC_URI = "http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar
file://fix-potential-signed-overflow-in-pointer-arithmatic.patch \
file://sshd_check_keys \
file://add-test-support-for-busybox.patch \
- file://0001-openssh-regress-Makefile-print-logs-if-test-fails.patch \
+ file://0001-regress-banner.sh-log-input-and-output-files-on-erro.patch \
"
SRC_URI[sha256sum] = "3608fd9088db2163ceb3e600c85ab79d0de3d221e59192ea1923e23263866a85"
diff --git a/poky/meta/recipes-connectivity/openssl/openssl/run-ptest b/poky/meta/recipes-connectivity/openssl/openssl/run-ptest
index 8dff79101f..c89ec5afa1 100644
--- a/poky/meta/recipes-connectivity/openssl/openssl/run-ptest
+++ b/poky/meta/recipes-connectivity/openssl/openssl/run-ptest
@@ -9,4 +9,4 @@ export TOP=.
# OPENSSL_ENGINES is relative from the test binaries
export OPENSSL_ENGINES=../engines
-perl ./test/run_tests.pl $* | sed -u -r -e '/(.*) \.*.ok/ s/^/PASS: /g' -r -e '/Dubious(.*)/ s/^/FAIL: /g' -e '/(.*) \.*.skipped: (.*)/ s/^/SKIP: /g'
+{ HARNESS_JOBS=4 perl ./test/run_tests.pl $* || echo "FAIL: openssl" ; } | sed -u -r -e '/(.*) \.*.ok/ s/^/PASS: /g' -r -e '/Dubious(.*)/ s/^/FAIL: /g' -e '/(.*) \.*.skipped: (.*)/ s/^/SKIP: /g'
diff --git a/poky/meta/recipes-connectivity/openssl/openssl_3.1.2.bb b/poky/meta/recipes-connectivity/openssl/openssl_3.1.3.bb
index 3f77c218c8..cc9452c8ab 100644
--- a/poky/meta/recipes-connectivity/openssl/openssl_3.1.2.bb
+++ b/poky/meta/recipes-connectivity/openssl/openssl_3.1.3.bb
@@ -18,7 +18,7 @@ SRC_URI:append:class-nativesdk = " \
file://environment.d-openssl.sh \
"
-SRC_URI[sha256sum] = "a0ce69b8b97ea6a35b96875235aa453b966ba3cba8af2de23657d8b6767d6539"
+SRC_URI[sha256sum] = "f0316a2ebd89e7f2352976445458689f80302093788c466692fb2a188b2eacf6"
inherit lib_package multilib_header multilib_script ptest perlnative manpages
MULTILIB_SCRIPTS = "${PN}-bin:${bindir}/c_rehash"
diff --git a/poky/meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb b/poky/meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb
index 8a6c297cb0..099c58bfc7 100644
--- a/poky/meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb
+++ b/poky/meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb
@@ -3,7 +3,6 @@ SECTION = "console/network"
DESCRIPTION = "PPP dail-in provides a point to point protocol (PPP), so that other computers can dial up to it and access connected networks."
DEPENDS = "ppp"
RDEPENDS:${PN} = "ppp"
-PR = "r8"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
diff --git a/poky/meta/recipes-core/base-files/base-files_3.0.14.bb b/poky/meta/recipes-core/base-files/base-files_3.0.14.bb
index 0d38657c62..6ba3971e32 100644
--- a/poky/meta/recipes-core/base-files/base-files_3.0.14.bb
+++ b/poky/meta/recipes-core/base-files/base-files_3.0.14.bb
@@ -1,7 +1,6 @@
SUMMARY = "Miscellaneous files for the base system"
DESCRIPTION = "The base-files package creates the basic system directory structure and provides a small set of key configuration files for the system."
SECTION = "base"
-PR = "r90"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://licenses/GPL-2;md5=94d55d512a9ba36caa9b7df079bae19f"
# Removed all license related tasks in this recipe as license.bbclass
diff --git a/poky/meta/recipes-core/busybox/busybox/defconfig b/poky/meta/recipes-core/busybox/busybox/defconfig
index 3d36447c63..f3d545dc3f 100644
--- a/poky/meta/recipes-core/busybox/busybox/defconfig
+++ b/poky/meta/recipes-core/busybox/busybox/defconfig
@@ -1190,7 +1190,7 @@ CONFIG_ASH_CMDCMD=y
# Options common to all shells
#
CONFIG_FEATURE_SH_MATH=y
-# CONFIG_FEATURE_SH_MATH_64 is not set
+CONFIG_FEATURE_SH_MATH_64=y
CONFIG_FEATURE_SH_MATH_BASE=y
CONFIG_FEATURE_SH_EXTRA_QUIET=y
# CONFIG_FEATURE_SH_STANDALONE is not set
diff --git a/poky/meta/recipes-core/coreutils/coreutils/stdlib-mb-cur-max.patch b/poky/meta/recipes-core/coreutils/coreutils/stdlib-mb-cur-max.patch
deleted file mode 100644
index 732fa5b6f2..0000000000
--- a/poky/meta/recipes-core/coreutils/coreutils/stdlib-mb-cur-max.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-From ca6c179226864bff23f2b062518cf885bb42ce56 Mon Sep 17 00:00:00 2001
-From: Bruno Haible <bruno@clisp.org>
-Date: Thu, 27 Apr 2023 15:26:37 +0200
-Subject: [PATCH] stdlib: Fix error when cross-compiling.
-
-Reported by Pierre Labastie <pierre.labastie@neuf.fr> in
-<https://lists.gnu.org/archive/html/bug-gnulib/2023-04/msg00220.html>.
-
-* m4/stdlib_h.m4 (gl_STDLIB_H): Provide a 4th argument to AC_RUN_IFELSE.
----
- ChangeLog | 7 +++++++
- m4/stdlib_h.m4 | 4 ++--
- 2 files changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/m4/stdlib_h.m4 b/m4/stdlib_h.m4
-index 3274ea4948..f47c1eb37b 100644
---- a/m4/stdlib_h.m4
-+++ b/m4/stdlib_h.m4
-@@ -66,7 +66,7 @@ int main ()
- return result;
- }]])],
- [gl_cv_macro_MB_CUR_MAX_good=yes],
-- [gl_cv_macro_MB_CUR_MAX_good=no]
-+ [gl_cv_macro_MB_CUR_MAX_good=no],
- [:])
- fi
- ])
---
-2.34.1
-
diff --git a/poky/meta/recipes-core/coreutils/coreutils_9.3.bb b/poky/meta/recipes-core/coreutils/coreutils_9.4.bb
index ba38169f05..f210df2e69 100644
--- a/poky/meta/recipes-core/coreutils/coreutils_9.3.bb
+++ b/poky/meta/recipes-core/coreutils/coreutils_9.4.bb
@@ -16,11 +16,9 @@ inherit autotools gettext texinfo
SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \
file://remove-usr-local-lib-from-m4.patch \
file://0001-local.mk-fix-cross-compiling-problem.patch \
- file://stdlib-mb-cur-max.patch \
file://run-ptest \
"
-
-SRC_URI[sha256sum] = "adbcfcfe899235b71e8768dcf07cd532520b7f54f9a8064843f8d199a904bbaa"
+SRC_URI[sha256sum] = "ea613a4cf44612326e917201bbbcdfbd301de21ffc3b59b6e5c07e040b275e52"
# http://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=v8.27-101-gf5d7c0842
#
@@ -183,6 +181,7 @@ do_install_ptest () {
sed -i 's/ginstall/install/g' `grep -R ginstall ${D}${PTEST_PATH}/tests | awk -F: '{print $1}' | uniq`
install -d ${D}${PTEST_PATH}/build-aux
install ${S}/build-aux/test-driver ${D}${PTEST_PATH}/build-aux/
+ install -Dm 0644 ${B}/lib/config.h ${D}${PTEST_PATH}/lib/config.h
cp ${B}/Makefile ${D}${PTEST_PATH}/
cp ${S}/init.cfg ${D}${PTEST_PATH}/
cp -r ${B}/src ${D}${PTEST_PATH}/
diff --git a/poky/meta/recipes-core/dbus-wait/dbus-wait_git.bb b/poky/meta/recipes-core/dbus-wait/dbus-wait_git.bb
index 09ba515a61..1cdf07d03d 100644
--- a/poky/meta/recipes-core/dbus-wait/dbus-wait_git.bb
+++ b/poky/meta/recipes-core/dbus-wait/dbus-wait_git.bb
@@ -9,7 +9,6 @@ DEPENDS = "dbus"
SRCREV = "6cc6077a36fe2648a5f993fe7c16c9632f946517"
PV = "0.1+git"
-PR = "r2"
SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https"
UPSTREAM_CHECK_COMMITS = "1"
diff --git a/poky/meta/recipes-core/dbus/dbus_1.14.8.bb b/poky/meta/recipes-core/dbus/dbus_1.14.10.bb
index 2dcbadd50b..2a256beabf 100644
--- a/poky/meta/recipes-core/dbus/dbus_1.14.8.bb
+++ b/poky/meta/recipes-core/dbus/dbus_1.14.10.bb
@@ -16,7 +16,7 @@ SRC_URI = "https://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.xz \
file://dbus-1.init \
"
-SRC_URI[sha256sum] = "a6bd5bac5cf19f0c3c594bdae2565a095696980a683a0ef37cb6212e093bde35"
+SRC_URI[sha256sum] = "ba1f21d2bd9d339da2d4aa8780c09df32fea87998b73da24f49ab9df1e36a50f"
EXTRA_OECONF = "--disable-xml-docs \
--disable-doxygen-docs \
diff --git a/poky/meta/recipes-core/gettext/gettext_0.22.bb b/poky/meta/recipes-core/gettext/gettext_0.22.bb
index 71e84521b0..f5290ac0e4 100644
--- a/poky/meta/recipes-core/gettext/gettext_0.22.bb
+++ b/poky/meta/recipes-core/gettext/gettext_0.22.bb
@@ -182,7 +182,7 @@ do_install_ptest() {
fi
}
-RDEPENDS:${PN}-ptest += "make xz bash"
+RDEPENDS:${PN}-ptest += "make xz bash gawk autoconf locale-base-de-de locale-base-fr-fr"
RDEPENDS:${PN}-ptest:append:libc-glibc = "\
glibc-gconv-big5 \
glibc-charmap-big5 \
@@ -202,8 +202,6 @@ RDEPENDS:${PN}-ptest:append:libc-glibc = "\
glibc-charmap-euc-jp \
glibc-gconv-gb18030 \
glibc-charmap-gb18030 \
- locale-base-de-de \
- locale-base-fr-fr \
"
RRECOMMENDS:${PN}-ptest:append:libc-glibc = "\
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch
index 9bdd99d8a2..0d44ddf299 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch
@@ -1,4 +1,4 @@
-From 4a41bf7b050168726cc4fad4c1c72fc7c18ab779 Mon Sep 17 00:00:00 2001
+From 9ec4eedeb3f67db0bff09f5d859318d05ff47964 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Fri, 15 Feb 2019 11:17:27 +0100
Subject: [PATCH] Do not write $bindir into pkg-config files
@@ -16,46 +16,46 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/gio/meson.build b/gio/meson.build
-index 36b5bad..137e75a 100644
+index a320c0f..86ce7c4 100644
--- a/gio/meson.build
+++ b/gio/meson.build
-@@ -862,14 +862,14 @@ pkg.generate(libgio,
- 'schemasdir=' + join_paths('${datadir}', schemas_subdir),
- 'bindir=' + join_paths('${prefix}', get_option('bindir')),
- 'giomoduledir=' + pkgconfig_giomodulesdir,
-- 'gio=' + join_paths('${bindir}', 'gio'),
-- 'gio_querymodules=@0@'.format(pkgconfig_multiarch_bindir / 'gio-querymodules'),
-- 'glib_compile_schemas=@0@'.format(pkgconfig_multiarch_bindir / 'glib-compile-schemas'),
-- 'glib_compile_resources=' + join_paths('${bindir}', 'glib-compile-resources'),
-- 'gdbus=' + join_paths('${bindir}', 'gdbus'),
-- 'gdbus_codegen=' + join_paths('${bindir}', 'gdbus-codegen'),
-- 'gresource=' + join_paths('${bindir}', 'gresource'),
-- 'gsettings=' + join_paths('${bindir}', 'gsettings')],
-+ 'gio=gio',
-+ 'gio_querymodules=gio-querymodules',
-+ 'glib_compile_schemas=glib-compile-schemas',
-+ 'glib_compile_resources=glib-compile-resources',
-+ 'gdbus=gdbus',
-+ 'gdbus_codegen=gdbus-codegen',
-+ 'gresource=gresource',
-+ 'gsettings=gsettings'],
+@@ -884,14 +884,14 @@ pkg.generate(libgio,
+ 'dtdsdir=' + '${datadir}' / dtds_subdir,
+ 'bindir=' + '${prefix}' / get_option('bindir'),
+ 'giomoduledir=' + pkgconfig_giomodulesdir,
+- 'gio=' + '${bindir}' / 'gio',
+- 'gio_querymodules=' + pkgconfig_multiarch_bindir / 'gio-querymodules',
+- 'glib_compile_schemas=' + pkgconfig_multiarch_bindir / 'glib-compile-schemas',
+- 'glib_compile_resources=' + '${bindir}' / 'glib-compile-resources',
+- 'gdbus=' + '${bindir}' /'gdbus',
+- 'gdbus_codegen=' + '${bindir}' / 'gdbus-codegen',
+- 'gresource=' + '${bindir}' / 'gresource',
+- 'gsettings=' + '${bindir}' / 'gsettings',
++ 'gio=gio',
++ 'gio_querymodules=gio-querymodules',
++ 'glib_compile_schemas=glib-compile-schemas',
++ 'glib_compile_resources=glib-compile-resources',
++ 'gdbus=gdbus',
++ 'gdbus_codegen=gdbus-codegen',
++ 'gresource=gresource',
++ 'gsettings=gsettings',
+ ],
version : glib_version,
install_dir : glib_pkgconfigreldir,
- filebase : 'gio-2.0',
diff --git a/glib/meson.build b/glib/meson.build
-index c365901..c3d6601 100644
+index c26a35e..1d8ca6b 100644
--- a/glib/meson.build
+++ b/glib/meson.build
-@@ -397,9 +397,9 @@ pkg.generate(libglib,
- subdirs : ['glib-2.0'],
- extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags,
- variables : ['bindir=' + join_paths('${prefix}', get_option('bindir')),
-- 'glib_genmarshal=' + join_paths('${bindir}', 'glib-genmarshal'),
-- 'gobject_query=' + join_paths('${bindir}', 'gobject-query'),
-- 'glib_mkenums=' + join_paths('${bindir}', 'glib-mkenums')],
-+ 'glib_genmarshal=glib-genmarshal',
-+ 'gobject_query=gobject-query',
-+ 'glib_mkenums=glib-mkenums'],
- version : glib_version,
- install_dir : glib_pkgconfigreldir,
- filebase : 'glib-2.0',
+@@ -447,9 +447,9 @@ pkg.generate(libglib,
+ variables : [
+ 'bindir=' + '${prefix}' / get_option('bindir'),
+ 'datadir=' + '${prefix}' / get_option('datadir'),
+- 'glib_genmarshal=' + '${bindir}' / 'glib-genmarshal',
+- 'gobject_query=' + '${bindir}' / 'gobject-query',
+- 'glib_mkenums=' + '${bindir}' / 'glib-mkenums',
++ 'glib_genmarshal=glib-genmarshal',
++ 'gobject_query=gobject-query',
++ 'glib_mkenums=glib-mkenums',
+ 'glib_valgrind_suppressions=' + '${datadir}' /
+ valgrind_suppression_file_install_subdir /
+ fs.name(valgrind_suppression_file),
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-portal-support-Fix-snap-test-ordering-race.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-portal-support-Fix-snap-test-ordering-race.patch
deleted file mode 100644
index 9e2bc1338b..0000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-portal-support-Fix-snap-test-ordering-race.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From f47503cc5ae10de6dee319ba6cff257eddabf33e Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Tue, 30 May 2023 11:52:38 +0100
-Subject: [PATCH] gio/tests/portal-support: Fix snap test ordering race
-
-When the gnome test runner executes the tests, the test appear to execute in disk
-order. This means it sometimes works and sometimes we see breakage in portal-support-snap
-and portal-support-snap-classic.
-
-The issue is that some tests create config files but some don't. If they run
-in the wrong order, tests see config files they shouldn't and break.
-
-Fix this by deleting the files after each test run, properly cleaning up after
-themselves. The cleanup code is based upon gtestutils.c:rm_rf().
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/c63cf19d9a8a6ae315a7f9a3fe4ea60c8cf5dece]
-
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
----
- gio/tests/portal-support-snap-classic.c | 3 +++
- gio/tests/portal-support-snap.c | 3 +++
- gio/tests/portal-support-utils.c | 27 +++++++++++++++++++++++++
- gio/tests/portal-support-utils.h | 2 ++
- 4 files changed, 35 insertions(+)
-
-diff --git a/gio/tests/portal-support-snap-classic.c b/gio/tests/portal-support-snap-classic.c
-index 8c0ed90c2..5b67865e7 100644
---- a/gio/tests/portal-support-snap-classic.c
-+++ b/gio/tests/portal-support-snap-classic.c
-@@ -66,6 +66,9 @@ tests_teardown (SetupData *setup_data,
- else
- g_unsetenv ("SNAP");
-
-+ cleanup_snapfiles (setup_data->snap_path);
-+ cleanup_snapfiles (setup_data->bin_path);
-+
- g_clear_pointer (&setup_data->old_path, g_free);
- g_clear_pointer (&setup_data->old_snap, g_free);
- }
-diff --git a/gio/tests/portal-support-snap.c b/gio/tests/portal-support-snap.c
-index 7dd14d82f..cd904678f 100644
---- a/gio/tests/portal-support-snap.c
-+++ b/gio/tests/portal-support-snap.c
-@@ -67,6 +67,9 @@ tests_teardown (SetupData *setup_data,
- else
- g_unsetenv ("SNAP");
-
-+ cleanup_snapfiles (setup_data->snap_path);
-+ cleanup_snapfiles (setup_data->bin_path);
-+
- g_clear_pointer (&setup_data->old_path, g_free);
- g_clear_pointer (&setup_data->old_snap, g_free);
- }
-diff --git a/gio/tests/portal-support-utils.c b/gio/tests/portal-support-utils.c
-index ae7073a3a..b7ee22630 100644
---- a/gio/tests/portal-support-utils.c
-+++ b/gio/tests/portal-support-utils.c
-@@ -26,6 +26,33 @@
- #include <glib.h>
- #include <glib/gstdio.h>
-
-+
-+void
-+cleanup_snapfiles (const gchar *path)
-+{
-+ GDir *dir = NULL;
-+ const gchar *entry;
-+
-+ dir = g_dir_open (path, 0, NULL);
-+ if (dir == NULL)
-+ {
-+ /* Assume it’s a file. Ignore failure. */
-+ (void) g_remove (path);
-+ return;
-+ }
-+
-+ while ((entry = g_dir_read_name (dir)) != NULL)
-+ {
-+ gchar *sub_path = g_build_filename (path, entry, NULL);
-+ cleanup_snapfiles (sub_path);
-+ g_free (sub_path);
-+ }
-+
-+ g_dir_close (dir);
-+
-+ g_rmdir (path);
-+}
-+
- void
- create_fake_snapctl (const char *path,
- const char *supported_op)
-diff --git a/gio/tests/portal-support-utils.h b/gio/tests/portal-support-utils.h
-index 40c035b43..defbdcd4e 100644
---- a/gio/tests/portal-support-utils.h
-+++ b/gio/tests/portal-support-utils.h
-@@ -23,6 +23,8 @@
-
- #include <glib.h>
-
-+void cleanup_snapfiles (const gchar *path);
-+
- void create_fake_snap_yaml (const char *snap_path,
- gboolean is_classic);
-
---
-2.39.2
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-glocalfile-Sum-apparent-size-only-for-files-and-syml.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-glocalfile-Sum-apparent-size-only-for-files-and-syml.patch
deleted file mode 100644
index a881b25ef3..0000000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-glocalfile-Sum-apparent-size-only-for-files-and-syml.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From d1a2117dc18dbcf87685891de7e2898108b66fc9 Mon Sep 17 00:00:00 2001
-From: Joan Bruguera <joanbrugueram@gmail.com>
-Date: Thu, 23 Mar 2023 02:24:30 +0000
-Subject: [PATCH] glocalfile: Sum apparent size only for files and symlinks
-
-Since GNU Coreutils 9.2 (commit 110bcd28386b1f47a4cd876098acb708fdcbbb25),
-`du --apparent-size` (including `du --bytes`) no longer counts all kinds of
-files (directories, FIFOs, etc.), but only those for which `st_size` in
-`struct stat` is defined by POSIX, namely regular files and symlinks
-(and also rarely supported memory objects).
-
-This aligns the behaviour of GLib's `G_FILE_MEASURE_APPARENT_SIZE` flag
-with the new GNU Coreutils `du` and correct POSIX use.
-
-Note that this may be a breaking change for some uses.
-
-Link: https://lists.gnu.org/archive/html/bug-coreutils/2023-03/msg00007.html
-Fixes: https://gitlab.gnome.org/GNOME/glib/-/issues/2965
-
-Upstream-Status: Backport
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- gio/gioenums.h | 3 +++
- gio/glocalfile.c | 37 +++++++++++++++++++++++++++++++++++++
- 2 files changed, 40 insertions(+)
-
-diff --git a/gio/gioenums.h b/gio/gioenums.h
-index 7fd74a43e..c820cd36d 100644
---- a/gio/gioenums.h
-+++ b/gio/gioenums.h
-@@ -224,6 +224,9 @@ typedef enum {
- * sizes. Normally, the block-size is used, if available, as this is a
- * more accurate representation of disk space used.
- * Compare with `du --apparent-size`.
-+ * Since GLib 2.78. and similarly to `du` since GNU Coreutils 9.2, this will
-+ * ignore the sizes of file types other than regular files and links, as the
-+ * sizes of other file types are not specified in a standard way.
- * @G_FILE_MEASURE_NO_XDEV: Do not cross mount point boundaries.
- * Compare with `du -x`.
- *
-diff --git a/gio/glocalfile.c b/gio/glocalfile.c
-index 67d4b99fb..dbb56902d 100644
---- a/gio/glocalfile.c
-+++ b/gio/glocalfile.c
-@@ -86,6 +86,9 @@
- #define FILE_READ_ONLY_VOLUME 0x00080000
- #endif
-
-+#ifndef S_ISREG
-+#define S_ISREG(m) (((m) & _S_IFMT) == _S_IFREG)
-+#endif
- #ifndef S_ISDIR
- #define S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR)
- #endif
-@@ -2777,6 +2780,39 @@ g_local_file_measure_size_of_contents (gint fd,
- MeasureState *state,
- GError **error);
-
-+/*
-+ * _g_stat_is_size_usable:
-+ * @buf: a #GLocalFileStat.
-+ *
-+ * Checks if the file type is such that the `st_size` field of `struct stat` is
-+ * well-defined by POSIX.
-+ * (see https://pubs.opengroup.org/onlinepubs/009696799/basedefs/sys/stat.h.html)
-+ *
-+ * This behaviour is aligned with `du` from GNU Coreutils 9.2+
-+ * (see https://lists.gnu.org/archive/html/bug-coreutils/2023-03/msg00007.html)
-+ * and makes apparent size sums well-defined; formerly, they depended on the
-+ * implementation, and could differ across filesystems.
-+ *
-+ * Returns: %TRUE if the size field is well-defined, %FALSE otherwise.
-+ **/
-+inline static gboolean
-+_g_stat_is_size_usable (const GLocalFileStat *buf)
-+{
-+#ifndef HAVE_STATX
-+ /* Memory objects are defined by POSIX, but are not supported by statx nor Windows */
-+#ifdef S_TYPEISSHM
-+ if (S_TYPEISSHM (buf))
-+ return TRUE;
-+#endif
-+#ifdef S_TYPEISTMO
-+ if (S_TYPEISTMO (buf))
-+ return TRUE;
-+#endif
-+#endif
-+
-+ return S_ISREG (_g_stat_mode (buf)) || S_ISLNK (_g_stat_mode (buf));
-+}
-+
- static gboolean
- g_local_file_measure_size_of_file (gint parent_fd,
- GSList *name,
-@@ -2836,6 +2872,7 @@ g_local_file_measure_size_of_file (gint parent_fd,
- state->disk_usage += _g_stat_blocks (&buf) * G_GUINT64_CONSTANT (512);
- else
- #endif
-+ if (_g_stat_is_size_usable (&buf))
- state->disk_usage += _g_stat_size (&buf);
-
- if (S_ISDIR (_g_stat_mode (&buf)))
---
-2.39.2
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
new file mode 100644
index 0000000000..788f420d11
--- /dev/null
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
@@ -0,0 +1,32 @@
+From 9aa9574861fad39d0679025e35fe1e188345f685 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Sat, 16 Sep 2023 22:28:27 +0200
+Subject: [PATCH] meson.build: do not enable pidfd features on native glib
+ builds
+
+We still use host distros like alma 8 with kernels older than 5.4,
+where these features are not implemented.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ meson.build | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 1c36993..bbf97fc 100644
+--- a/meson.build
++++ b/meson.build
+@@ -981,7 +981,8 @@ if cc.links('''#include <sys/syscall.h>
+ waitid (P_PIDFD, 0, &child_info, WEXITED | WNOHANG);
+ return 0;
+ }''', name : 'pidfd_open(2) system call')
+- glib_conf.set('HAVE_PIDFD', 1)
++ #requires kernel 5.4+
++ #glib_conf.set('HAVE_PIDFD', 1)
+ endif
+
+ # Check for __uint128_t (gcc) by checking for 128-bit division
+--
+2.30.2
+
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
index 3dba599fc0..841fedef8a 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
@@ -1,4 +1,4 @@
-From 38e401969a2ff8269919cbeacec733a67f041735 Mon Sep 17 00:00:00 2001
+From b90d13900dd2777c2ab90c5b0be1a872c10a17da Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Fri, 11 Mar 2016 15:35:55 +0000
Subject: [PATCH] glib-2.0: relocate the GIO module directory for native builds
@@ -13,25 +13,28 @@ Signed-off-by: Ross Burton <ross.burton@intel.com>
Port patch to 2.48
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+
---
- gio/giomodule.c | 5 -----
- 1 file changed, 5 deletions(-)
+ gio/giomodule.c | 7 -------
+ 1 file changed, 7 deletions(-)
diff --git a/gio/giomodule.c b/gio/giomodule.c
-index 11ce7d8..cc27ecd 100644
+index 17fabe6..8021208 100644
--- a/gio/giomodule.c
+++ b/gio/giomodule.c
-@@ -1271,9 +1271,6 @@ get_gio_module_dir (void)
+@@ -1271,11 +1271,6 @@ get_gio_module_dir (void)
g_free (install_dir);
#else
module_dir = g_strdup (GIO_MODULE_DIR);
-#ifdef __APPLE__
-#include "TargetConditionals.h"
--#if TARGET_OS_OSX
+-/* Only auto-relocate on macOS, not watchOS etc; older macOS SDKs only define TARGET_OS_MAC */
+-#if (defined (TARGET_OS_OSX) && TARGET_OS_OSX) || \
+- (!defined (TARGET_OS_OSX) && defined (TARGET_OS_MAC) && TARGET_OS_MAC)
#include <dlfcn.h>
{
g_autofree gchar *path = NULL;
-@@ -1292,8 +1289,6 @@ get_gio_module_dir (void)
+@@ -1294,8 +1289,6 @@ get_gio_module_dir (void)
}
}
}
@@ -40,6 +43,3 @@ index 11ce7d8..cc27ecd 100644
#endif
}
---
-2.30.2
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.76.4.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.78.0.bb
index 64a3c6d80c..500e4e873e 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.76.4.bb
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.78.0.bb
@@ -14,12 +14,12 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
- file://0001-gio-tests-portal-support-Fix-snap-test-ordering-race.patch \
- file://0001-glocalfile-Sum-apparent-size-only-for-files-and-syml.patch \
"
-SRC_URI:append:class-native = " file://relocate-modules.patch"
+SRC_URI:append:class-native = " file://relocate-modules.patch \
+ file://0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch \
+ "
-SRC_URI[sha256sum] = "5a5a191c96836e166a7771f7ea6ca2b0069c603c7da3cba1cd38d1694a395dda"
+SRC_URI[sha256sum] = "44eaab8b720877ce303c5540b657b126f12dc94972d9880b52959f43fb537b30"
# Find any meson cross files in FILESPATH that are relevant for the current
# build (using siteinfo) and add them to EXTRA_OEMESON.
diff --git a/poky/meta/recipes-core/glib-2.0/glib.inc b/poky/meta/recipes-core/glib-2.0/glib.inc
index 878dd107de..b946e798bb 100644
--- a/poky/meta/recipes-core/glib-2.0/glib.inc
+++ b/poky/meta/recipes-core/glib-2.0/glib.inc
@@ -54,6 +54,7 @@ FILES:${PN} = "${libdir}/lib*${SOLIBS} \
${libdir}/gio \
${libexecdir}/*gio-querymodules \
${libexecdir}/*gio-launch-desktop \
+ ${datadir}/glib-2.0/dtds \
${datadir}/glib-2.0/schemas"
FILES:${PN}-utils += "${bindir}/glib-genmarshal \
@@ -133,7 +134,13 @@ do_install:append:class-target () {
# https://gitlab.gnome.org/GNOME/glib/-/issues/2810
rm -f ${D}${datadir}/installed-tests/glib/thread-pool-slow.test
}
-
+do_install:append:class-target:libc-musl () {
+ # Remove failing tests on musl libc systems, this helps set baseline for musl testing
+ # they remain to be rootcaused and fixed but marked known failures here.
+ for t in convert.test collate.test gdatetime.test date.test converter-stream.test option-context.test; do
+ rm -rf ${D}${datadir}/installed-tests/glib/$t
+ done
+}
# As we do not build python3 for windows, makes no sense to ship the script that's using it
do_install:append:mingw32() {
rm -f ${D}${bindir}/gtester-report
@@ -170,6 +177,12 @@ RDEPENDS:${PN}-ptest += "\
python3-modules \
${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'python3-dbusmock', '', d)} \
${PN}-codegen \
+ locale-base-de-de \
+ locale-base-es-es \
+ locale-base-en-gb \
+ locale-base-en-us \
+ locale-base-fr-fr \
+ locale-base-ru-ru \
"
RDEPENDS:${PN}-ptest:append:libc-glibc = "\
@@ -184,18 +197,12 @@ RDEPENDS:${PN}-ptest:append:libc-glibc = "\
glibc-gconv-iso8859-15 \
glibc-charmap-invariant \
glibc-localedata-translit-cjk-variants \
- locale-base-tr-tr \
locale-base-lt-lt \
locale-base-ja-jp.euc-jp \
locale-base-fa-ir \
- locale-base-ru-ru \
- locale-base-de-de \
locale-base-hr-hr \
locale-base-el-gr \
- locale-base-fr-fr \
- locale-base-es-es \
- locale-base-en-gb \
- locale-base-en-us \
locale-base-pl-pl \
locale-base-pl-pl.iso-8859-2 \
+ locale-base-tr-tr \
"
diff --git a/poky/meta/recipes-core/glibc/glibc-version.inc b/poky/meta/recipes-core/glibc/glibc-version.inc
index a907444f50..19b98bc11a 100644
--- a/poky/meta/recipes-core/glibc/glibc-version.inc
+++ b/poky/meta/recipes-core/glibc/glibc-version.inc
@@ -1,8 +1,13 @@
SRCBRANCH ?= "release/2.38/master"
PV = "2.38+git"
-SRCREV_glibc ?= "1aed90c9c8f8be9f68b58e96b6e4cd0fc08eb2b1"
+SRCREV_glibc ?= "750a45a783906a19591fb8ff6b7841470f1f5701"
SRCREV_localedef ?= "e0eca29583b9e0f62645c4316ced93cf4e4e26e1"
GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git;protocol=https"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.(?!90)\d+)*)"
+
+CVE_STATUS[CVE-2023-4527] = "fixed-version: Fixed in stable branch updates"
+CVE_STATUS[CVE-2023-4911] = "fixed-version: Fixed in stable branch updates"
+CVE_STATUS[CVE-2023-4806] = "fixed-version: Fixed in stable branch updates"
+CVE_STATUS[CVE-2023-4527] = "fixed-version: Fixed in stable branch updates"
diff --git a/poky/meta/recipes-core/glibc/glibc-tests_2.38.bb b/poky/meta/recipes-core/glibc/glibc-y2038-tests_2.38.bb
index 95eb774db7..be49ca4cb7 100644
--- a/poky/meta/recipes-core/glibc/glibc-tests_2.38.bb
+++ b/poky/meta/recipes-core/glibc/glibc-y2038-tests_2.38.bb
@@ -8,7 +8,7 @@ SRC_URI += "\
file://run-ptest \
"
-SUMMARY = "glibc tests to be run with ptest"
+SUMMARY = "glibc tests using time32/time64 interfaces to be run with ptest for the purpose of checking y2038 compatiblity"
# Erase some variables already set by glibc_${PV}
python __anonymous() {
diff --git a/poky/meta/recipes-core/glibc/ldconfig-native_2.12.1.bb b/poky/meta/recipes-core/glibc/ldconfig-native_2.12.1.bb
index e867ceb3ec..4db67c3ad4 100644
--- a/poky/meta/recipes-core/glibc/ldconfig-native_2.12.1.bb
+++ b/poky/meta/recipes-core/glibc/ldconfig-native_2.12.1.bb
@@ -18,7 +18,6 @@ SRC_URI = "file://ldconfig-native-2.12.1.tar.bz2 \
file://add-riscv-support.patch \
"
-PR = "r2"
FILESEXTRAPATHS =. "${FILE_DIRNAME}/${P}:"
diff --git a/poky/meta/recipes-core/images/core-image-ptest.bb b/poky/meta/recipes-core/images/core-image-ptest.bb
index b81ab7b7c8..b6f5c2fd60 100644
--- a/poky/meta/recipes-core/images/core-image-ptest.bb
+++ b/poky/meta/recipes-core/images/core-image-ptest.bb
@@ -24,6 +24,9 @@ IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-mdadm = "1524288"
IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-strace = "1024288"
IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-lttng-tools = "1524288"
+# tar-ptest in particular needs more space
+IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-tar = "1524288"
+
# ptests need more memory than standard to avoid the OOM killer
QB_MEM = "-m 1024"
QB_MEM:virtclass-mcextend-lttng-tools = "-m 4096"
diff --git a/poky/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb b/poky/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
index d39323db2f..409b1c0403 100644
--- a/poky/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
+++ b/poky/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
@@ -4,7 +4,6 @@ HOMEPAGE = "http://packages.debian.org/ifupdown"
SECTION = "base"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://${WORKDIR}/copyright;md5=3dd6192d306f582dee7687da3d8748ab"
-PR = "r7"
inherit update-rc.d
diff --git a/poky/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb b/poky/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb
index ab460ac797..198459f2b2 100644
--- a/poky/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb
+++ b/poky/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb
@@ -3,7 +3,6 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
SRC_URI = "file://init-boot.sh"
-PR = "r2"
S = "${WORKDIR}"
diff --git a/poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb b/poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
index 4e76e20026..39ea51ccbd 100644
--- a/poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
+++ b/poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
@@ -4,7 +4,6 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
RDEPENDS:${PN} += "${VIRTUAL-RUNTIME_base-utils}"
RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}"
-PR = "r4"
inherit allarch
diff --git a/poky/meta/recipes-core/initrdscripts/initramfs-live-boot-tiny_1.0.bb b/poky/meta/recipes-core/initrdscripts/initramfs-live-boot-tiny_1.0.bb
index 59a530506a..847dbc0472 100644
--- a/poky/meta/recipes-core/initrdscripts/initramfs-live-boot-tiny_1.0.bb
+++ b/poky/meta/recipes-core/initrdscripts/initramfs-live-boot-tiny_1.0.bb
@@ -5,7 +5,6 @@ DEPENDS = "virtual/kernel"
RDEPENDS:${PN} = "busybox-mdev"
SRC_URI = "file://init-live.sh"
-PR = "r12"
S = "${WORKDIR}"
diff --git a/poky/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb b/poky/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
index 8f56d7ab90..b3b991b8fd 100644
--- a/poky/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
+++ b/poky/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
@@ -5,7 +5,6 @@ DEPENDS = "virtual/kernel"
RDEPENDS:${PN} = "udev udev-extraconf"
SRC_URI = "file://init-live.sh"
-PR = "r12"
S = "${WORKDIR}"
diff --git a/poky/meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb b/poky/meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb
index ecbd567d6c..e10faadfbe 100644
--- a/poky/meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb
+++ b/poky/meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb
@@ -3,7 +3,6 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
SRC_URI = "file://init-install-efi.sh"
-PR = "r1"
RDEPENDS:${PN} = "parted e2fsprogs-mke2fs dosfstools util-linux-blkid ${VIRTUAL-RUNTIME_base-utils}"
RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}"
diff --git a/poky/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb b/poky/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb
index 674d49ecdf..9046d06c02 100644
--- a/poky/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb
+++ b/poky/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb
@@ -3,7 +3,6 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
SRC_URI = "file://init-install.sh"
-PR = "r9"
S = "${WORKDIR}"
diff --git a/poky/meta/recipes-core/initrdscripts/initramfs-module-install-efi_1.0.bb b/poky/meta/recipes-core/initrdscripts/initramfs-module-install-efi_1.0.bb
index fb19484555..b7499644f0 100644
--- a/poky/meta/recipes-core/initrdscripts/initramfs-module-install-efi_1.0.bb
+++ b/poky/meta/recipes-core/initrdscripts/initramfs-module-install-efi_1.0.bb
@@ -4,7 +4,6 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
RDEPENDS:${PN} = "initramfs-framework-base parted e2fsprogs-mke2fs dosfstools util-linux-blkid ${VIRTUAL-RUNTIME_base-utils}"
RRECOMMENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils-syslog}"
-PR = "r4"
SRC_URI = "file://init-install-efi.sh"
diff --git a/poky/meta/recipes-core/initrdscripts/initramfs-module-install_1.0.bb b/poky/meta/recipes-core/initrdscripts/initramfs-module-install_1.0.bb
index 0fc2c004c4..11db7124af 100644
--- a/poky/meta/recipes-core/initrdscripts/initramfs-module-install_1.0.bb
+++ b/poky/meta/recipes-core/initrdscripts/initramfs-module-install_1.0.bb
@@ -9,7 +9,6 @@ COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|loongarch64.*)-(linux.*|free
COMPATIBLE_HOST:armv7a = 'null'
COMPATIBLE_HOST:armv7ve = 'null'
-PR = "r1"
SRC_URI = "file://init-install.sh"
diff --git a/poky/meta/recipes-core/initrdscripts/initramfs-module-setup-live_1.0.bb b/poky/meta/recipes-core/initrdscripts/initramfs-module-setup-live_1.0.bb
index d8ce024b83..48a779e9aa 100644
--- a/poky/meta/recipes-core/initrdscripts/initramfs-module-setup-live_1.0.bb
+++ b/poky/meta/recipes-core/initrdscripts/initramfs-module-setup-live_1.0.bb
@@ -3,7 +3,6 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
RDEPENDS:${PN} = "initramfs-framework-base udev-extraconf"
-PR = "r4"
inherit allarch
diff --git a/poky/meta/recipes-core/initscripts/initscripts_1.0.bb b/poky/meta/recipes-core/initscripts/initscripts_1.0.bb
index 4dc477bb8d..4b34c6a67f 100644
--- a/poky/meta/recipes-core/initscripts/initscripts_1.0.bb
+++ b/poky/meta/recipes-core/initscripts/initscripts_1.0.bb
@@ -4,7 +4,6 @@ DESCRIPTION = "Initscripts provide the basic system startup initialization scrip
SECTION = "base"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://functions;beginline=7;endline=7;md5=829e563511c9a1d6d41f17a7a4989d6a"
-PR = "r155"
INHIBIT_DEFAULT_DEPS = "1"
diff --git a/poky/meta/recipes-core/kbd/kbd_2.6.2.bb b/poky/meta/recipes-core/kbd/kbd_2.6.3.bb
index abd039f7a9..5287781ac1 100644
--- a/poky/meta/recipes-core/kbd/kbd_2.6.2.bb
+++ b/poky/meta/recipes-core/kbd/kbd_2.6.3.bb
@@ -16,7 +16,7 @@ RCONFLICTS:${PN} = "console-tools"
SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/${BP}.tar.xz \
"
-SRC_URI[sha256sum] = "33e3bb3c3f55933b10f053b14b5f69a2e24c28543e9ec7690246fe47628dd94f"
+SRC_URI[sha256sum] = "04996c08d7d1c460966fb244a3d3883352c2674b7ad522003d9f4ecb8ab48deb"
EXTRA_OECONF = "--disable-tests"
PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.36.bb b/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.36.bb
index ec9f9f4fa3..d5546ce9ba 100644
--- a/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.36.bb
+++ b/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.36.bb
@@ -13,6 +13,6 @@ API = "--enable-obsolete-api"
do_install:append () {
rm -rf ${D}${includedir}
rm -rf ${D}${libdir}/pkgconfig
+ rm -rf ${D}${libdir}/libcrypt.so
rm -rf ${D}${datadir}
}
-
diff --git a/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb b/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb
index 2f7dad7e82..d0321f1bb5 100644
--- a/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb
+++ b/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb
@@ -225,7 +225,7 @@ def initialize_db(conn):
c.execute("CREATE TABLE IF NOT EXISTS META (YEAR INTEGER UNIQUE, DATE TEXT)")
c.execute("CREATE TABLE IF NOT EXISTS NVD (ID TEXT UNIQUE, SUMMARY TEXT, \
- SCOREV2 TEXT, SCOREV3 TEXT, MODIFIED INTEGER, VECTOR TEXT)")
+ SCOREV2 TEXT, SCOREV3 TEXT, MODIFIED INTEGER, VECTOR TEXT, VECTORSTRING TEXT)")
c.execute("CREATE TABLE IF NOT EXISTS PRODUCTS (ID TEXT, \
VENDOR TEXT, PRODUCT TEXT, VERSION_START TEXT, OPERATOR_START TEXT, \
@@ -299,6 +299,7 @@ def update_db(conn, elt):
"""
accessVector = None
+ vectorString = None
cveId = elt['cve']['id']
if elt['cve']['vulnStatus'] == "Rejected":
return
@@ -309,25 +310,29 @@ def update_db(conn, elt):
date = elt['cve']['lastModified']
try:
accessVector = elt['cve']['metrics']['cvssMetricV2'][0]['cvssData']['accessVector']
+ vectorString = elt['cve']['metrics']['cvssMetricV2'][0]['cvssData']['vectorString']
cvssv2 = elt['cve']['metrics']['cvssMetricV2'][0]['cvssData']['baseScore']
except KeyError:
cvssv2 = 0.0
cvssv3 = None
try:
accessVector = accessVector or elt['cve']['metrics']['cvssMetricV30'][0]['cvssData']['attackVector']
+ vectorString = vectorString or elt['cve']['metrics']['cvssMetricV30'][0]['cvssData']['vectorString']
cvssv3 = elt['cve']['metrics']['cvssMetricV30'][0]['cvssData']['baseScore']
except KeyError:
pass
try:
accessVector = accessVector or elt['cve']['metrics']['cvssMetricV31'][0]['cvssData']['attackVector']
+ vectorString = vectorString or elt['cve']['metrics']['cvssMetricV31'][0]['cvssData']['vectorString']
cvssv3 = cvssv3 or elt['cve']['metrics']['cvssMetricV31'][0]['cvssData']['baseScore']
except KeyError:
pass
accessVector = accessVector or "UNKNOWN"
+ vectorString = vectorString or "UNKNOWN"
cvssv3 = cvssv3 or 0.0
- conn.execute("insert or replace into NVD values (?, ?, ?, ?, ?, ?)",
- [cveId, cveDesc, cvssv2, cvssv3, date, accessVector]).close()
+ conn.execute("insert or replace into NVD values (?, ?, ?, ?, ?, ?, ?)",
+ [cveId, cveDesc, cvssv2, cvssv3, date, accessVector, vectorString]).close()
try:
for config in elt['cve']['configurations']:
diff --git a/poky/meta/recipes-core/meta/meta-environment.bb b/poky/meta/recipes-core/meta/meta-environment.bb
index 7118fb2aef..65436bc3e6 100644
--- a/poky/meta/recipes-core/meta/meta-environment.bb
+++ b/poky/meta/recipes-core/meta/meta-environment.bb
@@ -1,6 +1,5 @@
SUMMARY = "Package of environment files for SDK"
LICENSE = "MIT"
-PR = "r8"
EXCLUDE_FROM_WORLD = "1"
diff --git a/poky/meta/recipes-core/meta/meta-ide-support.bb b/poky/meta/recipes-core/meta/meta-ide-support.bb
index 7f349f673d..d85aa120c0 100644
--- a/poky/meta/recipes-core/meta/meta-ide-support.bb
+++ b/poky/meta/recipes-core/meta/meta-ide-support.bb
@@ -3,7 +3,6 @@ DESCRIPTION = "Meta package for ensuring the build directory contains all approp
LICENSE = "MIT"
DEPENDS = "virtual/libc gdb-cross-${TARGET_ARCH} qemu-native qemu-helper-native unfs3-native cmake-native autoconf-native automake-native meson-native intltool-native pkgconfig-native"
-PR = "r3"
RM_WORK_EXCLUDE += "${PN}"
inherit toolchain-scripts nopackages deploy testsdk
diff --git a/poky/meta/recipes-core/meta/meta-toolchain.bb b/poky/meta/recipes-core/meta/meta-toolchain.bb
index b02b0665e6..260e03934e 100644
--- a/poky/meta/recipes-core/meta/meta-toolchain.bb
+++ b/poky/meta/recipes-core/meta/meta-toolchain.bb
@@ -1,6 +1,5 @@
SUMMARY = "Meta package for building a installable toolchain"
LICENSE = "MIT"
-PR = "r7"
inherit populate_sdk
diff --git a/poky/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb b/poky/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb
index 4909401c5a..bb4e746237 100644
--- a/poky/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb
+++ b/poky/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb
@@ -36,7 +36,6 @@ DUMMYPROVIDES = "\
/usr/bin/perl \
"
-PR = "r2"
require dummy-sdk-package.inc
diff --git a/poky/meta/recipes-core/musl/bsd-headers/sys-cdefs.h b/poky/meta/recipes-core/musl/bsd-headers/sys-cdefs.h
index 209a623c0f..841a5da8ba 100644
--- a/poky/meta/recipes-core/musl/bsd-headers/sys-cdefs.h
+++ b/poky/meta/recipes-core/musl/bsd-headers/sys-cdefs.h
@@ -1,3 +1,6 @@
+#ifndef _SYS_CDEFS_H_
+#define _SYS_CDEFS_H_
+
#warning usage of non-standard #include <sys/cdefs.h> is deprecated
#undef __P
@@ -24,3 +27,8 @@
# define __THROW
# define __NTH(fct) fct
#endif
+
+#define __CONCAT(x,y) x ## y
+#define __STRING(x) #x
+
+#endif /* _SYS_CDEFS_H_ */
diff --git a/poky/meta/recipes-core/musl/libc-test/run-libc-ptests b/poky/meta/recipes-core/musl/libc-test/run-libc-ptests
new file mode 100644
index 0000000000..0b4b687dec
--- /dev/null
+++ b/poky/meta/recipes-core/musl/libc-test/run-libc-ptests
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+set -e
+
+cd /opt/libc-test
+make cleanall
+make run || true
+
+echo ""
+echo "--- ptest result ---"
+# libc-test runs tests by module(e.g. src/api) and generates sub-module test
+# report(e.g. src/api/REPORT) first. After all tests finish, it generates the
+# consolidated report file src/REPORT.
+report="/opt/libc-test/src/REPORT"
+if ! [ -f "${report}" ]; then
+ echo "${report} not found!"
+ echo "FAIL: libc-test"
+ exit 1
+# libc-test prints error on failure and prints nothing on success.
+elif grep -q '^FAIL src.*\.exe.*' "${report}"; then
+ # Print test failure in ptest format.
+ # e.g. "FAIL src/api/main.exe [status 1]" -> "FAIL: api_main"
+ grep '^FAIL src.*\.exe.*' "${report}" \
+ | sed 's|^FAIL src/|FAIL: |;s|/|_|;s|\.exe.*\]||'
+ exit 1
+else
+ echo "PASS: libc-test"
+fi
diff --git a/poky/meta/recipes-core/musl/libc-test/run-ptest b/poky/meta/recipes-core/musl/libc-test/run-ptest
index 0b4b687dec..53cd34f506 100644
--- a/poky/meta/recipes-core/musl/libc-test/run-ptest
+++ b/poky/meta/recipes-core/musl/libc-test/run-ptest
@@ -1,28 +1,3 @@
#!/bin/sh
-
-set -e
-
-cd /opt/libc-test
-make cleanall
-make run || true
-
-echo ""
-echo "--- ptest result ---"
-# libc-test runs tests by module(e.g. src/api) and generates sub-module test
-# report(e.g. src/api/REPORT) first. After all tests finish, it generates the
-# consolidated report file src/REPORT.
-report="/opt/libc-test/src/REPORT"
-if ! [ -f "${report}" ]; then
- echo "${report} not found!"
- echo "FAIL: libc-test"
- exit 1
-# libc-test prints error on failure and prints nothing on success.
-elif grep -q '^FAIL src.*\.exe.*' "${report}"; then
- # Print test failure in ptest format.
- # e.g. "FAIL src/api/main.exe [status 1]" -> "FAIL: api_main"
- grep '^FAIL src.*\.exe.*' "${report}" \
- | sed 's|^FAIL src/|FAIL: |;s|/|_|;s|\.exe.*\]||'
- exit 1
-else
- echo "PASS: libc-test"
-fi
+chown -R ptest:ptest /opt/libc-test
+ su -c ./run-libc-ptests ptest
diff --git a/poky/meta/recipes-core/musl/libc-test_git.bb b/poky/meta/recipes-core/musl/libc-test_git.bb
index e63abe838d..619a959fd2 100644
--- a/poky/meta/recipes-core/musl/libc-test_git.bb
+++ b/poky/meta/recipes-core/musl/libc-test_git.bb
@@ -13,6 +13,7 @@ SRCREV = "18e28496adee3d84fefdda6efcb9c5b8996a2398"
SRC_URI = " \
git://repo.or.cz/libc-test;branch=master;protocol=https \
file://run-ptest \
+ file://run-libc-ptests \
"
PV = "0+git"
@@ -48,5 +49,9 @@ do_install () {
cp -r ${S}/src ${D}${install_path}
}
+do_install_ptest_base:append() {
+ install -Dm 0755 ${WORKDIR}/run-libc-ptests ${D}${PTEST_PATH}/run-libc-ptests
+}
+
COMPATIBLE_HOST = "null"
COMPATIBLE_HOST:libc-musl = "(.*)"
diff --git a/poky/meta/recipes-core/musl/musl-legacy-error.bb b/poky/meta/recipes-core/musl/musl-legacy-error.bb
new file mode 100644
index 0000000000..5ce5a233ab
--- /dev/null
+++ b/poky/meta/recipes-core/musl/musl-legacy-error.bb
@@ -0,0 +1,26 @@
+# Copyright (C) 2023 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "error API GNU extention implementation"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://error.h;beginline=1;md5=2ee396b23e8507fbf8f98af0471a77c6"
+SECTION = "devel"
+
+SRC_URI = "file://error.h"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+INHIBIT_DEFAULT_DEPS = "1"
+
+S = "${WORKDIR}"
+
+do_install() {
+ install -Dm 0644 ${S}/error.h -t ${D}${includedir}
+}
+#
+# We will skip parsing for non-musl systems
+#
+COMPATIBLE_HOST = ".*-musl.*"
+DEV_PKG_DEPENDENCY = ""
+RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
diff --git a/poky/meta/recipes-core/musl/musl-legacy-error/error.h b/poky/meta/recipes-core/musl/musl-legacy-error/error.h
new file mode 100644
index 0000000000..9a4e1f8d00
--- /dev/null
+++ b/poky/meta/recipes-core/musl/musl-legacy-error/error.h
@@ -0,0 +1,60 @@
+#ifndef _ERROR_H_
+#define _ERROR_H_
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+
+#warning usage of non-standard #include <error.h> is deprecated
+
+static unsigned int error_message_count = 0;
+
+static inline void error(int status, int errnum, const char* format, ...)
+{
+ /* should be fflush(stdout), but that's unspecified if stdout has been closed;
+ * stick with fflush(NULL) for simplicity (glibc checks if the fd is still valid) */
+ fflush(NULL);
+
+ va_list ap;
+ fprintf(stderr, "%s: ", program_invocation_name);
+ va_start(ap, format);
+ vfprintf(stderr, format, ap);
+ va_end(ap);
+ if (errnum)
+ fprintf(stderr, ": %s", strerror(errnum));
+ fprintf(stderr, "\n");
+ error_message_count++;
+ if (status)
+ exit(status);
+}
+
+static int error_one_per_line = 0;
+
+static inline void error_at_line(int status, int errnum, const char *filename,
+ unsigned int linenum, const char *format, ...)
+{
+ va_list ap;
+ if (error_one_per_line) {
+ static const char *old_filename;
+ static int old_linenum;
+ if (linenum == old_linenum && filename == old_filename)
+ return;
+ old_filename = filename;
+ old_linenum = linenum;
+ }
+ fprintf(stderr, "%s: %s:%u: ", program_invocation_name, filename, linenum);
+ va_start(ap, format);
+ vfprintf(stderr, format, ap);
+ va_end(ap);
+ if (errnum)
+ fprintf(stderr, ": %s", strerror(errnum));
+ fprintf(stderr, "\n");
+ error_message_count++;
+ if (status)
+ exit(status);
+}
+
+
+#endif /* _ERROR_H_ */
diff --git a/poky/meta/recipes-core/musl/musl_git.bb b/poky/meta/recipes-core/musl/musl_git.bb
index 4a4fe978f9..7dd949ffaf 100644
--- a/poky/meta/recipes-core/musl/musl_git.bb
+++ b/poky/meta/recipes-core/musl/musl_git.bb
@@ -4,21 +4,17 @@
require musl.inc
inherit linuxloader
-SRCREV = "83b858f83b658bd34eca5d8ad4d145f673ae7e5e"
+SRCREV = "79bdacff83a6bd5b70ff5ae5eb8b6de82c2f7c30"
BASEVER = "1.2.4"
PV = "${BASEVER}+git"
-# mirror is at git://github.com/kraj/musl.git
-
-SRC_URI = "git://git.musl-libc.org/git/musl.git;branch=master;protocol=https \
+SRC_URI = "git://git.etalabs.net/git/musl;branch=master;protocol=https \
file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \
file://0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch \
"
-MIRRORS += "git://git.musl-libc.org/git/musl.git git://github.com/kraj/musl.git"
-
S = "${WORKDIR}/git"
PROVIDES += "virtual/libc virtual/libiconv virtual/libintl virtual/crypt"
diff --git a/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch b/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
index efabc8febc..eeedc9e20f 100644
--- a/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
+++ b/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
@@ -1,7 +1,7 @@
-From 7675a67b8bb207de38ff5a9dc416e8b1028eb8ce Mon Sep 17 00:00:00 2001
+From ac9df4fb92965f1f95a5bdbde5f2f86d0c569711 Mon Sep 17 00:00:00 2001
From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
Date: Fri, 26 Jul 2019 17:34:26 -0400
-Subject: [PATCH 2/4] BaseTools: makefile: adjust to build in under bitbake
+Subject: [PATCH] BaseTools: makefile: adjust to build in under bitbake
Prepend the build flags with those of bitbake. This is to build
using the bitbake native sysroot include and library directories.
@@ -18,13 +18,13 @@ Upstream-Status: Inappropriate [needs to be converted to in-recipe fixups]
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile
-index 1bf003523b..28757aed63 100644
+index d369908a09..22c670f316 100644
--- a/BaseTools/Source/C/Makefiles/header.makefile
+++ b/BaseTools/Source/C/Makefiles/header.makefile
-@@ -82,35 +82,34 @@ $(error Bad HOST_ARCH)
- endif
+@@ -85,35 +85,34 @@ endif
INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I $(MAKEROOT)/Common/ -I .. -I . $(ARCH_INCLUDE)
+ INCLUDE += -I $(EDK2_PATH)/MdePkg/Include
-CPPFLAGS = $(INCLUDE)
+CPPFLAGS += $(INCLUDE)
diff --git a/poky/meta/recipes-core/ovmf/ovmf_git.bb b/poky/meta/recipes-core/ovmf/ovmf_git.bb
index 761c265453..6bbe21ac5c 100644
--- a/poky/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/poky/meta/recipes-core/ovmf/ovmf_git.bb
@@ -26,8 +26,8 @@ SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https \
file://0004-reproducible.patch \
"
-PV = "edk2-stable202305"
-SRCREV = "ba91d0292e593df8528b66f99c1b0b14fadc8e16"
+PV = "edk2-stable202308"
+SRCREV = "819cfc6b42a68790a23509e4fcc58ceb70e1965e"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>edk2-stable.*)"
inherit deploy
diff --git a/poky/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb b/poky/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb
index 9166a0851f..11e31dcba3 100644
--- a/poky/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb
+++ b/poky/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb
@@ -3,7 +3,6 @@
#
SUMMARY = "Host packages for the standalone SDK or external toolchain"
-PR = "r12"
inherit packagegroup nativesdk
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-base.bb b/poky/meta/recipes-core/packagegroups/packagegroup-base.bb
index eeb26ca588..70a1035003 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-base.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-base.bb
@@ -1,5 +1,4 @@
SUMMARY = "Merge machine and distro options to create a basic machine task/package"
-PR = "r83"
#
# packages which content depend on MACHINE_FEATURES need to be MACHINE_ARCH
@@ -130,7 +129,6 @@ RRECOMMENDS:packagegroup-distro-base = "${DISTRO_EXTRA_RRECOMMENDS}"
#
# packages added by machine config
#
-SUMMARY:packagegroup-machine-base = "${MACHINE} extras"
SUMMARY:packagegroup-machine-base = "Extra packages required to fully support ${MACHINE} hardware"
RDEPENDS:packagegroup-machine-base = "${MACHINE_EXTRA_RDEPENDS}"
RRECOMMENDS:packagegroup-machine-base = "${MACHINE_EXTRA_RRECOMMENDS}"
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb b/poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb
index a7bad81023..d96d2f5fff 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb
@@ -4,7 +4,6 @@
SUMMARY = "Minimal boot requirements"
DESCRIPTION = "The minimal set of packages required to boot the system"
-PR = "r17"
PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-core-nfs.bb b/poky/meta/recipes-core/packagegroups/packagegroup-core-nfs.bb
index 35beb3fc05..b8a73175e8 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-core-nfs.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-core-nfs.bb
@@ -3,7 +3,6 @@
#
SUMMARY = "NFS package groups"
-PR = "r2"
inherit packagegroup
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb b/poky/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
index 104f3549d5..84e1a41d9a 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
@@ -3,7 +3,6 @@
#
SUMMARY = "Software development tools"
-PR = "r9"
PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-dropbear.bb b/poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-dropbear.bb
index d06c6a5609..206292ace4 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-dropbear.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-dropbear.bb
@@ -1,5 +1,4 @@
SUMMARY = "Dropbear SSH client/server"
-PR = "r1"
inherit packagegroup
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-openssh.bb b/poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-openssh.bb
index 846df12bc7..392403f21b 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-openssh.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-openssh.bb
@@ -1,5 +1,4 @@
SUMMARY = "OpenSSH SSH client/server"
-PR = "r1"
inherit packagegroup
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb b/poky/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb
index 5ebcbcec82..06fdda90c7 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb
@@ -1,5 +1,4 @@
SUMMARY = "Target packages for the standalone SDK"
-PR = "r8"
PACKAGE_ARCH = "${TUNE_PKGARCH}"
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb
index c75850aa64..56ff1d2b06 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb
@@ -8,7 +8,6 @@ PACKAGE_ARCH = "${TUNE_PKGARCH}"
inherit packagegroup
-PR = "r3"
MTRACE = ""
MTRACE:libc-glibc = "libc-mtrace"
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
index 6330200d2f..62c22a35ab 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
@@ -4,7 +4,6 @@
SUMMARY = "Profiling tools"
-PR = "r3"
PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
index 1fee1c925d..34af40a43f 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
@@ -4,7 +4,6 @@
SUMMARY = "Testing tools/applications"
-PR = "r2"
PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb b/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
index dd000fda49..ae34a8a90b 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
@@ -4,7 +4,6 @@
SUMMARY = "Self-hosting"
DESCRIPTION = "Packages required to run the build system"
-PR = "r13"
PACKAGE_ARCH = "${TUNE_PKGARCH}"
diff --git a/poky/meta/recipes-core/seatd/seatd_0.7.0.bb b/poky/meta/recipes-core/seatd/seatd_0.8.0.bb
index 59ef6ad9c1..14c5b1b7ae 100644
--- a/poky/meta/recipes-core/seatd/seatd_0.7.0.bb
+++ b/poky/meta/recipes-core/seatd/seatd_0.8.0.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=715a99d2dd552e6188e74d4ed2914d5a"
SRC_URI = "git://git.sr.ht/~kennylevinsen/seatd;protocol=https;branch=master \
file://init"
-SRCREV = "a803ba0502cccf147eec7fbcacd11c5b8643c0e0"
+SRCREV = "3e9ef69f14f630a719dd464f3c90a7932f1c8296"
S = "${WORKDIR}/git"
inherit meson pkgconfig update-rc.d
diff --git a/poky/meta/recipes-core/systemd/systemd-boot_254.bb b/poky/meta/recipes-core/systemd/systemd-boot_254.4.bb
index 4ee25ee72f..4ee25ee72f 100644
--- a/poky/meta/recipes-core/systemd/systemd-boot_254.bb
+++ b/poky/meta/recipes-core/systemd/systemd-boot_254.4.bb
diff --git a/poky/meta/recipes-core/systemd/systemd-compat-units.bb b/poky/meta/recipes-core/systemd/systemd-compat-units.bb
index 75b1045728..253bc9fcf1 100644
--- a/poky/meta/recipes-core/systemd/systemd-compat-units.bb
+++ b/poky/meta/recipes-core/systemd/systemd-compat-units.bb
@@ -2,7 +2,6 @@ SUMMARY = "Enhances systemd compatilibity with existing SysVinit scripts"
HOMEPAGE = "http://www.freedesktop.org/wiki/Software/systemd"
LICENSE = "MIT"
-PR = "r29"
PACKAGE_WRITE_DEPS += "systemd-systemctl-native"
diff --git a/poky/meta/recipes-core/systemd/systemd-machine-units_1.0.bb b/poky/meta/recipes-core/systemd/systemd-machine-units_1.0.bb
index 7e59e86f9b..8df7ff7cf1 100644
--- a/poky/meta/recipes-core/systemd/systemd-machine-units_1.0.bb
+++ b/poky/meta/recipes-core/systemd/systemd-machine-units_1.0.bb
@@ -5,7 +5,6 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
PACKAGE_ARCH = "${MACHINE_ARCH}"
-PR = "r19"
inherit systemd features_check
REQUIRED_DISTRO_FEATURES += "usrmerge"
diff --git a/poky/meta/recipes-core/systemd/systemd-serialgetty.bb b/poky/meta/recipes-core/systemd/systemd-serialgetty.bb
index c2c67e6fe0..44a93ac684 100644
--- a/poky/meta/recipes-core/systemd/systemd-serialgetty.bb
+++ b/poky/meta/recipes-core/systemd/systemd-serialgetty.bb
@@ -3,7 +3,6 @@ HOMEPAGE = "https://www.freedesktop.org/wiki/Software/systemd/"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
-PR = "r5"
SERIAL_CONSOLES ?= "115200;ttyS0"
SERIAL_TERM ?= "linux"
diff --git a/poky/meta/recipes-core/systemd/systemd-systemctl-native.bb b/poky/meta/recipes-core/systemd/systemd-systemctl-native.bb
index fadc8433d8..54283bcba1 100644
--- a/poky/meta/recipes-core/systemd/systemd-systemctl-native.bb
+++ b/poky/meta/recipes-core/systemd/systemd-systemctl-native.bb
@@ -3,7 +3,6 @@ SUMMARY = "Wrapper for enabling systemd services"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-PR = "r6"
inherit native
diff --git a/poky/meta/recipes-core/systemd/systemd.inc b/poky/meta/recipes-core/systemd/systemd.inc
index e5686fbe44..3ba0b5ffc5 100644
--- a/poky/meta/recipes-core/systemd/systemd.inc
+++ b/poky/meta/recipes-core/systemd/systemd.inc
@@ -14,10 +14,8 @@ LICENSE = "GPL-2.0-only & LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
-SRCREV = "994c7978608a0bd9b317f4f74ff266dd50a3e74e"
+SRCREV = "2e7504449a51fb38db9cd2da391c6434f82def51"
SRCBRANCH = "v254-stable"
-SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH} \
- file://0001-elf2efi-Fix-header-size-calculation.patch \
- "
+SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH}"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-elf2efi-Fix-header-size-calculation.patch b/poky/meta/recipes-core/systemd/systemd/0001-elf2efi-Fix-header-size-calculation.patch
deleted file mode 100644
index 0e8924d27d..0000000000
--- a/poky/meta/recipes-core/systemd/systemd/0001-elf2efi-Fix-header-size-calculation.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From d082d6502fa86e08dda858933838dde0406b824f Mon Sep 17 00:00:00 2001
-From: Jan Janssen <medhefgo@web.de>
-Date: Sun, 30 Jul 2023 20:59:04 +0200
-Subject: [PATCH] elf2efi: Fix header size calculation
-
-The PE header size calculation failed to take the PE magic and coff
-header size into account, which will lead to header truncation if we are
-writing only 5 sections.
-
-Upstream-Status: Backport [https://github.com/systemd/systemd/commit/ee91e06a5841c30bc7306260528ef407e0ebbab3]
-
-Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
----
- tools/elf2efi.py | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/tools/elf2efi.py b/tools/elf2efi.py
-index e233c8e3ab..2e478940f5 100755
---- a/tools/elf2efi.py
-+++ b/tools/elf2efi.py
-@@ -210,6 +210,7 @@ FILE_ALIGNMENT = 512
-
- # Nobody cares about DOS headers, so put the PE header right after.
- PE_OFFSET = 64
-+PE_MAGIC = b"PE\0\0"
-
-
- def align_to(x: int, align: int) -> int:
-@@ -304,7 +305,10 @@ def copy_sections(elf: ELFFile, opt: PeOptionalHeader) -> typing.List[PeSection]
-
-
- def apply_elf_relative_relocation(
-- reloc: ElfRelocation, image_base: int, sections: typing.List[PeSection], addend_size: int
-+ reloc: ElfRelocation,
-+ image_base: int,
-+ sections: typing.List[PeSection],
-+ addend_size: int,
- ):
- # fmt: off
- [target] = [
-@@ -439,7 +443,7 @@ def write_pe(
- file.seek(0x3C, io.SEEK_SET)
- file.write(PE_OFFSET.to_bytes(2, byteorder="little"))
- file.seek(PE_OFFSET, io.SEEK_SET)
-- file.write(b"PE\0\0")
-+ file.write(PE_MAGIC)
- file.write(coff)
- file.write(opt)
-
-@@ -453,6 +457,8 @@ def write_pe(
- file.write(pe_s)
- offset = align_to(offset + len(pe_s.data), FILE_ALIGNMENT)
-
-+ assert file.tell() <= opt.SizeOfHeaders
-+
- for pe_s in sections:
- file.seek(pe_s.PointerToRawData, io.SEEK_SET)
- file.write(pe_s.data)
-@@ -515,6 +521,8 @@ def elf2efi(args: argparse.Namespace):
-
- opt.SizeOfHeaders = align_to(
- PE_OFFSET
-+ + len(PE_MAGIC)
-+ + sizeof(PeCoffHeader)
- + coff.SizeOfOptionalHeader
- + sizeof(PeSection) * max(coff.NumberOfSections, args.minimum_sections),
- FILE_ALIGNMENT,
---
-2.34.1
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0014-Use-uintmax_t-for-handling-rlim_t.patch b/poky/meta/recipes-core/systemd/systemd/0014-Use-uintmax_t-for-handling-rlim_t.patch
index 1d50faa363..2071f4fb20 100644
--- a/poky/meta/recipes-core/systemd/systemd/0014-Use-uintmax_t-for-handling-rlim_t.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0014-Use-uintmax_t-for-handling-rlim_t.patch
@@ -26,11 +26,9 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
src/core/execute.c | 4 ++--
3 files changed, 9 insertions(+), 15 deletions(-)
-diff --git a/src/basic/format-util.h b/src/basic/format-util.h
-index 8719df3e29..9becc96066 100644
--- a/src/basic/format-util.h
+++ b/src/basic/format-util.h
-@@ -34,13 +34,7 @@ assert_cc(sizeof(gid_t) == sizeof(uint32_t));
+@@ -34,13 +34,7 @@ assert_cc(sizeof(gid_t) == sizeof(uint32
# error Unknown timex member size
#endif
@@ -45,11 +43,9 @@ index 8719df3e29..9becc96066 100644
#if SIZEOF_DEV_T == 8
# define DEV_FMT "%" PRIu64
-diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c
-index 33dfde9d6c..e018fd81fd 100644
--- a/src/basic/rlimit-util.c
+++ b/src/basic/rlimit-util.c
-@@ -44,7 +44,7 @@ int setrlimit_closest(int resource, const struct rlimit *rlim) {
+@@ -44,7 +44,7 @@ int setrlimit_closest(int resource, cons
fixed.rlim_max == highest.rlim_max)
return 0;
@@ -58,7 +54,7 @@ index 33dfde9d6c..e018fd81fd 100644
return RET_NERRNO(setrlimit(resource, &fixed));
}
-@@ -307,13 +307,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) {
+@@ -307,13 +307,13 @@ int rlimit_format(const struct rlimit *r
if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY)
r = free_and_strdup(&s, "infinity");
else if (rl->rlim_cur >= RLIM_INFINITY)
@@ -76,20 +72,18 @@ index 33dfde9d6c..e018fd81fd 100644
if (r < 0)
return -ENOMEM;
-@@ -403,7 +403,7 @@ int rlimit_nofile_safe(void) {
-
- rl.rlim_cur = FD_SETSIZE;
+@@ -407,7 +407,7 @@ int rlimit_nofile_safe(void) {
+ rl.rlim_max = MIN(rl.rlim_max, (rlim_t) read_nr_open());
+ rl.rlim_cur = MIN((rlim_t) FD_SETSIZE, rl.rlim_max);
if (setrlimit(RLIMIT_NOFILE, &rl) < 0)
- return log_debug_errno(errno, "Failed to lower RLIMIT_NOFILE's soft limit to " RLIM_FMT ": %m", rl.rlim_cur);
+ return log_debug_errno(errno, "Failed to lower RLIMIT_NOFILE's soft limit to " RLIM_FMT ": %m", (uintmax_t)rl.rlim_cur);
return 1;
}
-diff --git a/src/core/execute.c b/src/core/execute.c
-index 8ef76de9ab..ea1c203e43 100644
--- a/src/core/execute.c
+++ b/src/core/execute.c
-@@ -6667,9 +6667,9 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) {
+@@ -6707,9 +6707,9 @@ void exec_context_dump(const ExecContext
for (unsigned i = 0; i < RLIM_NLIMITS; i++)
if (c->rlimit[i]) {
fprintf(f, "%sLimit%s: " RLIM_FMT "\n",
@@ -101,6 +95,3 @@ index 8ef76de9ab..ea1c203e43 100644
}
if (c->ioprio_set) {
---
-2.39.2
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0021-do-not-disable-buffer-in-writing-files.patch b/poky/meta/recipes-core/systemd/systemd/0021-do-not-disable-buffer-in-writing-files.patch
index ef6b5342ca..c85087219c 100644
--- a/poky/meta/recipes-core/systemd/systemd/0021-do-not-disable-buffer-in-writing-files.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0021-do-not-disable-buffer-in-writing-files.patch
@@ -42,11 +42,9 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
src/vconsole/vconsole-setup.c | 2 +-
20 files changed, 36 insertions(+), 37 deletions(-)
-diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
-index 11b4375ed5..7d81a6007f 100644
--- a/src/basic/cgroup-util.c
+++ b/src/basic/cgroup-util.c
-@@ -400,7 +400,7 @@ int cg_kill_kernel_sigkill(const char *controller, const char *path) {
+@@ -400,7 +400,7 @@ int cg_kill_kernel_sigkill(const char *c
if (r < 0)
return r;
@@ -55,7 +53,7 @@ index 11b4375ed5..7d81a6007f 100644
if (r < 0)
return r;
-@@ -806,7 +806,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
+@@ -806,7 +806,7 @@ int cg_install_release_agent(const char
sc = strstrip(contents);
if (isempty(sc)) {
@@ -64,7 +62,7 @@ index 11b4375ed5..7d81a6007f 100644
if (r < 0)
return r;
} else if (!path_equal(sc, agent))
-@@ -824,7 +824,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
+@@ -824,7 +824,7 @@ int cg_install_release_agent(const char
sc = strstrip(contents);
if (streq(sc, "0")) {
@@ -73,7 +71,7 @@ index 11b4375ed5..7d81a6007f 100644
if (r < 0)
return r;
-@@ -851,7 +851,7 @@ int cg_uninstall_release_agent(const char *controller) {
+@@ -851,7 +851,7 @@ int cg_uninstall_release_agent(const cha
if (r < 0)
return r;
@@ -82,7 +80,7 @@ index 11b4375ed5..7d81a6007f 100644
if (r < 0)
return r;
-@@ -861,7 +861,7 @@ int cg_uninstall_release_agent(const char *controller) {
+@@ -861,7 +861,7 @@ int cg_uninstall_release_agent(const cha
if (r < 0)
return r;
@@ -91,7 +89,7 @@ index 11b4375ed5..7d81a6007f 100644
if (r < 0)
return r;
-@@ -1764,7 +1764,7 @@ int cg_set_attribute(const char *controller, const char *path, const char *attri
+@@ -1764,7 +1764,7 @@ int cg_set_attribute(const char *control
if (r < 0)
return r;
@@ -100,11 +98,9 @@ index 11b4375ed5..7d81a6007f 100644
}
int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) {
-diff --git a/src/basic/namespace-util.c b/src/basic/namespace-util.c
-index f5c0e04cec..272b920022 100644
--- a/src/basic/namespace-util.c
+++ b/src/basic/namespace-util.c
-@@ -227,12 +227,12 @@ int userns_acquire(const char *uid_map, const char *gid_map) {
+@@ -227,12 +227,12 @@ int userns_acquire(const char *uid_map,
freeze();
xsprintf(path, "/proc/" PID_FMT "/uid_map", pid);
@@ -119,11 +115,9 @@ index f5c0e04cec..272b920022 100644
if (r < 0)
return log_error_errno(r, "Failed to write GID map: %m");
-diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
-index 64a95dd866..12cd16db1c 100644
--- a/src/basic/procfs-util.c
+++ b/src/basic/procfs-util.c
-@@ -64,13 +64,13 @@ int procfs_tasks_set_limit(uint64_t limit) {
+@@ -64,13 +64,13 @@ int procfs_tasks_set_limit(uint64_t limi
* decrease it, as threads-max is the much more relevant sysctl. */
if (limit > pid_max-1) {
sprintf(buffer, "%" PRIu64, limit+1); /* Add one, since PID 0 is not a valid PID */
@@ -139,11 +133,9 @@ index 64a95dd866..12cd16db1c 100644
if (r < 0) {
uint64_t threads_max;
-diff --git a/src/basic/sysctl-util.c b/src/basic/sysctl-util.c
-index b66a6622ae..8d1c93008a 100644
--- a/src/basic/sysctl-util.c
+++ b/src/basic/sysctl-util.c
-@@ -58,7 +58,7 @@ int sysctl_write(const char *property, const char *value) {
+@@ -58,7 +58,7 @@ int sysctl_write(const char *property, c
log_debug("Setting '%s' to '%s'", p, value);
@@ -152,8 +144,6 @@ index b66a6622ae..8d1c93008a 100644
}
int sysctl_writef(const char *property, const char *format, ...) {
-diff --git a/src/binfmt/binfmt.c b/src/binfmt/binfmt.c
-index e1ddf97914..df6e156f19 100644
--- a/src/binfmt/binfmt.c
+++ b/src/binfmt/binfmt.c
@@ -30,7 +30,7 @@ static bool arg_unregister = false;
@@ -165,7 +155,7 @@ index e1ddf97914..df6e156f19 100644
}
static int apply_rule(const char *filename, unsigned line, const char *rule) {
-@@ -58,7 +58,7 @@ static int apply_rule(const char *filename, unsigned line, const char *rule) {
+@@ -58,7 +58,7 @@ static int apply_rule(const char *filena
if (r >= 0)
log_debug("%s:%u: Rule '%s' deleted.", filename, line, rulename);
@@ -183,11 +173,9 @@ index e1ddf97914..df6e156f19 100644
if (r < 0)
log_warning_errno(r, "Failed to flush binfmt_misc rules, ignoring: %m");
else
-diff --git a/src/core/cgroup.c b/src/core/cgroup.c
-index 4cac3f6a89..bebe2cd120 100644
--- a/src/core/cgroup.c
+++ b/src/core/cgroup.c
-@@ -4349,7 +4349,7 @@ int unit_cgroup_freezer_action(Unit *u, FreezerAction action) {
+@@ -4349,7 +4349,7 @@ int unit_cgroup_freezer_action(Unit *u,
u->freezer_state = FREEZER_THAWING;
}
@@ -196,11 +184,9 @@ index 4cac3f6a89..bebe2cd120 100644
if (r < 0)
return r;
-diff --git a/src/core/main.c b/src/core/main.c
-index c0b8126d96..fe676320ba 100644
--- a/src/core/main.c
+++ b/src/core/main.c
-@@ -1737,7 +1737,7 @@ static void initialize_core_pattern(bool skip_setup) {
+@@ -1737,7 +1737,7 @@ static void initialize_core_pattern(bool
if (getpid_cached() != 1)
return;
@@ -209,11 +195,9 @@ index c0b8126d96..fe676320ba 100644
if (r < 0)
log_warning_errno(r, "Failed to write '%s' to /proc/sys/kernel/core_pattern, ignoring: %m",
arg_early_core_pattern);
-diff --git a/src/core/smack-setup.c b/src/core/smack-setup.c
-index bcaa237c8d..4032bde19e 100644
--- a/src/core/smack-setup.c
+++ b/src/core/smack-setup.c
-@@ -319,17 +319,17 @@ int mac_smack_setup(bool *loaded_policy) {
+@@ -319,17 +319,17 @@ int mac_smack_setup(bool *loaded_policy)
}
#if HAVE_SMACK_RUN_LABEL
@@ -235,8 +219,6 @@ index bcaa237c8d..4032bde19e 100644
if (r < 0)
log_warning_errno(r, "Failed to set SMACK netlabel rule \"127.0.0.1 -CIPSO\": %m");
#endif
-diff --git a/src/home/homework.c b/src/home/homework.c
-index 28907386a4..f9e45349a7 100644
--- a/src/home/homework.c
+++ b/src/home/homework.c
@@ -278,7 +278,7 @@ static void drop_caches_now(void) {
@@ -248,11 +230,9 @@ index 28907386a4..f9e45349a7 100644
if (r < 0)
log_warning_errno(r, "Failed to drop caches, ignoring: %m");
else
-diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c
-index 8c65ee3469..153edab081 100644
--- a/src/libsystemd/sd-device/sd-device.c
+++ b/src/libsystemd/sd-device/sd-device.c
-@@ -2515,7 +2515,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr,
+@@ -2515,7 +2515,7 @@ _public_ int sd_device_set_sysattr_value
if (!value)
return -ENOMEM;
@@ -261,11 +241,9 @@ index 8c65ee3469..153edab081 100644
if (r < 0) {
/* On failure, clear cache entry, as we do not know how it fails. */
device_remove_cached_sysattr_value(device, sysattr);
-diff --git a/src/nspawn/nspawn-cgroup.c b/src/nspawn/nspawn-cgroup.c
-index 0deb4ebb30..bae8eead9e 100644
--- a/src/nspawn/nspawn-cgroup.c
+++ b/src/nspawn/nspawn-cgroup.c
-@@ -122,7 +122,7 @@ int sync_cgroup(pid_t pid, CGroupUnified unified_requested, uid_t uid_shift) {
+@@ -122,7 +122,7 @@ int sync_cgroup(pid_t pid, CGroupUnified
fn = strjoina(tree, cgroup, "/cgroup.procs");
sprintf(pid_string, PID_FMT, pid);
@@ -274,8 +252,6 @@ index 0deb4ebb30..bae8eead9e 100644
if (r < 0) {
log_error_errno(r, "Failed to move process: %m");
goto finish;
-diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
-index 36d336dfc8..8c5c69596b 100644
--- a/src/nspawn/nspawn.c
+++ b/src/nspawn/nspawn.c
@@ -2774,7 +2774,7 @@ static int reset_audit_loginuid(void) {
@@ -305,8 +281,6 @@ index 36d336dfc8..8c5c69596b 100644
if (r < 0)
return log_error_errno(r, "Failed to write GID map: %m");
-diff --git a/src/shared/binfmt-util.c b/src/shared/binfmt-util.c
-index a26175474b..1413a9c72c 100644
--- a/src/shared/binfmt-util.c
+++ b/src/shared/binfmt-util.c
@@ -46,7 +46,7 @@ int disable_binfmt(void) {
@@ -318,11 +292,9 @@ index a26175474b..1413a9c72c 100644
if (r < 0)
return log_warning_errno(r, "Failed to unregister binfmt_misc entries: %m");
-diff --git a/src/shared/cgroup-setup.c b/src/shared/cgroup-setup.c
-index 2ea83f05d3..8626bb184c 100644
--- a/src/shared/cgroup-setup.c
+++ b/src/shared/cgroup-setup.c
-@@ -351,7 +351,7 @@ int cg_attach(const char *controller, const char *path, pid_t pid) {
+@@ -351,7 +351,7 @@ int cg_attach(const char *controller, co
xsprintf(c, PID_FMT "\n", pid);
@@ -340,11 +312,9 @@ index 2ea83f05d3..8626bb184c 100644
if (r < 0) {
log_debug_errno(r, "Failed to %s controller %s for %s (%s): %m",
FLAGS_SET(mask, bit) ? "enable" : "disable", n, p, fs);
-diff --git a/src/shared/coredump-util.c b/src/shared/coredump-util.c
-index 3d2f179049..c1b6c170ac 100644
--- a/src/shared/coredump-util.c
+++ b/src/shared/coredump-util.c
-@@ -163,7 +163,7 @@ int set_coredump_filter(uint64_t value) {
+@@ -163,7 +163,7 @@ int set_coredump_filter(uint64_t value)
xsprintf(t, "0x%"PRIx64, value);
return write_string_file("/proc/self/coredump_filter", t,
@@ -353,11 +323,9 @@ index 3d2f179049..c1b6c170ac 100644
}
/* Turn off core dumps but only if we're running outside of a container. */
-diff --git a/src/shared/sleep-util.c b/src/shared/sleep-util.c
-index d7277399fb..d06d636fcc 100644
--- a/src/shared/sleep-util.c
+++ b/src/shared/sleep-util.c
-@@ -1044,7 +1044,7 @@ int write_resume_config(dev_t devno, uint64_t offset, const char *device) {
+@@ -1044,7 +1044,7 @@ int write_resume_config(dev_t devno, uin
/* We write the offset first since it's safer. Note that this file is only available in 4.17+, so
* fail gracefully if it doesn't exist and we're only overwriting it with 0. */
@@ -366,7 +334,7 @@ index d7277399fb..d06d636fcc 100644
if (r == -ENOENT) {
if (offset != 0)
return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
-@@ -1060,7 +1060,7 @@ int write_resume_config(dev_t devno, uint64_t offset, const char *device) {
+@@ -1060,7 +1060,7 @@ int write_resume_config(dev_t devno, uin
log_debug("Wrote resume_offset=%s for device '%s' to /sys/power/resume_offset.",
offset_str, device);
@@ -375,11 +343,9 @@ index d7277399fb..d06d636fcc 100644
if (r < 0)
return log_error_errno(r,
"Failed to write device '%s' (%s) to /sys/power/resume: %m",
-diff --git a/src/shared/smack-util.c b/src/shared/smack-util.c
-index b3b5c905ad..bbfa1973fd 100644
--- a/src/shared/smack-util.c
+++ b/src/shared/smack-util.c
-@@ -113,7 +113,7 @@ int mac_smack_apply_pid(pid_t pid, const char *label) {
+@@ -113,7 +113,7 @@ int mac_smack_apply_pid(pid_t pid, const
return 0;
p = procfs_file_alloca(pid, "attr/current");
@@ -388,8 +354,6 @@ index b3b5c905ad..bbfa1973fd 100644
if (r < 0)
return r;
-diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
-index 765dd4974f..cd6afb001b 100644
--- a/src/sleep/sleep.c
+++ b/src/sleep/sleep.c
@@ -139,7 +139,7 @@ static int write_mode(char **modes) {
@@ -401,7 +365,7 @@ index 765dd4974f..cd6afb001b 100644
if (k >= 0)
return 0;
-@@ -160,7 +160,7 @@ static int write_state(FILE **f, char **states) {
+@@ -160,7 +160,7 @@ static int write_state(FILE **f, char **
STRV_FOREACH(state, states) {
int k;
@@ -410,11 +374,9 @@ index 765dd4974f..cd6afb001b 100644
if (k >= 0)
return 0;
log_debug_errno(k, "Failed to write '%s' to /sys/power/state: %m", *state);
-diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
-index 0ce79f815c..28aab475d0 100644
--- a/src/udev/udev-rules.c
+++ b/src/udev/udev-rules.c
-@@ -2634,7 +2634,6 @@ static int udev_rule_apply_token_to_event(
+@@ -2634,7 +2634,6 @@ static int udev_rule_apply_token_to_even
log_event_debug(dev, token, "ATTR '%s' writing '%s'", buf, value);
r = write_string_file(buf, value,
WRITE_STRING_FILE_VERIFY_ON_FAILURE |
@@ -422,11 +384,9 @@ index 0ce79f815c..28aab475d0 100644
WRITE_STRING_FILE_AVOID_NEWLINE |
WRITE_STRING_FILE_VERIFY_IGNORE_NEWLINE);
if (r < 0)
-diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c
-index 7d3e9db73f..2d4a0c4c9d 100644
--- a/src/vconsole/vconsole-setup.c
+++ b/src/vconsole/vconsole-setup.c
-@@ -259,7 +259,7 @@ static int toggle_utf8_vc(const char *name, int fd, bool utf8) {
+@@ -260,7 +260,7 @@ static int toggle_utf8_vc(const char *na
static int toggle_utf8_sysfs(bool utf8) {
int r;
@@ -435,6 +395,3 @@ index 7d3e9db73f..2d4a0c4c9d 100644
if (r < 0)
return log_warning_errno(r, "Failed to %s sysfs UTF-8 flag: %m", enable_disable(utf8));
---
-2.39.2
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0022-Handle-__cpu_mask-usage.patch b/poky/meta/recipes-core/systemd/systemd/0022-Handle-__cpu_mask-usage.patch
index 341543afdc..580aff327d 100644
--- a/poky/meta/recipes-core/systemd/systemd/0022-Handle-__cpu_mask-usage.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0022-Handle-__cpu_mask-usage.patch
@@ -23,8 +23,6 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
src/test/test-sizeof.c | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
-diff --git a/src/shared/cpu-set-util.h b/src/shared/cpu-set-util.h
-index 3c63a58826..4c2d4347fc 100644
--- a/src/shared/cpu-set-util.h
+++ b/src/shared/cpu-set-util.h
@@ -6,6 +6,8 @@
@@ -36,8 +34,6 @@ index 3c63a58826..4c2d4347fc 100644
/* This wraps the libc interface with a variable to keep the allocated size. */
typedef struct CPUSet {
cpu_set_t *set;
-diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
-index 6cf92bffde..937d26ca55 100644
--- a/src/test/test-sizeof.c
+++ b/src/test/test-sizeof.c
@@ -1,6 +1,5 @@
@@ -47,7 +43,7 @@ index 6cf92bffde..937d26ca55 100644
#include <stdio.h>
#include <string.h>
#include <sys/resource.h>
-@@ -11,6 +10,7 @@
+@@ -12,6 +11,7 @@
#include <float.h>
#include "time-util.h"
@@ -55,6 +51,3 @@ index 6cf92bffde..937d26ca55 100644
/* Print information about various types. Useful when diagnosing
* gcc diagnostics on an unfamiliar architecture. */
---
-2.39.2
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0025-include-sys-file.h-for-LOCK_EX.patch b/poky/meta/recipes-core/systemd/systemd/0025-include-sys-file.h-for-LOCK_EX.patch
deleted file mode 100644
index 7827cc1403..0000000000
--- a/poky/meta/recipes-core/systemd/systemd/0025-include-sys-file.h-for-LOCK_EX.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 2 Aug 2023 10:33:48 -0700
-Subject: [PATCH] include sys/file.h for LOCK_EX
-
-Fixes
-| ../git/src/basic/user-util.c:708:30: error: use of undeclared identifier 'LOCK_EX'; did you mean 'LOCK_BSD'?
-| 708 | r = unposix_lock(fd, LOCK_EX);
-| | ^~~~~~~
-| | LOCK_BSD
-
-Upstream-Status: Backport [https://github.com/systemd/systemd/pull/28647]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/basic/user-util.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/basic/user-util.c b/src/basic/user-util.c
-index fe61a09005..5c39847733 100644
---- a/src/basic/user-util.c
-+++ b/src/basic/user-util.c
-@@ -6,6 +6,7 @@
- #include <stdint.h>
- #include <stdio.h>
- #include <stdlib.h>
-+#include <sys/file.h>
- #include <sys/stat.h>
- #include <unistd.h>
- #include <utmp.h>
diff --git a/poky/meta/recipes-core/systemd/systemd/0026-test-test-sizeof-Include-sys-timex.h-for-struct-time.patch b/poky/meta/recipes-core/systemd/systemd/0026-test-test-sizeof-Include-sys-timex.h-for-struct-time.patch
deleted file mode 100644
index f2130c856f..0000000000
--- a/poky/meta/recipes-core/systemd/systemd/0026-test-test-sizeof-Include-sys-timex.h-for-struct-time.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 2 Aug 2023 12:14:56 -0700
-Subject: [PATCH] test/test-sizeof: Include sys/timex.h for struct timex
-
-Fixes
-
-../git/src/test/test-sizeof.c:64:41: error: incomplete definition of type 'struct timex'
- 64 | check(typeof(((struct timex *)0)->freq), SIZEOF_TIMEX_MEMBER);
- | ~~~~~~~~~~~~~~~~~~~^
-
-Upstream-Status: Backport [https://github.com/systemd/systemd/pull/28651]
----
- src/test/test-sizeof.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
-index 9d969cf8f1..b65c0bd370 100644
---- a/src/test/test-sizeof.c
-+++ b/src/test/test-sizeof.c
-@@ -4,6 +4,7 @@
- #include <string.h>
- #include <sys/resource.h>
- #include <sys/socket.h>
-+#include <sys/timex.h>
- #include <sys/types.h>
-
- #define __STDC_WANT_IEC_60559_TYPES_EXT__
diff --git a/poky/meta/recipes-core/systemd/systemd/0027-include-missing-sys-file.h-for-LOCK_EX.patch b/poky/meta/recipes-core/systemd/systemd/0027-include-missing-sys-file.h-for-LOCK_EX.patch
deleted file mode 100644
index 19014802e4..0000000000
--- a/poky/meta/recipes-core/systemd/systemd/0027-include-missing-sys-file.h-for-LOCK_EX.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 2 Aug 2023 12:18:24 -0700
-Subject: [PATCH] include missing sys/file.h for LOCK_EX
-
-Upstream-Status: Backport [https://github.com/systemd/systemd/pull/28651]
----
- src/core/execute.c | 1 +
- src/shared/btrfs-util.c | 1 +
- src/shared/copy.c | 1 +
- src/test/test-btrfs.c | 1 +
- src/test/test-fs-util.c | 1 +
- src/test/test-lock-util.c | 1 +
- src/vconsole/vconsole-setup.c | 1 +
- 7 files changed, 7 insertions(+)
-
-diff --git a/src/core/execute.c b/src/core/execute.c
-index 5b2ae861ff..2ebf19ffaa 100644
---- a/src/core/execute.c
-+++ b/src/core/execute.c
-@@ -4,6 +4,7 @@
- #include <fcntl.h>
- #include <poll.h>
- #include <sys/eventfd.h>
-+#include <sys/file.h>
- #include <sys/ioctl.h>
- #include <sys/mman.h>
- #include <sys/mount.h>
-diff --git a/src/shared/btrfs-util.c b/src/shared/btrfs-util.c
-index 5128b308ab..3ded95ea82 100644
---- a/src/shared/btrfs-util.c
-+++ b/src/shared/btrfs-util.c
-@@ -10,6 +10,7 @@
- #include <stddef.h>
- #include <stdio.h>
- #include <stdlib.h>
-+#include <sys/file.h>
- #include <sys/ioctl.h>
- #include <sys/sysmacros.h>
- #include <unistd.h>
-diff --git a/src/shared/copy.c b/src/shared/copy.c
-index 241a2d112b..7e47dc002c 100644
---- a/src/shared/copy.c
-+++ b/src/shared/copy.c
-@@ -6,6 +6,7 @@
- #include <stddef.h>
- #include <stdio.h>
- #include <stdlib.h>
-+#include <sys/file.h>
- #include <sys/ioctl.h>
- #include <sys/sendfile.h>
- #include <sys/xattr.h>
-diff --git a/src/test/test-btrfs.c b/src/test/test-btrfs.c
-index 95b7ef25d8..ba09563058 100644
---- a/src/test/test-btrfs.c
-+++ b/src/test/test-btrfs.c
-@@ -1,6 +1,7 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
- #include <fcntl.h>
-+#include <sys/file.h>
-
- #include "btrfs-util.h"
- #include "fd-util.h"
-diff --git a/src/test/test-fs-util.c b/src/test/test-fs-util.c
-index 1beba916a4..5de1eea0d4 100644
---- a/src/test/test-fs-util.c
-+++ b/src/test/test-fs-util.c
-@@ -1,5 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
-+#include <sys/file.h>
- #include <unistd.h>
-
- #include "alloc-util.h"
-diff --git a/src/test/test-lock-util.c b/src/test/test-lock-util.c
-index a9a1b438ff..28fc54a5d6 100644
---- a/src/test/test-lock-util.c
-+++ b/src/test/test-lock-util.c
-@@ -1,5 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
-+#include <sys/file.h>
- #include <unistd.h>
-
- #include "fd-util.h"
-diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c
-index d57d8b4001..86348d08c1 100644
---- a/src/vconsole/vconsole-setup.c
-+++ b/src/vconsole/vconsole-setup.c
-@@ -11,6 +11,7 @@
- #include <linux/vt.h>
- #include <stdbool.h>
- #include <stdlib.h>
-+#include <sys/file.h>
- #include <sys/ioctl.h>
- #include <sysexits.h>
- #include <termios.h>
diff --git a/poky/meta/recipes-core/systemd/systemd_254.bb b/poky/meta/recipes-core/systemd/systemd_254.4.bb
index 8d5cf13095..77724eb822 100644
--- a/poky/meta/recipes-core/systemd/systemd_254.bb
+++ b/poky/meta/recipes-core/systemd/systemd_254.4.bb
@@ -54,9 +54,6 @@ SRC_URI_MUSL = "\
file://0001-Adjust-for-musl-headers.patch \
file://0006-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch \
file://0003-errno-util-Make-STRERROR-portable-for-musl.patch \
- file://0025-include-sys-file.h-for-LOCK_EX.patch \
- file://0026-test-test-sizeof-Include-sys-timex.h-for-struct-time.patch \
- file://0027-include-missing-sys-file.h-for-LOCK_EX.patch \
file://0028-sd-event-Make-malloc_trim-conditional-on-glibc.patch \
file://0029-shared-Do-not-use-malloc_info-on-musl.patch \
"
diff --git a/poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb b/poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
index 7aad2e2bf2..b1f9cb4caa 100644
--- a/poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
+++ b/poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
@@ -2,7 +2,6 @@ SUMMARY = "Inittab configuration for SysVinit"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
-PR = "r10"
SRC_URI = "file://inittab \
file://start_getty"
diff --git a/poky/meta/recipes-core/util-linux/util-linux-libuuid_2.39.1.bb b/poky/meta/recipes-core/util-linux/util-linux-libuuid_2.39.2.bb
index 5d759aed94..5d759aed94 100644
--- a/poky/meta/recipes-core/util-linux/util-linux-libuuid_2.39.1.bb
+++ b/poky/meta/recipes-core/util-linux/util-linux-libuuid_2.39.2.bb
diff --git a/poky/meta/recipes-core/util-linux/util-linux.inc b/poky/meta/recipes-core/util-linux/util-linux.inc
index 99ce2a24b0..952a680a84 100644
--- a/poky/meta/recipes-core/util-linux/util-linux.inc
+++ b/poky/meta/recipes-core/util-linux/util-linux.inc
@@ -35,6 +35,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/util-linux/v${MAJOR_VERSION}/util-lin
file://run-ptest \
file://display_testname_for_subtest.patch \
file://avoid_parallel_tests.patch \
+ file://0001-lscpu-Use-4K-buffer-size-instead-of-BUFSIZ.patch \
"
-SRC_URI[sha256sum] = "890ae8ff810247bd19e274df76e8371d202cda01ad277681b0ea88eeaa00286b"
+SRC_URI[sha256sum] = "87abdfaa8e490f8be6dde976f7c80b9b5ff9f301e1b67e3899e1f05a59a1531f"
diff --git a/poky/meta/recipes-core/util-linux/util-linux/0001-lscpu-Use-4K-buffer-size-instead-of-BUFSIZ.patch b/poky/meta/recipes-core/util-linux/util-linux/0001-lscpu-Use-4K-buffer-size-instead-of-BUFSIZ.patch
new file mode 100644
index 0000000000..4d7487c4f7
--- /dev/null
+++ b/poky/meta/recipes-core/util-linux/util-linux/0001-lscpu-Use-4K-buffer-size-instead-of-BUFSIZ.patch
@@ -0,0 +1,38 @@
+From 95b0405338440cf5cd6d4b2b5c66cda8bf381b28 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 15 Sep 2023 00:18:18 -0700
+Subject: [PATCH] lscpu: Use 4K buffer size instead of BUFSIZ
+
+Some lines in /proc/cpuinfo can be large e.g. flags and can then
+truncate them in displaying them
+
+BUFSIZ can vary quite a bit e.g. glibc/linux systems its 8192
+but on musl/linux and OSX its 1024, on mingW it is 256, some tests e.g.
+x86_64-64cpu-linux6.2.tar.gz has added really long line for cpu flags
+line which is greater than 1024 characters and hence this test fails
+on musl because lscpu -s reports truncated string
+
+Upstream-Status: Submitted [https://github.com/util-linux/util-linux/pull/2492]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sys-utils/lscpu-cputype.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/sys-utils/lscpu-cputype.c b/sys-utils/lscpu-cputype.c
+index 3fd5f7a3c..c8f72ab8a 100644
+--- a/sys-utils/lscpu-cputype.c
++++ b/sys-utils/lscpu-cputype.c
+@@ -462,7 +462,9 @@ static int cpuinfo_parse_cache(struct lscpu_cxt *cxt, int keynum, char *data)
+ int lscpu_read_cpuinfo(struct lscpu_cxt *cxt)
+ {
+ FILE *fp;
+- char buf[BUFSIZ];
++ /* Used to be BUFSIZ which is small on some platforms e.g, musl,
++ * therefore hardcode to 4K */
++ char buf[4096];
+ size_t i;
+ struct lscpu_cputype *ct;
+ struct cpuinfo_parser _pr = { .cxt = cxt }, *pr = &_pr;
+--
+2.42.0
+
diff --git a/poky/meta/recipes-core/util-linux/util-linux_2.39.1.bb b/poky/meta/recipes-core/util-linux/util-linux_2.39.2.bb
index c81405533c..927037a342 100644
--- a/poky/meta/recipes-core/util-linux/util-linux_2.39.1.bb
+++ b/poky/meta/recipes-core/util-linux/util-linux_2.39.2.bb
@@ -62,7 +62,6 @@ PACKAGESPLITFUNCS =+ "util_linux_libpackages"
PACKAGES_DYNAMIC = "^${PN}-.*"
-CACHED_CONFIGUREVARS += "scanf_cv_alloc_modifier=ms"
UTIL_LINUX_LIBDIR = "${libdir}"
UTIL_LINUX_LIBDIR:class-target = "${base_libdir}"
EXTRA_OECONF = "\
@@ -322,3 +321,12 @@ do_install_ptest() {
rm -rf ${D}${PTEST_PATH}/tests/ts/chfn
fi
}
+
+# Delete tests not working on musl
+do_install_ptest:append:libc-musl() {
+ for t in tests/ts/col/multibyte \
+ tests/ts/lib/timeutils \
+ tests/ts/dmesg/limit; do
+ rm -rf ${D}${PTEST_PATH}/$t
+ done
+}
diff --git a/poky/meta/recipes-devtools/binutils/binutils-2.41.inc b/poky/meta/recipes-devtools/binutils/binutils-2.41.inc
index 7ab2926570..b4934c02a8 100644
--- a/poky/meta/recipes-devtools/binutils/binutils-2.41.inc
+++ b/poky/meta/recipes-devtools/binutils/binutils-2.41.inc
@@ -18,7 +18,7 @@ SRCBRANCH ?= "binutils-2_41-branch"
UPSTREAM_CHECK_GITTAGREGEX = "binutils-(?P<pver>\d+_(\d_?)*)"
-SRCREV ?= "fd3cc73ee4a84df3ace3c0e470250a957e7d3468"
+SRCREV ?= "cb4c3555ac4cf8aaf0935cb6e4b09e6882436d21"
BINUTILS_GIT_URI ?= "git://sourceware.org/git/binutils-gdb.git;branch=${SRCBRANCH};protocol=https"
SRC_URI = "\
${BINUTILS_GIT_URI} \
diff --git a/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb b/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
index cce2f57363..4d8ce4c741 100644
--- a/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
+++ b/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
@@ -99,7 +99,6 @@ SRC_URI = "git://github.com/xrmx/bootchart.git;branch=master;protocol=https \
S = "${WORKDIR}/git"
SRCREV = "868a2afab9da34f32c007d773b77253c93104636"
-PR = "r1"
inherit systemd update-rc.d python3native update-alternatives
diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.3.3.bb b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.5.1.bb
index e7a64e8363..527e13d08e 100644
--- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.3.3.bb
+++ b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.5.1.bb
@@ -18,7 +18,7 @@ DEPENDS = "util-linux zlib"
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git;branch=master;protocol=https \
file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \
"
-SRCREV = "bb0ca35245858f17a6ced97aade1dd8d70f9c9d7"
+SRCREV = "92d04d4780886a9850716e5529f1dace97779931"
S = "${WORKDIR}/git"
PACKAGECONFIG ??= " \
diff --git a/poky/meta/recipes-devtools/ccache/ccache_4.8.2.bb b/poky/meta/recipes-devtools/ccache/ccache_4.8.3.bb
index 22a6b385b0..03372aa685 100644
--- a/poky/meta/recipes-devtools/ccache/ccache_4.8.2.bb
+++ b/poky/meta/recipes-devtools/ccache/ccache_4.8.3.bb
@@ -7,14 +7,14 @@ HOMEPAGE = "http://ccache.samba.org"
SECTION = "devel"
LICENSE = "GPL-3.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=cd54b7abfc462470b0f505273c38f0ff"
+LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=6a6fe0ae4e57592b187ab72fa6d420ec"
DEPENDS = "zstd"
SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \
file://0001-xxhash.h-Fix-build-with-gcc-12.patch \
"
-SRC_URI[sha256sum] = "75eef15b8b9da48db9c91e1d0ff58b3645fc70c0e4ca2ef1b6825a12f21f217d"
+SRC_URI[sha256sum] = "d59dd569ad2bbc826c0bc335c8ebd73e78ed0f2f40ba6b30069347e63585d9ef"
inherit cmake github-releases
diff --git a/poky/meta/recipes-devtools/cmake/cmake-native_3.27.4.bb b/poky/meta/recipes-devtools/cmake/cmake-native_3.27.5.bb
index 546d117156..546d117156 100644
--- a/poky/meta/recipes-devtools/cmake/cmake-native_3.27.4.bb
+++ b/poky/meta/recipes-devtools/cmake/cmake-native_3.27.5.bb
diff --git a/poky/meta/recipes-devtools/cmake/cmake.inc b/poky/meta/recipes-devtools/cmake/cmake.inc
index 430f13f4e1..ef4eec5ab1 100644
--- a/poky/meta/recipes-devtools/cmake/cmake.inc
+++ b/poky/meta/recipes-devtools/cmake/cmake.inc
@@ -19,7 +19,7 @@ CMAKE_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
SRC_URI = "https://cmake.org/files/v${CMAKE_MAJOR_VERSION}/cmake-${PV}.tar.gz \
"
-SRC_URI[sha256sum] = "0a905ca8635ca81aa152e123bdde7e54cbe764fdd9a70d62af44cad8b92967af"
+SRC_URI[sha256sum] = "5175e8fe1ca9b1dd09090130db7201968bcce1595971ff9e9998c2f0765004c9"
UPSTREAM_CHECK_REGEX = "cmake-(?P<pver>\d+(\.\d+)+)\.tar"
diff --git a/poky/meta/recipes-devtools/cmake/cmake_3.27.4.bb b/poky/meta/recipes-devtools/cmake/cmake_3.27.5.bb
index 6a9a3266df..6a9a3266df 100644
--- a/poky/meta/recipes-devtools/cmake/cmake_3.27.4.bb
+++ b/poky/meta/recipes-devtools/cmake/cmake_3.27.5.bb
diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Move-cr_compress_groupfile-outside-WITH_LIBMODULEMD.patch b/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Move-cr_compress_groupfile-outside-WITH_LIBMODULEMD.patch
new file mode 100644
index 0000000000..ea768e06e6
--- /dev/null
+++ b/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Move-cr_compress_groupfile-outside-WITH_LIBMODULEMD.patch
@@ -0,0 +1,46 @@
+From 5326969acc0c7e9e3cabca202154e4120c0d2c2f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 26 Sep 2023 14:52:11 -0700
+Subject: [PATCH] Move cr_compress_groupfile outside WITH_LIBMODULEMD
+
+This function is used in code which is not conditional under WITH_LIBMODULEMD
+therefore the declaration should also match its definition scope
+
+Fixes build issues flagged by clang
+
+src/createrepo_c.c:850:16: error: incompatible integer to pointer conversion initializing 'gchar *' (aka 'char *') with an
+ expression of type 'int' [-Wint-conversion]
+| 850 | gchar *compressed_path = cr_compress_groupfile(cmd_options->groupfile_fullpath, tmp_out_repo, compression);
+| | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Submitted [https://github.com/rpm-software-management/createrepo_c/pull/387]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/metadata_internal.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/metadata_internal.h b/src/metadata_internal.h
+index 8ba0576..ecfbac2 100644
+--- a/src/metadata_internal.h
++++ b/src/metadata_internal.h
+@@ -52,14 +52,14 @@ cr_metadata_load_modulemd(ModulemdModuleIndex **moduleindex,
+ * @param dest_dir Path to directory where the compressed groupfile should be stored.
+ * @return Path to the new compressed groupfile. Has to be freed by the caller.
+ */
++
++#endif /* WITH_LIBMODULEMD */
++
+ gchar *
+ cr_compress_groupfile(const char *groupfile,
+ const char *dest_dir,
+ cr_CompressionType compression);
+
+-
+-#endif /* WITH_LIBMODULEMD */
+-
+ #ifdef __cplusplus
+ }
+ #endif
+--
+2.42.0
+
diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-src-cmd_parser.c-add-a-missing-parameter-name.patch b/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-src-cmd_parser.c-add-a-missing-parameter-name.patch
deleted file mode 100644
index 0d1c6b08fb..0000000000
--- a/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-src-cmd_parser.c-add-a-missing-parameter-name.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 970b901e1999f415da8bac205f526c808ddad0ba Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Mon, 8 May 2023 10:40:43 +0200
-Subject: [PATCH] src/cmd_parser.c: add a missing parameter name
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This resolves the following error with older versions of gcc:
-| /srv/storage/alex/yocto/build-32/tmp/work/x86_64-linux/createrepo-c-native/0.21.1-r0/git/src/cmd_parser.c: In function ‘duplicated_nevra_option_parser’:
-| /srv/storage/alex/yocto/build-32/tmp/work/x86_64-linux/createrepo-c-native/0.21.1-r0/git/src/cmd_parser.c:76:32: error: parameter name omitted
-| 76 | duplicated_nevra_option_parser(const gchar *,
-| | ^~~~~~~~~~~~~
-| /srv/storage/alex/yocto/build-32/tmp/work/x86_64-linux/createrepo-c-native/0.21.1-r0/git/src/cmd_parser.c:78:32: error: parameter name omitted
-| 78 | gpointer,
-| | ^~~~~~~~
-
-Upstream-Status: Submitted [https://github.com/rpm-software-management/createrepo_c/pull/366]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- src/cmd_parser.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/cmd_parser.c b/src/cmd_parser.c
-index 97c9ea7..63af7ea 100644
---- a/src/cmd_parser.c
-+++ b/src/cmd_parser.c
-@@ -73,9 +73,9 @@ struct CmdOptions _cmd_options = {
-
-
- gboolean
--duplicated_nevra_option_parser(const gchar *,
-+duplicated_nevra_option_parser(const gchar *option_name,
- const gchar *value,
-- gpointer,
-+ gpointer data,
- GError **error)
- {
- if (!g_strcmp0(value, "keep"))
diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.21.1.bb b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_1.0.0.bb
index 57f23b8dfd..f4e65492f8 100644
--- a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.21.1.bb
+++ b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_1.0.0.bb
@@ -7,11 +7,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://github.com/rpm-software-management/createrepo_c;branch=master;protocol=https \
file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
file://0001-include-rpm-rpmstring.h.patch \
- file://0001-src-cmd_parser.c-add-a-missing-parameter-name.patch \
file://time64fix.patch \
+ file://0001-Move-cr_compress_groupfile-outside-WITH_LIBMODULEMD.patch \
"
-SRCREV = "0652d7303ce236e596c83c29ccc9bee7868fce6e"
+SRCREV = "0cc13920991b2fb8f87fb9d352bd3394c2983289"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/debugedit/debugedit_5.0.bb b/poky/meta/recipes-devtools/debugedit/debugedit_5.0.bb
index 257238fa24..63ad7babd9 100644
--- a/poky/meta/recipes-devtools/debugedit/debugedit_5.0.bb
+++ b/poky/meta/recipes-devtools/debugedit/debugedit_5.0.bb
@@ -11,8 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
SRC_URI = "https://sourceware.org/ftp/debugedit/${PV}/debugedit-${PV}.tar.xz"
-SRC_URI:append:libc-musl = " \
- file://0001-tools-Add-error.h-for-non-glibc-case.patch \
+SRC_URI:append:libc-musl = "\
file://0002-sepdebugcrcfix.c-do-not-use-64bit-variants.patch \
file://0003-Makefile.am-do-not-update-manual.patch \
"
@@ -20,6 +19,7 @@ SRC_URI:append:libc-musl = " \
SRC_URI[sha256sum] = "e9ecd7d350bebae1f178ce6776ca19a648b6fe8fa22f5b3044b38d7899aa553e"
DEPENDS = "elfutils"
+DEPENDS:append:libc-musl = " musl-legacy-error"
inherit pkgconfig autotools
diff --git a/poky/meta/recipes-devtools/debugedit/files/0001-tools-Add-error.h-for-non-glibc-case.patch b/poky/meta/recipes-devtools/debugedit/files/0001-tools-Add-error.h-for-non-glibc-case.patch
deleted file mode 100644
index f6d64cb4e7..0000000000
--- a/poky/meta/recipes-devtools/debugedit/files/0001-tools-Add-error.h-for-non-glibc-case.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From 4c797d3b559ba51bd9ccd9a2036245819acce843 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Thu, 23 Mar 2023 10:54:21 +0800
-Subject: [PATCH] tools: Add error.h for non-glibc case
-
-error is glibc specific API, so this patch will mostly not accepted
-upstream given that elfutils has been closely tied to glibc
-
-This is a OE specific workaround for musl.
-
-Upstream-Status: Inappropriate [OE Specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- tools/debugedit.c | 7 ++++++-
- tools/error.h | 27 +++++++++++++++++++++++++++
- tools/sepdebugcrcfix.c | 7 ++++++-
- 3 files changed, 39 insertions(+), 2 deletions(-)
- create mode 100644 tools/error.h
-
-diff --git a/tools/debugedit.c b/tools/debugedit.c
-index 668777a..a72c3c0 100644
---- a/tools/debugedit.c
-+++ b/tools/debugedit.c
-@@ -25,7 +25,6 @@
- #include <byteswap.h>
- #include <endian.h>
- #include <errno.h>
--#include <error.h>
- #include <limits.h>
- #include <string.h>
- #include <stdlib.h>
-@@ -40,6 +39,12 @@
- #include <gelf.h>
- #include <dwarf.h>
-
-+#ifdef __GLIBC__
-+#include <error.h>
-+#else
-+#include "error.h"
-+#endif
-+
- #ifndef MAX
- #define MAX(m, n) ((m) < (n) ? (n) : (m))
- #endif
-diff --git a/tools/error.h b/tools/error.h
-new file mode 100644
-index 0000000..9b24418
---- /dev/null
-+++ b/tools/error.h
-@@ -0,0 +1,27 @@
-+#ifndef _ERROR_H_
-+#define _ERROR_H_
-+
-+#include <stdarg.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <errno.h>
-+
-+static unsigned int error_message_count = 0;
-+
-+static inline void error(int status, int errnum, const char* format, ...)
-+{
-+ va_list ap;
-+ fprintf(stderr, "%s: ", program_invocation_name);
-+ va_start(ap, format);
-+ vfprintf(stderr, format, ap);
-+ va_end(ap);
-+ if (errnum)
-+ fprintf(stderr, ": %s", strerror(errnum));
-+ fprintf(stderr, "\n");
-+ error_message_count++;
-+ if (status)
-+ exit(status);
-+}
-+
-+#endif /* _ERROR_H_ */
-diff --git a/tools/sepdebugcrcfix.c b/tools/sepdebugcrcfix.c
-index da50e6c..c4a9d56 100644
---- a/tools/sepdebugcrcfix.c
-+++ b/tools/sepdebugcrcfix.c
-@@ -29,10 +29,15 @@
- #include <endian.h>
- #include <stdio.h>
- #include <stdlib.h>
--#include <error.h>
- #include <libelf.h>
- #include <gelf.h>
-
-+#ifdef __GLIBC__
-+#include <error.h>
-+#else
-+#include "error.h"
-+#endif
-+
- #ifndef _
- #define _(x) x
- #endif
---
-2.17.1
-
diff --git a/poky/meta/recipes-devtools/devel-config/nfs-export-root.bb b/poky/meta/recipes-devtools/devel-config/nfs-export-root.bb
index 0aaec36b41..5e69962d7c 100644
--- a/poky/meta/recipes-devtools/devel-config/nfs-export-root.bb
+++ b/poky/meta/recipes-devtools/devel-config/nfs-export-root.bb
@@ -3,7 +3,6 @@ DESCRIPTION = "Enables NFS access from any host to the entire filesystem (for de
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-PR = "r1"
SRC_URI = "file://exports"
diff --git a/poky/meta/recipes-devtools/dnf/dnf/0001-dnf-write-the-log-lock-to-root.patch b/poky/meta/recipes-devtools/dnf/dnf/0001-dnf-write-the-log-lock-to-root.patch
index 21b50dee01..eb0309d81a 100644
--- a/poky/meta/recipes-devtools/dnf/dnf/0001-dnf-write-the-log-lock-to-root.patch
+++ b/poky/meta/recipes-devtools/dnf/dnf/0001-dnf-write-the-log-lock-to-root.patch
@@ -1,4 +1,4 @@
-From 5e07c16a506b19cbb107d5e99fca41d679b23b9a Mon Sep 17 00:00:00 2001
+From 3bd0faf58cc9ad531e6b63d5660c4b8316e8daed Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Tue, 28 Apr 2020 15:55:00 +0200
Subject: [PATCH] dnf: write the log lock to root
@@ -10,15 +10,16 @@ already existing, and base-files creating it as a symlink).
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
---
dnf/logging.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dnf/logging.py b/dnf/logging.py
-index bd660470..a9d808b1 100644
+index ef0b25f3..94610af6 100644
--- a/dnf/logging.py
+++ b/dnf/logging.py
-@@ -94,7 +94,7 @@ class MultiprocessRotatingFileHandler(logging.handlers.RotatingFileHandler):
+@@ -118,7 +118,7 @@ class MultiprocessRotatingFileHandler(logging.handlers.RotatingFileHandler):
def __init__(self, filename, mode='a', maxBytes=0, backupCount=0, encoding=None, delay=False):
super(MultiprocessRotatingFileHandler, self).__init__(
filename, mode, maxBytes, backupCount, encoding, delay)
diff --git a/poky/meta/recipes-devtools/dnf/dnf_4.16.1.bb b/poky/meta/recipes-devtools/dnf/dnf_4.17.0.bb
index 9134411fa9..ec4e48d68b 100644
--- a/poky/meta/recipes-devtools/dnf/dnf_4.16.1.bb
+++ b/poky/meta/recipes-devtools/dnf/dnf_4.17.0.bb
@@ -19,7 +19,7 @@ SRC_URI = "git://github.com/rpm-software-management/dnf.git;branch=master;protoc
SRC_URI:append:class-native = "file://0001-dnf-write-the-log-lock-to-root.patch"
-SRCREV = "94b7cc7956580405b219329541d6b40db6499cf1"
+SRCREV = "a31687c169095de1acb5c0a3762bf78993661776"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/elfutils/elfutils_0.189.bb b/poky/meta/recipes-devtools/elfutils/elfutils_0.189.bb
index 236f8cef92..d8bf82b022 100644
--- a/poky/meta/recipes-devtools/elfutils/elfutils_0.189.bb
+++ b/poky/meta/recipes-devtools/elfutils/elfutils_0.189.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
file://debuginfod/debuginfod-client.c;endline=28;md5=f0a7c3170776866ee94e8f9225a6ad79 \
"
DEPENDS = "zlib virtual/libintl"
-DEPENDS:append:libc-musl = " argp-standalone fts musl-obstack "
+DEPENDS:append:libc-musl = " argp-standalone fts musl-legacy-error musl-obstack"
# The Debian patches below are from:
# http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.176-1.debian.tar.xz
SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \
@@ -24,7 +24,6 @@ SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \
"
SRC_URI:append:libc-musl = " \
file://0003-musl-utils.patch \
- file://0015-config-eu.am-do-not-use-Werror.patch \
"
SRC_URI[sha256sum] = "39bd8f1a338e2b7cd4abc3ff11a0eddc6e690f69578a57478d8179b4148708c8"
@@ -32,6 +31,9 @@ inherit autotools gettext ptest pkgconfig
EXTRA_OECONF = "--program-prefix=eu-"
+# Only used at runtime for make check but we want deterministic makefiles for ptest so hardcode
+CACHED_CONFIGUREVARS += "ac_cv_prog_HAVE_BUNZIP2=yes"
+
BUILD_CFLAGS += "-Wno-error=stringop-overflow"
DEPENDS_BZIP2 = "bzip2-replacement-native"
diff --git a/poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch b/poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch
deleted file mode 100644
index 9ee5801c56..0000000000
--- a/poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From c209233857a73970d7a7dd8da664903570efc7ea Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 22 Jun 2020 21:35:16 +0000
-Subject: [PATCH] config/eu.am: do not use -Werror
-
-Due to re-definition of error() on musl, gcc starts throwing
-errors where none happen with glibc. Since upstream is not
-likely to be interested in musl builds, lets just disable
-Werror.
-
-Upstream-Status: Inappropriate [oe core specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- config/eu.am | 2 --
- 1 file changed, 2 deletions(-)
-diff --git a/config/eu.am b/config/eu.am
-index e6c241f..4136e7c 100644
---- a/config/eu.am
-+++ b/config/eu.am
-@@ -99,7 +99,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
- $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \
- $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \
- $(USE_AFTER_FREE3_WARNING) \
-- $(if $($(*F)_no_Werror),,-Werror) \
- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
- $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
- $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \
-@@ -109,7 +108,6 @@ AM_CXXFLAGS = -std=c++11 -Wall -Wshadow \
- $(TRAMPOLINES_WARNING) \
- $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \
- $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \
-- $(if $($(*F)_no_Werror),,-Werror) \
- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
- $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
- $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \
---
diff --git a/poky/meta/recipes-devtools/gcc/gcc-13.2.inc b/poky/meta/recipes-devtools/gcc/gcc-13.2.inc
index 7f97ecc332..359db1e278 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-13.2.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-13.2.inc
@@ -10,7 +10,7 @@ BINV = "13.2.0"
FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc:${FILE_DIRNAME}/gcc/backport:"
-DEPENDS =+ "mpfr gmp libmpc zlib flex-native"
+DEPENDS =+ "mpfr gmp libmpc zlib zstd flex-native"
NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native zstd-native"
LICENSE = "GPL-3.0-with-GCC-exception & GPL-3.0-only"
@@ -64,7 +64,9 @@ SRC_URI = "${BASEURI} \
file://0022-libatomic-Do-not-enforce-march-on-aarch64.patch \
file://0023-Fix-install-path-of-linux64.h.patch \
file://0024-Avoid-hardcoded-build-paths-into-ppc-libgcc.patch \
- file://0025-gcc-testsuite-mips.patch \
+ file://0025-gcc-testsuite-tweaks-for-mips-OE.patch \
+ file://CVE-2023-4039.patch \
+ file://0026-aarch64-Fix-loose-ldpstp-check-PR111411.patch \
"
SRC_URI[sha256sum] = "e275e76442a6067341a27f04c5c6b83d8613144004c0413528863dc6b5c743da"
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0025-gcc-testsuite-mips.patch b/poky/meta/recipes-devtools/gcc/gcc/0025-gcc-testsuite-tweaks-for-mips-OE.patch
index 49eaece923..c405d8d484 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0025-gcc-testsuite-mips.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0025-gcc-testsuite-tweaks-for-mips-OE.patch
@@ -1,4 +1,7 @@
-gcc testsuite tweaks for mips/OE
+From f12acc6a383546d48da3bdfb2f25ca2adb7976d7 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Sun, 13 Aug 2023 10:24:05 +0100
+Subject: [PATCH] gcc testsuite tweaks for mips/OE
Disable loongson-mmi runtine, qemu doesn't appear to fully support them even if some
of the instruction decoding is there.
@@ -27,12 +30,70 @@ Upstream-Status: Pending
discussion. Need to investigate why qemu-user passes the 'bad' instructions']
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+---
+ gcc/testsuite/gcc.target/mips/mips.exp | 16 +++++++++
+ gcc/testsuite/lib/gcc-dg.exp | 11 +++++++
+ gcc/testsuite/lib/target-supports.exp | 45 ++++++++------------------
+ 3 files changed, 41 insertions(+), 31 deletions(-)
-Index: gcc-13.2.0/gcc/testsuite/lib/target-supports.exp
-===================================================================
---- gcc-13.2.0.orig/gcc/testsuite/lib/target-supports.exp
-+++ gcc-13.2.0/gcc/testsuite/lib/target-supports.exp
-@@ -2155,14 +2155,7 @@ proc check_mips_loongson_mmi_hw_availabl
+diff --git a/gcc/testsuite/gcc.target/mips/mips.exp b/gcc/testsuite/gcc.target/mips/mips.exp
+index 15d574202d3..2cef9709774 100644
+--- a/gcc/testsuite/gcc.target/mips/mips.exp
++++ b/gcc/testsuite/gcc.target/mips/mips.exp
+@@ -709,7 +709,23 @@ proc mips_first_unsupported_option { upstatus } {
+ global mips_option_tests
+ upvar $upstatus status
+
++ if { [mips_have_test_option_p status "-mmsa"] } {
++ verbose -log "Found -mmsa"
++ if { ![check_mips_msa_hw_available] } {
++ verbose -log "No MSA avail"
++ return "-mmsa"
++ }
++ }
++ if { [mips_have_test_option_p status "-mloongson-mmi"] } {
++ verbose -log "Found -mloonson-mmi"
++ if { ![check_mips_loongson_mmi_hw_available] } {
++ verbose -log "No MMI avail"
++ return "-mloonson-mmi"
++ }
++ }
++
+ foreach { option code } [array get mips_option_tests] {
++
+ if { [mips_have_test_option_p status $option] } {
+ regsub -all "\n" $code "\\n\\\n" asm
+ # Use check_runtime from target-supports.exp, which caches
+diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp
+index 9d79b9402e9..e0e5cbb1af8 100644
+--- a/gcc/testsuite/lib/gcc-dg.exp
++++ b/gcc/testsuite/lib/gcc-dg.exp
+@@ -240,9 +240,20 @@ proc schedule-cleanups { opts } {
+
+ proc gcc-dg-test-1 { target_compile prog do_what extra_tool_flags } {
+ # Set up the compiler flags, based on what we're going to do.
++ global do-what-limit
+
+ set options [list]
+
++ if [info exists do-what-limit] then {
++ # Demote run tests to $do-what-limit if set
++ switch $do_what {
++ run {
++ set do_what $do-what-limit
++ set dg-do-what $do-what-limit
++ }
++ }
++ }
++
+ switch $do_what {
+ "preprocess" {
+ set compile_type "preprocess"
+diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
+index 40f71e9ed8b..10e267fa16d 100644
+--- a/gcc/testsuite/lib/target-supports.exp
++++ b/gcc/testsuite/lib/target-supports.exp
+@@ -2155,14 +2155,7 @@ proc check_mips_loongson_mmi_hw_available { } {
if { !([istarget mips*-*-*]) } {
expr 0
} else {
@@ -79,7 +140,7 @@ Index: gcc-13.2.0/gcc/testsuite/lib/target-supports.exp
}
}]
}
-@@ -9187,6 +9158,7 @@ proc is-effective-target-keyword { arg }
+@@ -9187,6 +9158,7 @@ proc is-effective-target-keyword { arg } {
proc et-dg-runtest { runtest testcases flags default-extra-flags } {
global dg-do-what-default
@@ -87,7 +148,7 @@ Index: gcc-13.2.0/gcc/testsuite/lib/target-supports.exp
global EFFECTIVE_TARGETS
global et_index
-@@ -9194,6 +9166,7 @@ proc et-dg-runtest { runtest testcases f
+@@ -9194,6 +9166,7 @@ proc et-dg-runtest { runtest testcases flags default-extra-flags } {
foreach target $EFFECTIVE_TARGETS {
set target_flags $flags
set dg-do-what-default compile
@@ -95,7 +156,7 @@ Index: gcc-13.2.0/gcc/testsuite/lib/target-supports.exp
set et_index [lsearch -exact $EFFECTIVE_TARGETS $target]
if { [info procs add_options_for_${target}] != [list] } {
set target_flags [add_options_for_${target} "$flags"]
-@@ -9201,8 +9174,10 @@ proc et-dg-runtest { runtest testcases f
+@@ -9201,8 +9174,10 @@ proc et-dg-runtest { runtest testcases flags default-extra-flags } {
if { [info procs check_effective_target_${target}_runtime]
!= [list] && [check_effective_target_${target}_runtime] } {
set dg-do-what-default run
@@ -106,7 +167,7 @@ Index: gcc-13.2.0/gcc/testsuite/lib/target-supports.exp
}
} else {
set et_index 0
-@@ -10789,6 +10764,7 @@ proc check_effective_target_sigsetjmp {}
+@@ -10789,6 +10764,7 @@ proc check_effective_target_sigsetjmp {} {
proc check_vect_support_and_set_flags { } {
global DEFAULT_VECTCFLAGS
global dg-do-what-default
@@ -114,7 +175,7 @@ Index: gcc-13.2.0/gcc/testsuite/lib/target-supports.exp
global EFFECTIVE_TARGETS
if [istarget powerpc-*paired*] {
-@@ -10797,6 +10773,7 @@ proc check_vect_support_and_set_flags {
+@@ -10797,6 +10773,7 @@ proc check_vect_support_and_set_flags { } {
set dg-do-what-default run
} else {
set dg-do-what-default compile
@@ -122,7 +183,7 @@ Index: gcc-13.2.0/gcc/testsuite/lib/target-supports.exp
}
} elseif [istarget powerpc*-*-*] {
# Skip targets not supporting -maltivec.
-@@ -10821,6 +10798,7 @@ proc check_vect_support_and_set_flags {
+@@ -10821,6 +10798,7 @@ proc check_vect_support_and_set_flags { } {
lappend DEFAULT_VECTCFLAGS "-mcpu=970"
}
set dg-do-what-default compile
@@ -130,7 +191,7 @@ Index: gcc-13.2.0/gcc/testsuite/lib/target-supports.exp
}
} elseif { [istarget i?86-*-*] || [istarget x86_64-*-*] } {
lappend DEFAULT_VECTCFLAGS "-msse2"
-@@ -10828,6 +10806,7 @@ proc check_vect_support_and_set_flags {
+@@ -10828,6 +10806,7 @@ proc check_vect_support_and_set_flags { } {
set dg-do-what-default run
} else {
set dg-do-what-default compile
@@ -138,7 +199,7 @@ Index: gcc-13.2.0/gcc/testsuite/lib/target-supports.exp
}
} elseif { [istarget mips*-*-*]
&& [check_effective_target_nomips16] } {
-@@ -10847,6 +10826,7 @@ proc check_vect_support_and_set_flags {
+@@ -10847,6 +10826,7 @@ proc check_vect_support_and_set_flags { } {
set dg-do-what-default run
} else {
set dg-do-what-default compile
@@ -146,7 +207,7 @@ Index: gcc-13.2.0/gcc/testsuite/lib/target-supports.exp
}
} elseif [istarget alpha*-*-*] {
# Alpha's vectorization capabilities are extremely limited.
-@@ -10860,6 +10840,7 @@ proc check_vect_support_and_set_flags {
+@@ -10860,6 +10840,7 @@ proc check_vect_support_and_set_flags { } {
set dg-do-what-default run
} else {
set dg-do-what-default compile
@@ -154,7 +215,7 @@ Index: gcc-13.2.0/gcc/testsuite/lib/target-supports.exp
}
} elseif [istarget ia64-*-*] {
set dg-do-what-default run
-@@ -10873,6 +10854,7 @@ proc check_vect_support_and_set_flags {
+@@ -10873,6 +10854,7 @@ proc check_vect_support_and_set_flags { } {
set dg-do-what-default run
} else {
set dg-do-what-default compile
@@ -162,7 +223,7 @@ Index: gcc-13.2.0/gcc/testsuite/lib/target-supports.exp
}
} elseif [istarget aarch64*-*-*] {
set dg-do-what-default run
-@@ -10897,6 +10879,7 @@ proc check_vect_support_and_set_flags {
+@@ -10897,6 +10879,7 @@ proc check_vect_support_and_set_flags { } {
} else {
lappend DEFAULT_VECTCFLAGS "-march=z14" "-mzarch"
set dg-do-what-default compile
@@ -170,56 +231,3 @@ Index: gcc-13.2.0/gcc/testsuite/lib/target-supports.exp
}
} elseif [istarget amdgcn-*-*] {
set dg-do-what-default run
-Index: gcc-13.2.0/gcc/testsuite/gcc.target/mips/mips.exp
-===================================================================
---- gcc-13.2.0.orig/gcc/testsuite/gcc.target/mips/mips.exp
-+++ gcc-13.2.0/gcc/testsuite/gcc.target/mips/mips.exp
-@@ -709,7 +709,23 @@ proc mips_first_unsupported_option { ups
- global mips_option_tests
- upvar $upstatus status
-
-+ if { [mips_have_test_option_p status "-mmsa"] } {
-+ verbose -log "Found -mmsa"
-+ if { ![check_mips_msa_hw_available] } {
-+ verbose -log "No MSA avail"
-+ return "-mmsa"
-+ }
-+ }
-+ if { [mips_have_test_option_p status "-mloongson-mmi"] } {
-+ verbose -log "Found -mloonson-mmi"
-+ if { ![check_mips_loongson_mmi_hw_available] } {
-+ verbose -log "No MMI avail"
-+ return "-mloonson-mmi"
-+ }
-+ }
-+
- foreach { option code } [array get mips_option_tests] {
-+
- if { [mips_have_test_option_p status $option] } {
- regsub -all "\n" $code "\\n\\\n" asm
- # Use check_runtime from target-supports.exp, which caches
-Index: gcc-13.2.0/gcc/testsuite/lib/gcc-dg.exp
-===================================================================
---- gcc-13.2.0.orig/gcc/testsuite/lib/gcc-dg.exp
-+++ gcc-13.2.0/gcc/testsuite/lib/gcc-dg.exp
-@@ -240,9 +240,20 @@ proc schedule-cleanups { opts } {
-
- proc gcc-dg-test-1 { target_compile prog do_what extra_tool_flags } {
- # Set up the compiler flags, based on what we're going to do.
-+ global do-what-limit
-
- set options [list]
-
-+ if [info exists do-what-limit] then {
-+ # Demote run tests to $do-what-limit if set
-+ switch $do_what {
-+ run {
-+ set do_what $do-what-limit
-+ set dg-do-what $do-what-limit
-+ }
-+ }
-+ }
-+
- switch $do_what {
- "preprocess" {
- set compile_type "preprocess"
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0026-aarch64-Fix-loose-ldpstp-check-PR111411.patch b/poky/meta/recipes-devtools/gcc/gcc/0026-aarch64-Fix-loose-ldpstp-check-PR111411.patch
new file mode 100644
index 0000000000..a408a98698
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0026-aarch64-Fix-loose-ldpstp-check-PR111411.patch
@@ -0,0 +1,117 @@
+From adb60dc78e0da4877747f32347cee339364775be Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Fri, 15 Sep 2023 09:19:14 +0100
+Subject: [PATCH] aarch64: Fix loose ldpstp check [PR111411]
+
+aarch64_operands_ok_for_ldpstp contained the code:
+
+ /* One of the memory accesses must be a mempair operand.
+ If it is not the first one, they need to be swapped by the
+ peephole. */
+ if (!aarch64_mem_pair_operand (mem_1, GET_MODE (mem_1))
+ && !aarch64_mem_pair_operand (mem_2, GET_MODE (mem_2)))
+ return false;
+
+But the requirement isn't just that one of the accesses must be a
+valid mempair operand. It's that the lower access must be, since
+that's the access that will be used for the instruction operand.
+
+gcc/
+ PR target/111411
+ * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp): Require
+ the lower memory access to a mem-pair operand.
+
+gcc/testsuite/
+ PR target/111411
+ * gcc.dg/rtl/aarch64/pr111411.c: New test.
+
+Upstream-Status: Backport [https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=2d38f45bcca62ca0c7afef4b579f82c5c2a01610]
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+---
+ gcc/config/aarch64/aarch64.cc | 8 ++-
+ gcc/testsuite/gcc.dg/rtl/aarch64/pr111411.c | 57 +++++++++++++++++++++
+ 2 files changed, 60 insertions(+), 5 deletions(-)
+ create mode 100644 gcc/testsuite/gcc.dg/rtl/aarch64/pr111411.c
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index 6118a3354ac..9b1f791ca8b 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -26154,11 +26154,9 @@ aarch64_operands_ok_for_ldpstp (rtx *operands, bool load,
+ gcc_assert (known_eq (GET_MODE_SIZE (GET_MODE (mem_1)),
+ GET_MODE_SIZE (GET_MODE (mem_2))));
+
+- /* One of the memory accesses must be a mempair operand.
+- If it is not the first one, they need to be swapped by the
+- peephole. */
+- if (!aarch64_mem_pair_operand (mem_1, GET_MODE (mem_1))
+- && !aarch64_mem_pair_operand (mem_2, GET_MODE (mem_2)))
++ /* The lower memory access must be a mem-pair operand. */
++ rtx lower_mem = reversed ? mem_2 : mem_1;
++ if (!aarch64_mem_pair_operand (lower_mem, GET_MODE (lower_mem)))
+ return false;
+
+ if (REG_P (reg_1) && FP_REGNUM_P (REGNO (reg_1)))
+diff --git a/gcc/testsuite/gcc.dg/rtl/aarch64/pr111411.c b/gcc/testsuite/gcc.dg/rtl/aarch64/pr111411.c
+new file mode 100644
+index 00000000000..ad07e9c6c89
+--- /dev/null
++++ b/gcc/testsuite/gcc.dg/rtl/aarch64/pr111411.c
+@@ -0,0 +1,57 @@
++/* { dg-do compile { target aarch64*-*-* } } */
++/* { dg-require-effective-target lp64 } */
++/* { dg-options "-O -fdisable-rtl-postreload -fpeephole2 -fno-schedule-fusion" } */
++
++extern int data[];
++
++void __RTL (startwith ("ira")) foo (void *ptr)
++{
++ (function "foo"
++ (param "ptr"
++ (DECL_RTL (reg/v:DI <0> [ ptr ]))
++ (DECL_RTL_INCOMING (reg/v:DI x0 [ ptr ]))
++ ) ;; param "ptr"
++ (insn-chain
++ (block 2
++ (edge-from entry (flags "FALLTHRU"))
++ (cnote 3 [bb 2] NOTE_INSN_BASIC_BLOCK)
++ (insn 4 (set (reg:DI <0>) (reg:DI x0)))
++ (insn 5 (set (reg:DI <1>)
++ (plus:DI (reg:DI <0>) (const_int 768))))
++ (insn 6 (set (mem:SI (plus:DI (reg:DI <0>)
++ (const_int 508)) [1 &data+508 S4 A4])
++ (const_int 0)))
++ (insn 7 (set (mem:SI (plus:DI (reg:DI <1>)
++ (const_int -256)) [1 &data+512 S4 A4])
++ (const_int 0)))
++ (edge-to exit (flags "FALLTHRU"))
++ ) ;; block 2
++ ) ;; insn-chain
++ ) ;; function
++}
++
++void __RTL (startwith ("ira")) bar (void *ptr)
++{
++ (function "bar"
++ (param "ptr"
++ (DECL_RTL (reg/v:DI <0> [ ptr ]))
++ (DECL_RTL_INCOMING (reg/v:DI x0 [ ptr ]))
++ ) ;; param "ptr"
++ (insn-chain
++ (block 2
++ (edge-from entry (flags "FALLTHRU"))
++ (cnote 3 [bb 2] NOTE_INSN_BASIC_BLOCK)
++ (insn 4 (set (reg:DI <0>) (reg:DI x0)))
++ (insn 5 (set (reg:DI <1>)
++ (plus:DI (reg:DI <0>) (const_int 768))))
++ (insn 6 (set (mem:SI (plus:DI (reg:DI <1>)
++ (const_int -256)) [1 &data+512 S4 A4])
++ (const_int 0)))
++ (insn 7 (set (mem:SI (plus:DI (reg:DI <0>)
++ (const_int 508)) [1 &data+508 S4 A4])
++ (const_int 0)))
++ (edge-to exit (flags "FALLTHRU"))
++ ) ;; block 2
++ ) ;; insn-chain
++ ) ;; function
++}
diff --git a/poky/meta/recipes-devtools/gcc/gcc/CVE-2023-4039.patch b/poky/meta/recipes-devtools/gcc/gcc/CVE-2023-4039.patch
new file mode 100644
index 0000000000..81b5067c33
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/CVE-2023-4039.patch
@@ -0,0 +1,3093 @@
+From: Richard Sandiford <richard.sandiford@arm.com>
+Subject: [PATCH 00/19] aarch64: Fix -fstack-protector issue
+Date: Tue, 12 Sep 2023 16:25:10 +0100
+
+This series of patches fixes deficiencies in GCC's -fstack-protector
+implementation for AArch64 when using dynamically allocated stack space.
+This is CVE-2023-4039. See:
+
+https://developer.arm.com/Arm%20Security%20Center/GCC%20Stack%20Protector%20Vulnerability%20AArch64
+https://github.com/metaredteam/external-disclosures/security/advisories/GHSA-x7ch-h5rf-w2mf
+
+for more details.
+
+The fix is to put the saved registers above the locals area when
+-fstack-protector is used.
+
+The series also fixes a stack-clash problem that I found while working
+on the CVE. In unpatched sources, the stack-clash problem would only
+trigger for unrealistic numbers of arguments (8K 64-bit arguments, or an
+equivalent). But it would be a more significant issue with the new
+-fstack-protector frame layout. It's therefore important that both
+problems are fixed together.
+
+Some reorganisation of the code seemed necessary to fix the problems in a
+cleanish way. The series is therefore quite long, but only a handful of
+patches should have any effect on code generation.
+
+See the individual patches for a detailed description.
+
+Tested on aarch64-linux-gnu. Pushed to trunk and to all active branches.
+I've also pushed backports to GCC 7+ to vendors/ARM/heads/CVE-2023-4039.
+
+CVE: CVE-2023-4039
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+
+From 71a2aa2127283f450c623d3604dbcabe0e14a8d4 Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:12 +0100
+Subject: [PATCH 01/19] aarch64: Use local frame vars in shrink-wrapping code
+
+aarch64_layout_frame uses a shorthand for referring to
+cfun->machine->frame:
+
+ aarch64_frame &frame = cfun->machine->frame;
+
+This patch does the same for some other heavy users of the structure.
+No functional change intended.
+
+gcc/
+ * config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use
+ a local shorthand for cfun->machine->frame.
+ (aarch64_restore_callee_saves, aarch64_get_separate_components):
+ (aarch64_process_components): Likewise.
+ (aarch64_allocate_and_probe_stack_space): Likewise.
+ (aarch64_expand_prologue, aarch64_expand_epilogue): Likewise.
+ (aarch64_layout_frame): Use existing shorthand for one more case.
+---
+ gcc/config/aarch64/aarch64.cc | 123 ++++++++++++++++++----------------
+ 1 file changed, 64 insertions(+), 59 deletions(-)
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index 822a2b49a46..5d473d161d9 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -8612,7 +8612,7 @@ aarch64_layout_frame (void)
+ frame.is_scs_enabled
+ = (!crtl->calls_eh_return
+ && sanitize_flags_p (SANITIZE_SHADOW_CALL_STACK)
+- && known_ge (cfun->machine->frame.reg_offset[LR_REGNUM], 0));
++ && known_ge (frame.reg_offset[LR_REGNUM], 0));
+
+ /* When shadow call stack is enabled, the scs_pop in the epilogue will
+ restore x30, and we don't need to pop x30 again in the traditional
+@@ -9078,6 +9078,7 @@ aarch64_save_callee_saves (poly_int64 start_offset,
+ unsigned start, unsigned limit, bool skip_wb,
+ bool hard_fp_valid_p)
+ {
++ aarch64_frame &frame = cfun->machine->frame;
+ rtx_insn *insn;
+ unsigned regno;
+ unsigned regno2;
+@@ -9092,8 +9093,8 @@ aarch64_save_callee_saves (poly_int64 start_offset,
+ bool frame_related_p = aarch64_emit_cfi_for_reg_p (regno);
+
+ if (skip_wb
+- && (regno == cfun->machine->frame.wb_push_candidate1
+- || regno == cfun->machine->frame.wb_push_candidate2))
++ && (regno == frame.wb_push_candidate1
++ || regno == frame.wb_push_candidate2))
+ continue;
+
+ if (cfun->machine->reg_is_wrapped_separately[regno])
+@@ -9101,7 +9102,7 @@ aarch64_save_callee_saves (poly_int64 start_offset,
+
+ machine_mode mode = aarch64_reg_save_mode (regno);
+ reg = gen_rtx_REG (mode, regno);
+- offset = start_offset + cfun->machine->frame.reg_offset[regno];
++ offset = start_offset + frame.reg_offset[regno];
+ rtx base_rtx = stack_pointer_rtx;
+ poly_int64 sp_offset = offset;
+
+@@ -9114,7 +9115,7 @@ aarch64_save_callee_saves (poly_int64 start_offset,
+ {
+ gcc_assert (known_eq (start_offset, 0));
+ poly_int64 fp_offset
+- = cfun->machine->frame.below_hard_fp_saved_regs_size;
++ = frame.below_hard_fp_saved_regs_size;
+ if (hard_fp_valid_p)
+ base_rtx = hard_frame_pointer_rtx;
+ else
+@@ -9136,8 +9137,7 @@ aarch64_save_callee_saves (poly_int64 start_offset,
+ && (regno2 = aarch64_next_callee_save (regno + 1, limit)) <= limit
+ && !cfun->machine->reg_is_wrapped_separately[regno2]
+ && known_eq (GET_MODE_SIZE (mode),
+- cfun->machine->frame.reg_offset[regno2]
+- - cfun->machine->frame.reg_offset[regno]))
++ frame.reg_offset[regno2] - frame.reg_offset[regno]))
+ {
+ rtx reg2 = gen_rtx_REG (mode, regno2);
+ rtx mem2;
+@@ -9187,6 +9187,7 @@ static void
+ aarch64_restore_callee_saves (poly_int64 start_offset, unsigned start,
+ unsigned limit, bool skip_wb, rtx *cfi_ops)
+ {
++ aarch64_frame &frame = cfun->machine->frame;
+ unsigned regno;
+ unsigned regno2;
+ poly_int64 offset;
+@@ -9203,13 +9204,13 @@ aarch64_restore_callee_saves (poly_int64 start_offset, unsigned start,
+ rtx reg, mem;
+
+ if (skip_wb
+- && (regno == cfun->machine->frame.wb_pop_candidate1
+- || regno == cfun->machine->frame.wb_pop_candidate2))
++ && (regno == frame.wb_pop_candidate1
++ || regno == frame.wb_pop_candidate2))
+ continue;
+
+ machine_mode mode = aarch64_reg_save_mode (regno);
+ reg = gen_rtx_REG (mode, regno);
+- offset = start_offset + cfun->machine->frame.reg_offset[regno];
++ offset = start_offset + frame.reg_offset[regno];
+ rtx base_rtx = stack_pointer_rtx;
+ if (mode == VNx2DImode && BYTES_BIG_ENDIAN)
+ aarch64_adjust_sve_callee_save_base (mode, base_rtx, anchor_reg,
+@@ -9220,8 +9221,7 @@ aarch64_restore_callee_saves (poly_int64 start_offset, unsigned start,
+ && (regno2 = aarch64_next_callee_save (regno + 1, limit)) <= limit
+ && !cfun->machine->reg_is_wrapped_separately[regno2]
+ && known_eq (GET_MODE_SIZE (mode),
+- cfun->machine->frame.reg_offset[regno2]
+- - cfun->machine->frame.reg_offset[regno]))
++ frame.reg_offset[regno2] - frame.reg_offset[regno]))
+ {
+ rtx reg2 = gen_rtx_REG (mode, regno2);
+ rtx mem2;
+@@ -9326,6 +9326,7 @@ offset_12bit_unsigned_scaled_p (machine_mode mode, poly_int64 offset)
+ static sbitmap
+ aarch64_get_separate_components (void)
+ {
++ aarch64_frame &frame = cfun->machine->frame;
+ sbitmap components = sbitmap_alloc (LAST_SAVED_REGNUM + 1);
+ bitmap_clear (components);
+
+@@ -9342,18 +9343,18 @@ aarch64_get_separate_components (void)
+ if (mode == VNx2DImode && BYTES_BIG_ENDIAN)
+ continue;
+
+- poly_int64 offset = cfun->machine->frame.reg_offset[regno];
++ poly_int64 offset = frame.reg_offset[regno];
+
+ /* If the register is saved in the first SVE save slot, we use
+ it as a stack probe for -fstack-clash-protection. */
+ if (flag_stack_clash_protection
+- && maybe_ne (cfun->machine->frame.below_hard_fp_saved_regs_size, 0)
++ && maybe_ne (frame.below_hard_fp_saved_regs_size, 0)
+ && known_eq (offset, 0))
+ continue;
+
+ /* Get the offset relative to the register we'll use. */
+ if (frame_pointer_needed)
+- offset -= cfun->machine->frame.below_hard_fp_saved_regs_size;
++ offset -= frame.below_hard_fp_saved_regs_size;
+ else
+ offset += crtl->outgoing_args_size;
+
+@@ -9372,11 +9373,11 @@ aarch64_get_separate_components (void)
+ /* If the spare predicate register used by big-endian SVE code
+ is call-preserved, it must be saved in the main prologue
+ before any saves that use it. */
+- if (cfun->machine->frame.spare_pred_reg != INVALID_REGNUM)
+- bitmap_clear_bit (components, cfun->machine->frame.spare_pred_reg);
++ if (frame.spare_pred_reg != INVALID_REGNUM)
++ bitmap_clear_bit (components, frame.spare_pred_reg);
+
+- unsigned reg1 = cfun->machine->frame.wb_push_candidate1;
+- unsigned reg2 = cfun->machine->frame.wb_push_candidate2;
++ unsigned reg1 = frame.wb_push_candidate1;
++ unsigned reg2 = frame.wb_push_candidate2;
+ /* If registers have been chosen to be stored/restored with
+ writeback don't interfere with them to avoid having to output explicit
+ stack adjustment instructions. */
+@@ -9485,6 +9486,7 @@ aarch64_get_next_set_bit (sbitmap bmp, unsigned int start)
+ static void
+ aarch64_process_components (sbitmap components, bool prologue_p)
+ {
++ aarch64_frame &frame = cfun->machine->frame;
+ rtx ptr_reg = gen_rtx_REG (Pmode, frame_pointer_needed
+ ? HARD_FRAME_POINTER_REGNUM
+ : STACK_POINTER_REGNUM);
+@@ -9499,9 +9501,9 @@ aarch64_process_components (sbitmap components, bool prologue_p)
+ machine_mode mode = aarch64_reg_save_mode (regno);
+
+ rtx reg = gen_rtx_REG (mode, regno);
+- poly_int64 offset = cfun->machine->frame.reg_offset[regno];
++ poly_int64 offset = frame.reg_offset[regno];
+ if (frame_pointer_needed)
+- offset -= cfun->machine->frame.below_hard_fp_saved_regs_size;
++ offset -= frame.below_hard_fp_saved_regs_size;
+ else
+ offset += crtl->outgoing_args_size;
+
+@@ -9526,14 +9528,14 @@ aarch64_process_components (sbitmap components, bool prologue_p)
+ break;
+ }
+
+- poly_int64 offset2 = cfun->machine->frame.reg_offset[regno2];
++ poly_int64 offset2 = frame.reg_offset[regno2];
+ /* The next register is not of the same class or its offset is not
+ mergeable with the current one into a pair. */
+ if (aarch64_sve_mode_p (mode)
+ || !satisfies_constraint_Ump (mem)
+ || GP_REGNUM_P (regno) != GP_REGNUM_P (regno2)
+ || (crtl->abi->id () == ARM_PCS_SIMD && FP_REGNUM_P (regno))
+- || maybe_ne ((offset2 - cfun->machine->frame.reg_offset[regno]),
++ || maybe_ne ((offset2 - frame.reg_offset[regno]),
+ GET_MODE_SIZE (mode)))
+ {
+ insn = emit_insn (set);
+@@ -9555,7 +9557,7 @@ aarch64_process_components (sbitmap components, bool prologue_p)
+ /* REGNO2 can be saved/restored in a pair with REGNO. */
+ rtx reg2 = gen_rtx_REG (mode, regno2);
+ if (frame_pointer_needed)
+- offset2 -= cfun->machine->frame.below_hard_fp_saved_regs_size;
++ offset2 -= frame.below_hard_fp_saved_regs_size;
+ else
+ offset2 += crtl->outgoing_args_size;
+ rtx addr2 = plus_constant (Pmode, ptr_reg, offset2);
+@@ -9650,6 +9652,7 @@ aarch64_allocate_and_probe_stack_space (rtx temp1, rtx temp2,
+ bool frame_related_p,
+ bool final_adjustment_p)
+ {
++ aarch64_frame &frame = cfun->machine->frame;
+ HOST_WIDE_INT guard_size
+ = 1 << param_stack_clash_protection_guard_size;
+ HOST_WIDE_INT guard_used_by_caller = STACK_CLASH_CALLER_GUARD;
+@@ -9670,25 +9673,25 @@ aarch64_allocate_and_probe_stack_space (rtx temp1, rtx temp2,
+ register as a probe. We can't assume that LR was saved at position 0
+ though, so treat any space below it as unprobed. */
+ if (final_adjustment_p
+- && known_eq (cfun->machine->frame.below_hard_fp_saved_regs_size, 0))
++ && known_eq (frame.below_hard_fp_saved_regs_size, 0))
+ {
+- poly_int64 lr_offset = cfun->machine->frame.reg_offset[LR_REGNUM];
++ poly_int64 lr_offset = frame.reg_offset[LR_REGNUM];
+ if (known_ge (lr_offset, 0))
+ min_probe_threshold -= lr_offset.to_constant ();
+ else
+ gcc_assert (!flag_stack_clash_protection || known_eq (poly_size, 0));
+ }
+
+- poly_int64 frame_size = cfun->machine->frame.frame_size;
++ poly_int64 frame_size = frame.frame_size;
+
+ /* We should always have a positive probe threshold. */
+ gcc_assert (min_probe_threshold > 0);
+
+ if (flag_stack_clash_protection && !final_adjustment_p)
+ {
+- poly_int64 initial_adjust = cfun->machine->frame.initial_adjust;
+- poly_int64 sve_callee_adjust = cfun->machine->frame.sve_callee_adjust;
+- poly_int64 final_adjust = cfun->machine->frame.final_adjust;
++ poly_int64 initial_adjust = frame.initial_adjust;
++ poly_int64 sve_callee_adjust = frame.sve_callee_adjust;
++ poly_int64 final_adjust = frame.final_adjust;
+
+ if (known_eq (frame_size, 0))
+ {
+@@ -9977,17 +9980,18 @@ aarch64_epilogue_uses (int regno)
+ void
+ aarch64_expand_prologue (void)
+ {
+- poly_int64 frame_size = cfun->machine->frame.frame_size;
+- poly_int64 initial_adjust = cfun->machine->frame.initial_adjust;
+- HOST_WIDE_INT callee_adjust = cfun->machine->frame.callee_adjust;
+- poly_int64 final_adjust = cfun->machine->frame.final_adjust;
+- poly_int64 callee_offset = cfun->machine->frame.callee_offset;
+- poly_int64 sve_callee_adjust = cfun->machine->frame.sve_callee_adjust;
++ aarch64_frame &frame = cfun->machine->frame;
++ poly_int64 frame_size = frame.frame_size;
++ poly_int64 initial_adjust = frame.initial_adjust;
++ HOST_WIDE_INT callee_adjust = frame.callee_adjust;
++ poly_int64 final_adjust = frame.final_adjust;
++ poly_int64 callee_offset = frame.callee_offset;
++ poly_int64 sve_callee_adjust = frame.sve_callee_adjust;
+ poly_int64 below_hard_fp_saved_regs_size
+- = cfun->machine->frame.below_hard_fp_saved_regs_size;
+- unsigned reg1 = cfun->machine->frame.wb_push_candidate1;
+- unsigned reg2 = cfun->machine->frame.wb_push_candidate2;
+- bool emit_frame_chain = cfun->machine->frame.emit_frame_chain;
++ = frame.below_hard_fp_saved_regs_size;
++ unsigned reg1 = frame.wb_push_candidate1;
++ unsigned reg2 = frame.wb_push_candidate2;
++ bool emit_frame_chain = frame.emit_frame_chain;
+ rtx_insn *insn;
+
+ if (flag_stack_clash_protection && known_eq (callee_adjust, 0))
+@@ -10018,7 +10022,7 @@ aarch64_expand_prologue (void)
+ }
+
+ /* Push return address to shadow call stack. */
+- if (cfun->machine->frame.is_scs_enabled)
++ if (frame.is_scs_enabled)
+ emit_insn (gen_scs_push ());
+
+ if (flag_stack_usage_info)
+@@ -10057,7 +10061,7 @@ aarch64_expand_prologue (void)
+
+ /* The offset of the frame chain record (if any) from the current SP. */
+ poly_int64 chain_offset = (initial_adjust + callee_adjust
+- - cfun->machine->frame.hard_fp_offset);
++ - frame.hard_fp_offset);
+ gcc_assert (known_ge (chain_offset, 0));
+
+ /* The offset of the bottom of the save area from the current SP. */
+@@ -10160,16 +10164,17 @@ aarch64_use_return_insn_p (void)
+ void
+ aarch64_expand_epilogue (bool for_sibcall)
+ {
+- poly_int64 initial_adjust = cfun->machine->frame.initial_adjust;
+- HOST_WIDE_INT callee_adjust = cfun->machine->frame.callee_adjust;
+- poly_int64 final_adjust = cfun->machine->frame.final_adjust;
+- poly_int64 callee_offset = cfun->machine->frame.callee_offset;
+- poly_int64 sve_callee_adjust = cfun->machine->frame.sve_callee_adjust;
++ aarch64_frame &frame = cfun->machine->frame;
++ poly_int64 initial_adjust = frame.initial_adjust;
++ HOST_WIDE_INT callee_adjust = frame.callee_adjust;
++ poly_int64 final_adjust = frame.final_adjust;
++ poly_int64 callee_offset = frame.callee_offset;
++ poly_int64 sve_callee_adjust = frame.sve_callee_adjust;
+ poly_int64 below_hard_fp_saved_regs_size
+- = cfun->machine->frame.below_hard_fp_saved_regs_size;
+- unsigned reg1 = cfun->machine->frame.wb_pop_candidate1;
+- unsigned reg2 = cfun->machine->frame.wb_pop_candidate2;
+- unsigned int last_gpr = (cfun->machine->frame.is_scs_enabled
++ = frame.below_hard_fp_saved_regs_size;
++ unsigned reg1 = frame.wb_pop_candidate1;
++ unsigned reg2 = frame.wb_pop_candidate2;
++ unsigned int last_gpr = (frame.is_scs_enabled
+ ? R29_REGNUM : R30_REGNUM);
+ rtx cfi_ops = NULL;
+ rtx_insn *insn;
+@@ -10203,7 +10208,7 @@ aarch64_expand_epilogue (bool for_sibcall)
+ /* We need to add memory barrier to prevent read from deallocated stack. */
+ bool need_barrier_p
+ = maybe_ne (get_frame_size ()
+- + cfun->machine->frame.saved_varargs_size, 0);
++ + frame.saved_varargs_size, 0);
+
+ /* Emit a barrier to prevent loads from a deallocated stack. */
+ if (maybe_gt (final_adjust, crtl->outgoing_args_size)
+@@ -10284,7 +10289,7 @@ aarch64_expand_epilogue (bool for_sibcall)
+ }
+
+ /* Pop return address from shadow call stack. */
+- if (cfun->machine->frame.is_scs_enabled)
++ if (frame.is_scs_enabled)
+ {
+ machine_mode mode = aarch64_reg_save_mode (R30_REGNUM);
+ rtx reg = gen_rtx_REG (mode, R30_REGNUM);
+@@ -12740,24 +12745,24 @@ aarch64_can_eliminate (const int from ATTRIBUTE_UNUSED, const int to)
+ poly_int64
+ aarch64_initial_elimination_offset (unsigned from, unsigned to)
+ {
++ aarch64_frame &frame = cfun->machine->frame;
++
+ if (to == HARD_FRAME_POINTER_REGNUM)
+ {
+ if (from == ARG_POINTER_REGNUM)
+- return cfun->machine->frame.hard_fp_offset;
++ return frame.hard_fp_offset;
+
+ if (from == FRAME_POINTER_REGNUM)
+- return cfun->machine->frame.hard_fp_offset
+- - cfun->machine->frame.locals_offset;
++ return frame.hard_fp_offset - frame.locals_offset;
+ }
+
+ if (to == STACK_POINTER_REGNUM)
+ {
+ if (from == FRAME_POINTER_REGNUM)
+- return cfun->machine->frame.frame_size
+- - cfun->machine->frame.locals_offset;
++ return frame.frame_size - frame.locals_offset;
+ }
+
+- return cfun->machine->frame.frame_size;
++ return frame.frame_size;
+ }
+
+
+--
+2.34.1
+
+
+From 89a9fa287706c5011f61926eaf65e7b996b963a3 Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:12 +0100
+Subject: [PATCH 02/19] aarch64: Avoid a use of callee_offset
+
+When we emit the frame chain, i.e. when we reach Here in this statement
+of aarch64_expand_prologue:
+
+ if (emit_frame_chain)
+ {
+ // Here
+ ...
+ }
+
+the stack is in one of two states:
+
+- We've allocated up to the frame chain, but no more.
+
+- We've allocated the whole frame, and the frame chain is within easy
+ reach of the new SP.
+
+The offset of the frame chain from the current SP is available
+in aarch64_frame as callee_offset. It is also available as the
+chain_offset local variable, where the latter is calculated from other
+data. (However, chain_offset is not always equal to callee_offset when
+!emit_frame_chain, so chain_offset isn't redundant.)
+
+In c600df9a4060da3c6121ff4d0b93f179eafd69d1 I switched to using
+chain_offset for the initialisation of the hard frame pointer:
+
+ aarch64_add_offset (Pmode, hard_frame_pointer_rtx,
+- stack_pointer_rtx, callee_offset,
++ stack_pointer_rtx, chain_offset,
+ tmp1_rtx, tmp0_rtx, frame_pointer_needed);
+
+But the later REG_CFA_ADJUST_CFA handling still used callee_offset.
+
+I think the difference is harmless, but it's more logical for the
+CFA note to be in sync, and it's more convenient for later patches
+if it uses chain_offset.
+
+gcc/
+ * config/aarch64/aarch64.cc (aarch64_expand_prologue): Use
+ chain_offset rather than callee_offset.
+---
+ gcc/config/aarch64/aarch64.cc | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index 5d473d161d9..4f233c95140 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -9985,7 +9985,6 @@ aarch64_expand_prologue (void)
+ poly_int64 initial_adjust = frame.initial_adjust;
+ HOST_WIDE_INT callee_adjust = frame.callee_adjust;
+ poly_int64 final_adjust = frame.final_adjust;
+- poly_int64 callee_offset = frame.callee_offset;
+ poly_int64 sve_callee_adjust = frame.sve_callee_adjust;
+ poly_int64 below_hard_fp_saved_regs_size
+ = frame.below_hard_fp_saved_regs_size;
+@@ -10098,8 +10097,7 @@ aarch64_expand_prologue (void)
+ implicit. */
+ if (!find_reg_note (insn, REG_CFA_ADJUST_CFA, NULL_RTX))
+ {
+- rtx src = plus_constant (Pmode, stack_pointer_rtx,
+- callee_offset);
++ rtx src = plus_constant (Pmode, stack_pointer_rtx, chain_offset);
+ add_reg_note (insn, REG_CFA_ADJUST_CFA,
+ gen_rtx_SET (hard_frame_pointer_rtx, src));
+ }
+--
+2.34.1
+
+
+From b36a2a78040722dab6124366c5d6baf8eaf80aef Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:13 +0100
+Subject: [PATCH 03/19] aarch64: Explicitly handle frames with no saved
+ registers
+
+If a frame has no saved registers, it can be allocated in one go.
+There is no need to treat the areas below and above the saved
+registers as separate.
+
+And if we allocate the frame in one go, it should be allocated
+as the initial_adjust rather than the final_adjust. This allows the
+frame size to grow to guard_size - guard_used_by_caller before a stack
+probe is needed. (A frame with no register saves is necessarily a
+leaf frame.)
+
+This is a no-op as thing stand, since a leaf function will have
+no outgoing arguments, and so all the frame will be above where
+the saved registers normally go.
+
+gcc/
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Explicitly
+ allocate the frame in one go if there are no saved registers.
+---
+ gcc/config/aarch64/aarch64.cc | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index 4f233c95140..37643041ffb 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -8639,9 +8639,11 @@ aarch64_layout_frame (void)
+
+ HOST_WIDE_INT const_size, const_outgoing_args_size, const_fp_offset;
+ HOST_WIDE_INT const_saved_regs_size;
+- if (frame.frame_size.is_constant (&const_size)
+- && const_size < max_push_offset
+- && known_eq (frame.hard_fp_offset, const_size))
++ if (known_eq (frame.saved_regs_size, 0))
++ frame.initial_adjust = frame.frame_size;
++ else if (frame.frame_size.is_constant (&const_size)
++ && const_size < max_push_offset
++ && known_eq (frame.hard_fp_offset, const_size))
+ {
+ /* Simple, small frame with no outgoing arguments:
+
+--
+2.34.1
+
+
+From ada2ab0093596be707f23a3466ac82cff59fcffe Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:13 +0100
+Subject: [PATCH 04/19] aarch64: Add bytes_below_saved_regs to frame info
+
+The frame layout code currently hard-codes the assumption that
+the number of bytes below the saved registers is equal to the
+size of the outgoing arguments. This patch abstracts that
+value into a new field of aarch64_frame.
+
+gcc/
+ * config/aarch64/aarch64.h (aarch64_frame::bytes_below_saved_regs): New
+ field.
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Initialize it,
+ and use it instead of crtl->outgoing_args_size.
+ (aarch64_get_separate_components): Use bytes_below_saved_regs instead
+ of outgoing_args_size.
+ (aarch64_process_components): Likewise.
+---
+ gcc/config/aarch64/aarch64.cc | 71 ++++++++++++++++++-----------------
+ gcc/config/aarch64/aarch64.h | 5 +++
+ 2 files changed, 41 insertions(+), 35 deletions(-)
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index 37643041ffb..dacc2b0e4dd 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -8478,6 +8478,8 @@ aarch64_layout_frame (void)
+ gcc_assert (crtl->is_leaf
+ || maybe_ne (frame.reg_offset[R30_REGNUM], SLOT_NOT_REQUIRED));
+
++ frame.bytes_below_saved_regs = crtl->outgoing_args_size;
++
+ /* Now assign stack slots for the registers. Start with the predicate
+ registers, since predicate LDR and STR have a relatively small
+ offset range. These saves happen below the hard frame pointer. */
+@@ -8582,18 +8584,18 @@ aarch64_layout_frame (void)
+
+ poly_int64 varargs_and_saved_regs_size = offset + frame.saved_varargs_size;
+
+- poly_int64 above_outgoing_args
++ poly_int64 saved_regs_and_above
+ = aligned_upper_bound (varargs_and_saved_regs_size
+ + get_frame_size (),
+ STACK_BOUNDARY / BITS_PER_UNIT);
+
+ frame.hard_fp_offset
+- = above_outgoing_args - frame.below_hard_fp_saved_regs_size;
++ = saved_regs_and_above - frame.below_hard_fp_saved_regs_size;
+
+ /* Both these values are already aligned. */
+- gcc_assert (multiple_p (crtl->outgoing_args_size,
++ gcc_assert (multiple_p (frame.bytes_below_saved_regs,
+ STACK_BOUNDARY / BITS_PER_UNIT));
+- frame.frame_size = above_outgoing_args + crtl->outgoing_args_size;
++ frame.frame_size = saved_regs_and_above + frame.bytes_below_saved_regs;
+
+ frame.locals_offset = frame.saved_varargs_size;
+
+@@ -8637,7 +8639,7 @@ aarch64_layout_frame (void)
+ else if (frame.wb_pop_candidate1 != INVALID_REGNUM)
+ max_push_offset = 256;
+
+- HOST_WIDE_INT const_size, const_outgoing_args_size, const_fp_offset;
++ HOST_WIDE_INT const_size, const_below_saved_regs, const_fp_offset;
+ HOST_WIDE_INT const_saved_regs_size;
+ if (known_eq (frame.saved_regs_size, 0))
+ frame.initial_adjust = frame.frame_size;
+@@ -8645,31 +8647,31 @@ aarch64_layout_frame (void)
+ && const_size < max_push_offset
+ && known_eq (frame.hard_fp_offset, const_size))
+ {
+- /* Simple, small frame with no outgoing arguments:
++ /* Simple, small frame with no data below the saved registers.
+
+ stp reg1, reg2, [sp, -frame_size]!
+ stp reg3, reg4, [sp, 16] */
+ frame.callee_adjust = const_size;
+ }
+- else if (crtl->outgoing_args_size.is_constant (&const_outgoing_args_size)
++ else if (frame.bytes_below_saved_regs.is_constant (&const_below_saved_regs)
+ && frame.saved_regs_size.is_constant (&const_saved_regs_size)
+- && const_outgoing_args_size + const_saved_regs_size < 512
+- /* We could handle this case even with outgoing args, provided
+- that the number of args left us with valid offsets for all
+- predicate and vector save slots. It's such a rare case that
+- it hardly seems worth the effort though. */
+- && (!saves_below_hard_fp_p || const_outgoing_args_size == 0)
++ && const_below_saved_regs + const_saved_regs_size < 512
++ /* We could handle this case even with data below the saved
++ registers, provided that that data left us with valid offsets
++ for all predicate and vector save slots. It's such a rare
++ case that it hardly seems worth the effort though. */
++ && (!saves_below_hard_fp_p || const_below_saved_regs == 0)
+ && !(cfun->calls_alloca
+ && frame.hard_fp_offset.is_constant (&const_fp_offset)
+ && const_fp_offset < max_push_offset))
+ {
+- /* Frame with small outgoing arguments:
++ /* Frame with small area below the saved registers:
+
+ sub sp, sp, frame_size
+- stp reg1, reg2, [sp, outgoing_args_size]
+- stp reg3, reg4, [sp, outgoing_args_size + 16] */
++ stp reg1, reg2, [sp, bytes_below_saved_regs]
++ stp reg3, reg4, [sp, bytes_below_saved_regs + 16] */
+ frame.initial_adjust = frame.frame_size;
+- frame.callee_offset = const_outgoing_args_size;
++ frame.callee_offset = const_below_saved_regs;
+ }
+ else if (saves_below_hard_fp_p
+ && known_eq (frame.saved_regs_size,
+@@ -8679,30 +8681,29 @@ aarch64_layout_frame (void)
+
+ sub sp, sp, hard_fp_offset + below_hard_fp_saved_regs_size
+ save SVE registers relative to SP
+- sub sp, sp, outgoing_args_size */
++ sub sp, sp, bytes_below_saved_regs */
+ frame.initial_adjust = (frame.hard_fp_offset
+ + frame.below_hard_fp_saved_regs_size);
+- frame.final_adjust = crtl->outgoing_args_size;
++ frame.final_adjust = frame.bytes_below_saved_regs;
+ }
+ else if (frame.hard_fp_offset.is_constant (&const_fp_offset)
+ && const_fp_offset < max_push_offset)
+ {
+- /* Frame with large outgoing arguments or SVE saves, but with
+- a small local area:
++ /* Frame with large area below the saved registers, or with SVE saves,
++ but with a small area above:
+
+ stp reg1, reg2, [sp, -hard_fp_offset]!
+ stp reg3, reg4, [sp, 16]
+ [sub sp, sp, below_hard_fp_saved_regs_size]
+ [save SVE registers relative to SP]
+- sub sp, sp, outgoing_args_size */
++ sub sp, sp, bytes_below_saved_regs */
+ frame.callee_adjust = const_fp_offset;
+ frame.sve_callee_adjust = frame.below_hard_fp_saved_regs_size;
+- frame.final_adjust = crtl->outgoing_args_size;
++ frame.final_adjust = frame.bytes_below_saved_regs;
+ }
+ else
+ {
+- /* Frame with large local area and outgoing arguments or SVE saves,
+- using frame pointer:
++ /* General case:
+
+ sub sp, sp, hard_fp_offset
+ stp x29, x30, [sp, 0]
+@@ -8710,10 +8711,10 @@ aarch64_layout_frame (void)
+ stp reg3, reg4, [sp, 16]
+ [sub sp, sp, below_hard_fp_saved_regs_size]
+ [save SVE registers relative to SP]
+- sub sp, sp, outgoing_args_size */
++ sub sp, sp, bytes_below_saved_regs */
+ frame.initial_adjust = frame.hard_fp_offset;
+ frame.sve_callee_adjust = frame.below_hard_fp_saved_regs_size;
+- frame.final_adjust = crtl->outgoing_args_size;
++ frame.final_adjust = frame.bytes_below_saved_regs;
+ }
+
+ /* Make sure the individual adjustments add up to the full frame size. */
+@@ -9358,7 +9359,7 @@ aarch64_get_separate_components (void)
+ if (frame_pointer_needed)
+ offset -= frame.below_hard_fp_saved_regs_size;
+ else
+- offset += crtl->outgoing_args_size;
++ offset += frame.bytes_below_saved_regs;
+
+ /* Check that we can access the stack slot of the register with one
+ direct load with no adjustments needed. */
+@@ -9507,7 +9508,7 @@ aarch64_process_components (sbitmap components, bool prologue_p)
+ if (frame_pointer_needed)
+ offset -= frame.below_hard_fp_saved_regs_size;
+ else
+- offset += crtl->outgoing_args_size;
++ offset += frame.bytes_below_saved_regs;
+
+ rtx addr = plus_constant (Pmode, ptr_reg, offset);
+ rtx mem = gen_frame_mem (mode, addr);
+@@ -9561,7 +9562,7 @@ aarch64_process_components (sbitmap components, bool prologue_p)
+ if (frame_pointer_needed)
+ offset2 -= frame.below_hard_fp_saved_regs_size;
+ else
+- offset2 += crtl->outgoing_args_size;
++ offset2 += frame.bytes_below_saved_regs;
+ rtx addr2 = plus_constant (Pmode, ptr_reg, offset2);
+ rtx mem2 = gen_frame_mem (mode, addr2);
+ rtx set2 = prologue_p ? gen_rtx_SET (mem2, reg2)
+@@ -9635,10 +9636,10 @@ aarch64_stack_clash_protection_alloca_probe_range (void)
+ registers. If POLY_SIZE is not large enough to require a probe this function
+ will only adjust the stack. When allocating the stack space
+ FRAME_RELATED_P is then used to indicate if the allocation is frame related.
+- FINAL_ADJUSTMENT_P indicates whether we are allocating the outgoing
+- arguments. If we are then we ensure that any allocation larger than the ABI
+- defined buffer needs a probe so that the invariant of having a 1KB buffer is
+- maintained.
++ FINAL_ADJUSTMENT_P indicates whether we are allocating the area below
++ the saved registers. If we are then we ensure that any allocation
++ larger than the ABI defined buffer needs a probe so that the
++ invariant of having a 1KB buffer is maintained.
+
+ We emit barriers after each stack adjustment to prevent optimizations from
+ breaking the invariant that we never drop the stack more than a page. This
+@@ -9847,7 +9848,7 @@ aarch64_allocate_and_probe_stack_space (rtx temp1, rtx temp2,
+ /* Handle any residuals. Residuals of at least MIN_PROBE_THRESHOLD have to
+ be probed. This maintains the requirement that each page is probed at
+ least once. For initial probing we probe only if the allocation is
+- more than GUARD_SIZE - buffer, and for the outgoing arguments we probe
++ more than GUARD_SIZE - buffer, and below the saved registers we probe
+ if the amount is larger than buffer. GUARD_SIZE - buffer + buffer ==
+ GUARD_SIZE. This works that for any allocation that is large enough to
+ trigger a probe here, we'll have at least one, and if they're not large
+diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
+index 73b09e20508..0b6faa3ddf1 100644
+--- a/gcc/config/aarch64/aarch64.h
++++ b/gcc/config/aarch64/aarch64.h
+@@ -777,6 +777,11 @@ struct GTY (()) aarch64_frame
+ /* The size of the callee-save registers with a slot in REG_OFFSET. */
+ poly_int64 saved_regs_size;
+
++ /* The number of bytes between the bottom of the static frame (the bottom
++ of the outgoing arguments) and the bottom of the register save area.
++ This value is always a multiple of STACK_BOUNDARY. */
++ poly_int64 bytes_below_saved_regs;
++
+ /* The size of the callee-save registers with a slot in REG_OFFSET that
+ are saved below the hard frame pointer. */
+ poly_int64 below_hard_fp_saved_regs_size;
+--
+2.34.1
+
+
+From 82f6b3e1b596ef0f4e3ac3bb9c6e88fb4458f402 Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:14 +0100
+Subject: [PATCH 05/19] aarch64: Add bytes_below_hard_fp to frame info
+
+Following on from the previous bytes_below_saved_regs patch, this one
+records the number of bytes that are below the hard frame pointer.
+This eventually replaces below_hard_fp_saved_regs_size.
+
+If a frame pointer is not needed, the epilogue adds final_adjust
+to the stack pointer before restoring registers:
+
+ aarch64_add_sp (tmp1_rtx, tmp0_rtx, final_adjust, true);
+
+Therefore, if the epilogue needs to restore the stack pointer from
+the hard frame pointer, the directly corresponding offset is:
+
+ -bytes_below_hard_fp + final_adjust
+
+i.e. go from the hard frame pointer to the bottom of the frame,
+then add the same amount as if we were using the stack pointer
+from the outset.
+
+gcc/
+ * config/aarch64/aarch64.h (aarch64_frame::bytes_below_hard_fp): New
+ field.
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Initialize it.
+ (aarch64_expand_epilogue): Use it instead of
+ below_hard_fp_saved_regs_size.
+---
+ gcc/config/aarch64/aarch64.cc | 6 +++---
+ gcc/config/aarch64/aarch64.h | 5 +++++
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index dacc2b0e4dd..a3f7aabcc59 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -8530,6 +8530,7 @@ aarch64_layout_frame (void)
+ of the callee save area. */
+ bool saves_below_hard_fp_p = maybe_ne (offset, 0);
+ frame.below_hard_fp_saved_regs_size = offset;
++ frame.bytes_below_hard_fp = offset + frame.bytes_below_saved_regs;
+ if (frame.emit_frame_chain)
+ {
+ /* FP and LR are placed in the linkage record. */
+@@ -10171,8 +10172,7 @@ aarch64_expand_epilogue (bool for_sibcall)
+ poly_int64 final_adjust = frame.final_adjust;
+ poly_int64 callee_offset = frame.callee_offset;
+ poly_int64 sve_callee_adjust = frame.sve_callee_adjust;
+- poly_int64 below_hard_fp_saved_regs_size
+- = frame.below_hard_fp_saved_regs_size;
++ poly_int64 bytes_below_hard_fp = frame.bytes_below_hard_fp;
+ unsigned reg1 = frame.wb_pop_candidate1;
+ unsigned reg2 = frame.wb_pop_candidate2;
+ unsigned int last_gpr = (frame.is_scs_enabled
+@@ -10230,7 +10230,7 @@ aarch64_expand_epilogue (bool for_sibcall)
+ is restored on the instruction doing the writeback. */
+ aarch64_add_offset (Pmode, stack_pointer_rtx,
+ hard_frame_pointer_rtx,
+- -callee_offset - below_hard_fp_saved_regs_size,
++ -bytes_below_hard_fp + final_adjust,
+ tmp1_rtx, tmp0_rtx, callee_adjust == 0);
+ else
+ /* The case where we need to re-use the register here is very rare, so
+diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
+index 0b6faa3ddf1..4263d29d29d 100644
+--- a/gcc/config/aarch64/aarch64.h
++++ b/gcc/config/aarch64/aarch64.h
+@@ -786,6 +786,11 @@ struct GTY (()) aarch64_frame
+ are saved below the hard frame pointer. */
+ poly_int64 below_hard_fp_saved_regs_size;
+
++ /* The number of bytes between the bottom of the static frame (the bottom
++ of the outgoing arguments) and the hard frame pointer. This value is
++ always a multiple of STACK_BOUNDARY. */
++ poly_int64 bytes_below_hard_fp;
++
+ /* Offset from the base of the frame (incomming SP) to the
+ top of the locals area. This value is always a multiple of
+ STACK_BOUNDARY. */
+--
+2.34.1
+
+
+From 86fa43e9fe4a8bf954f2919f07cbe3646d1d1df3 Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:14 +0100
+Subject: [PATCH 06/19] aarch64: Tweak aarch64_save/restore_callee_saves
+
+aarch64_save_callee_saves and aarch64_restore_callee_saves took
+a parameter called start_offset that gives the offset of the
+bottom of the saved register area from the current stack pointer.
+However, it's more convenient for later patches if we use the
+bottom of the entire frame as the reference point, rather than
+the bottom of the saved registers.
+
+Doing that removes the need for the callee_offset field.
+Other than that, this is not a win on its own. It only really
+makes sense in combination with the follow-on patches.
+
+gcc/
+ * config/aarch64/aarch64.h (aarch64_frame::callee_offset): Delete.
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Remove
+ callee_offset handling.
+ (aarch64_save_callee_saves): Replace the start_offset parameter
+ with a bytes_below_sp parameter.
+ (aarch64_restore_callee_saves): Likewise.
+ (aarch64_expand_prologue): Update accordingly.
+ (aarch64_expand_epilogue): Likewise.
+---
+ gcc/config/aarch64/aarch64.cc | 56 +++++++++++++++++------------------
+ gcc/config/aarch64/aarch64.h | 4 ---
+ 2 files changed, 28 insertions(+), 32 deletions(-)
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index a3f7aabcc59..46ae5cf7673 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -8604,7 +8604,6 @@ aarch64_layout_frame (void)
+ frame.final_adjust = 0;
+ frame.callee_adjust = 0;
+ frame.sve_callee_adjust = 0;
+- frame.callee_offset = 0;
+
+ frame.wb_pop_candidate1 = frame.wb_push_candidate1;
+ frame.wb_pop_candidate2 = frame.wb_push_candidate2;
+@@ -8672,7 +8671,6 @@ aarch64_layout_frame (void)
+ stp reg1, reg2, [sp, bytes_below_saved_regs]
+ stp reg3, reg4, [sp, bytes_below_saved_regs + 16] */
+ frame.initial_adjust = frame.frame_size;
+- frame.callee_offset = const_below_saved_regs;
+ }
+ else if (saves_below_hard_fp_p
+ && known_eq (frame.saved_regs_size,
+@@ -9073,12 +9071,13 @@ aarch64_add_cfa_expression (rtx_insn *insn, rtx reg,
+ }
+
+ /* Emit code to save the callee-saved registers from register number START
+- to LIMIT to the stack at the location starting at offset START_OFFSET,
+- skipping any write-back candidates if SKIP_WB is true. HARD_FP_VALID_P
+- is true if the hard frame pointer has been set up. */
++ to LIMIT to the stack. The stack pointer is currently BYTES_BELOW_SP
++ bytes above the bottom of the static frame. Skip any write-back
++ candidates if SKIP_WB is true. HARD_FP_VALID_P is true if the hard
++ frame pointer has been set up. */
+
+ static void
+-aarch64_save_callee_saves (poly_int64 start_offset,
++aarch64_save_callee_saves (poly_int64 bytes_below_sp,
+ unsigned start, unsigned limit, bool skip_wb,
+ bool hard_fp_valid_p)
+ {
+@@ -9106,7 +9105,9 @@ aarch64_save_callee_saves (poly_int64 start_offset,
+
+ machine_mode mode = aarch64_reg_save_mode (regno);
+ reg = gen_rtx_REG (mode, regno);
+- offset = start_offset + frame.reg_offset[regno];
++ offset = (frame.reg_offset[regno]
++ + frame.bytes_below_saved_regs
++ - bytes_below_sp);
+ rtx base_rtx = stack_pointer_rtx;
+ poly_int64 sp_offset = offset;
+
+@@ -9117,9 +9118,7 @@ aarch64_save_callee_saves (poly_int64 start_offset,
+ else if (GP_REGNUM_P (regno)
+ && (!offset.is_constant (&const_offset) || const_offset >= 512))
+ {
+- gcc_assert (known_eq (start_offset, 0));
+- poly_int64 fp_offset
+- = frame.below_hard_fp_saved_regs_size;
++ poly_int64 fp_offset = frame.bytes_below_hard_fp - bytes_below_sp;
+ if (hard_fp_valid_p)
+ base_rtx = hard_frame_pointer_rtx;
+ else
+@@ -9183,12 +9182,13 @@ aarch64_save_callee_saves (poly_int64 start_offset,
+ }
+
+ /* Emit code to restore the callee registers from register number START
+- up to and including LIMIT. Restore from the stack offset START_OFFSET,
+- skipping any write-back candidates if SKIP_WB is true. Write the
+- appropriate REG_CFA_RESTORE notes into CFI_OPS. */
++ up to and including LIMIT. The stack pointer is currently BYTES_BELOW_SP
++ bytes above the bottom of the static frame. Skip any write-back
++ candidates if SKIP_WB is true. Write the appropriate REG_CFA_RESTORE
++ notes into CFI_OPS. */
+
+ static void
+-aarch64_restore_callee_saves (poly_int64 start_offset, unsigned start,
++aarch64_restore_callee_saves (poly_int64 bytes_below_sp, unsigned start,
+ unsigned limit, bool skip_wb, rtx *cfi_ops)
+ {
+ aarch64_frame &frame = cfun->machine->frame;
+@@ -9214,7 +9214,9 @@ aarch64_restore_callee_saves (poly_int64 start_offset, unsigned start,
+
+ machine_mode mode = aarch64_reg_save_mode (regno);
+ reg = gen_rtx_REG (mode, regno);
+- offset = start_offset + frame.reg_offset[regno];
++ offset = (frame.reg_offset[regno]
++ + frame.bytes_below_saved_regs
++ - bytes_below_sp);
+ rtx base_rtx = stack_pointer_rtx;
+ if (mode == VNx2DImode && BYTES_BIG_ENDIAN)
+ aarch64_adjust_sve_callee_save_base (mode, base_rtx, anchor_reg,
+@@ -9990,8 +9992,6 @@ aarch64_expand_prologue (void)
+ HOST_WIDE_INT callee_adjust = frame.callee_adjust;
+ poly_int64 final_adjust = frame.final_adjust;
+ poly_int64 sve_callee_adjust = frame.sve_callee_adjust;
+- poly_int64 below_hard_fp_saved_regs_size
+- = frame.below_hard_fp_saved_regs_size;
+ unsigned reg1 = frame.wb_push_candidate1;
+ unsigned reg2 = frame.wb_push_candidate2;
+ bool emit_frame_chain = frame.emit_frame_chain;
+@@ -10067,8 +10067,8 @@ aarch64_expand_prologue (void)
+ - frame.hard_fp_offset);
+ gcc_assert (known_ge (chain_offset, 0));
+
+- /* The offset of the bottom of the save area from the current SP. */
+- poly_int64 saved_regs_offset = chain_offset - below_hard_fp_saved_regs_size;
++ /* The offset of the current SP from the bottom of the static frame. */
++ poly_int64 bytes_below_sp = frame_size - initial_adjust - callee_adjust;
+
+ if (emit_frame_chain)
+ {
+@@ -10076,7 +10076,7 @@ aarch64_expand_prologue (void)
+ {
+ reg1 = R29_REGNUM;
+ reg2 = R30_REGNUM;
+- aarch64_save_callee_saves (saved_regs_offset, reg1, reg2,
++ aarch64_save_callee_saves (bytes_below_sp, reg1, reg2,
+ false, false);
+ }
+ else
+@@ -10116,7 +10116,7 @@ aarch64_expand_prologue (void)
+ emit_insn (gen_stack_tie (stack_pointer_rtx, hard_frame_pointer_rtx));
+ }
+
+- aarch64_save_callee_saves (saved_regs_offset, R0_REGNUM, R30_REGNUM,
++ aarch64_save_callee_saves (bytes_below_sp, R0_REGNUM, R30_REGNUM,
+ callee_adjust != 0 || emit_frame_chain,
+ emit_frame_chain);
+ if (maybe_ne (sve_callee_adjust, 0))
+@@ -10126,16 +10126,17 @@ aarch64_expand_prologue (void)
+ aarch64_allocate_and_probe_stack_space (tmp1_rtx, tmp0_rtx,
+ sve_callee_adjust,
+ !frame_pointer_needed, false);
+- saved_regs_offset += sve_callee_adjust;
++ bytes_below_sp -= sve_callee_adjust;
+ }
+- aarch64_save_callee_saves (saved_regs_offset, P0_REGNUM, P15_REGNUM,
++ aarch64_save_callee_saves (bytes_below_sp, P0_REGNUM, P15_REGNUM,
+ false, emit_frame_chain);
+- aarch64_save_callee_saves (saved_regs_offset, V0_REGNUM, V31_REGNUM,
++ aarch64_save_callee_saves (bytes_below_sp, V0_REGNUM, V31_REGNUM,
+ callee_adjust != 0 || emit_frame_chain,
+ emit_frame_chain);
+
+ /* We may need to probe the final adjustment if it is larger than the guard
+ that is assumed by the called. */
++ gcc_assert (known_eq (bytes_below_sp, final_adjust));
+ aarch64_allocate_and_probe_stack_space (tmp1_rtx, tmp0_rtx, final_adjust,
+ !frame_pointer_needed, true);
+ }
+@@ -10170,7 +10171,6 @@ aarch64_expand_epilogue (bool for_sibcall)
+ poly_int64 initial_adjust = frame.initial_adjust;
+ HOST_WIDE_INT callee_adjust = frame.callee_adjust;
+ poly_int64 final_adjust = frame.final_adjust;
+- poly_int64 callee_offset = frame.callee_offset;
+ poly_int64 sve_callee_adjust = frame.sve_callee_adjust;
+ poly_int64 bytes_below_hard_fp = frame.bytes_below_hard_fp;
+ unsigned reg1 = frame.wb_pop_candidate1;
+@@ -10240,9 +10240,9 @@ aarch64_expand_epilogue (bool for_sibcall)
+
+ /* Restore the vector registers before the predicate registers,
+ so that we can use P4 as a temporary for big-endian SVE frames. */
+- aarch64_restore_callee_saves (callee_offset, V0_REGNUM, V31_REGNUM,
++ aarch64_restore_callee_saves (final_adjust, V0_REGNUM, V31_REGNUM,
+ callee_adjust != 0, &cfi_ops);
+- aarch64_restore_callee_saves (callee_offset, P0_REGNUM, P15_REGNUM,
++ aarch64_restore_callee_saves (final_adjust, P0_REGNUM, P15_REGNUM,
+ false, &cfi_ops);
+ if (maybe_ne (sve_callee_adjust, 0))
+ aarch64_add_sp (NULL_RTX, NULL_RTX, sve_callee_adjust, true);
+@@ -10250,7 +10250,7 @@ aarch64_expand_epilogue (bool for_sibcall)
+ /* When shadow call stack is enabled, the scs_pop in the epilogue will
+ restore x30, we don't need to restore x30 again in the traditional
+ way. */
+- aarch64_restore_callee_saves (callee_offset - sve_callee_adjust,
++ aarch64_restore_callee_saves (final_adjust + sve_callee_adjust,
+ R0_REGNUM, last_gpr,
+ callee_adjust != 0, &cfi_ops);
+
+diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
+index 4263d29d29d..fd820b1be4e 100644
+--- a/gcc/config/aarch64/aarch64.h
++++ b/gcc/config/aarch64/aarch64.h
+@@ -813,10 +813,6 @@ struct GTY (()) aarch64_frame
+ It is zero when no push is used. */
+ HOST_WIDE_INT callee_adjust;
+
+- /* The offset from SP to the callee-save registers after initial_adjust.
+- It may be non-zero if no push is used (ie. callee_adjust == 0). */
+- poly_int64 callee_offset;
+-
+ /* The size of the stack adjustment before saving or after restoring
+ SVE registers. */
+ poly_int64 sve_callee_adjust;
+--
+2.34.1
+
+
+From 8ae9181426f2700c2e5a2909487fa630e6fa406b Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:15 +0100
+Subject: [PATCH 07/19] aarch64: Only calculate chain_offset if there is a
+ chain
+
+After previous patches, it is no longer necessary to calculate
+a chain_offset in cases where there is no chain record.
+
+gcc/
+ * config/aarch64/aarch64.cc (aarch64_expand_prologue): Move the
+ calculation of chain_offset into the emit_frame_chain block.
+---
+ gcc/config/aarch64/aarch64.cc | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index 46ae5cf7673..0e9b9717c08 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -10062,16 +10062,16 @@ aarch64_expand_prologue (void)
+ if (callee_adjust != 0)
+ aarch64_push_regs (reg1, reg2, callee_adjust);
+
+- /* The offset of the frame chain record (if any) from the current SP. */
+- poly_int64 chain_offset = (initial_adjust + callee_adjust
+- - frame.hard_fp_offset);
+- gcc_assert (known_ge (chain_offset, 0));
+-
+ /* The offset of the current SP from the bottom of the static frame. */
+ poly_int64 bytes_below_sp = frame_size - initial_adjust - callee_adjust;
+
+ if (emit_frame_chain)
+ {
++ /* The offset of the frame chain record (if any) from the current SP. */
++ poly_int64 chain_offset = (initial_adjust + callee_adjust
++ - frame.hard_fp_offset);
++ gcc_assert (known_ge (chain_offset, 0));
++
+ if (callee_adjust == 0)
+ {
+ reg1 = R29_REGNUM;
+--
+2.34.1
+
+
+From 375794feb614cee1f41b710b9cc1b6f25da6c1cb Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:15 +0100
+Subject: [PATCH 08/19] aarch64: Rename locals_offset to bytes_above_locals
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+locals_offset was described as:
+
+ /* Offset from the base of the frame (incomming SP) to the
+ top of the locals area. This value is always a multiple of
+ STACK_BOUNDARY. */
+
+This is implicitly an “upside down” view of the frame: the incoming
+SP is at offset 0, and anything N bytes below the incoming SP is at
+offset N (rather than -N).
+
+However, reg_offset instead uses a “right way up” view; that is,
+it views offsets in address terms. Something above X is at a
+positive offset from X and something below X is at a negative
+offset from X.
+
+Also, even on FRAME_GROWS_DOWNWARD targets like AArch64,
+target-independent code views offsets in address terms too:
+locals are allocated at negative offsets to virtual_stack_vars.
+
+It seems confusing to have *_offset fields of the same structure
+using different polarities like this. This patch tries to avoid
+that by renaming locals_offset to bytes_above_locals.
+
+gcc/
+ * config/aarch64/aarch64.h (aarch64_frame::locals_offset): Rename to...
+ (aarch64_frame::bytes_above_locals): ...this.
+ * config/aarch64/aarch64.cc (aarch64_layout_frame)
+ (aarch64_initial_elimination_offset): Update accordingly.
+---
+ gcc/config/aarch64/aarch64.cc | 6 +++---
+ gcc/config/aarch64/aarch64.h | 6 +++---
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index 0e9b9717c08..0a22f91520e 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -8598,7 +8598,7 @@ aarch64_layout_frame (void)
+ STACK_BOUNDARY / BITS_PER_UNIT));
+ frame.frame_size = saved_regs_and_above + frame.bytes_below_saved_regs;
+
+- frame.locals_offset = frame.saved_varargs_size;
++ frame.bytes_above_locals = frame.saved_varargs_size;
+
+ frame.initial_adjust = 0;
+ frame.final_adjust = 0;
+@@ -12754,13 +12754,13 @@ aarch64_initial_elimination_offset (unsigned from, unsigned to)
+ return frame.hard_fp_offset;
+
+ if (from == FRAME_POINTER_REGNUM)
+- return frame.hard_fp_offset - frame.locals_offset;
++ return frame.hard_fp_offset - frame.bytes_above_locals;
+ }
+
+ if (to == STACK_POINTER_REGNUM)
+ {
+ if (from == FRAME_POINTER_REGNUM)
+- return frame.frame_size - frame.locals_offset;
++ return frame.frame_size - frame.bytes_above_locals;
+ }
+
+ return frame.frame_size;
+diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
+index fd820b1be4e..7ae12d13e2b 100644
+--- a/gcc/config/aarch64/aarch64.h
++++ b/gcc/config/aarch64/aarch64.h
+@@ -791,10 +791,10 @@ struct GTY (()) aarch64_frame
+ always a multiple of STACK_BOUNDARY. */
+ poly_int64 bytes_below_hard_fp;
+
+- /* Offset from the base of the frame (incomming SP) to the
+- top of the locals area. This value is always a multiple of
++ /* The number of bytes between the top of the locals area and the top
++ of the frame (the incomming SP). This value is always a multiple of
+ STACK_BOUNDARY. */
+- poly_int64 locals_offset;
++ poly_int64 bytes_above_locals;
+
+ /* Offset from the base of the frame (incomming SP) to the
+ hard_frame_pointer. This value is always a multiple of
+--
+2.34.1
+
+
+From 1a9ea1c45c75615ffbfabe652b3598a1d7be2168 Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:16 +0100
+Subject: [PATCH 09/19] aarch64: Rename hard_fp_offset to bytes_above_hard_fp
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Similarly to the previous locals_offset patch, hard_fp_offset
+was described as:
+
+ /* Offset from the base of the frame (incomming SP) to the
+ hard_frame_pointer. This value is always a multiple of
+ STACK_BOUNDARY. */
+ poly_int64 hard_fp_offset;
+
+which again took an “upside-down” view: higher offsets meant lower
+addresses. This patch renames the field to bytes_above_hard_fp instead.
+
+gcc/
+ * config/aarch64/aarch64.h (aarch64_frame::hard_fp_offset): Rename
+ to...
+ (aarch64_frame::bytes_above_hard_fp): ...this.
+ * config/aarch64/aarch64.cc (aarch64_layout_frame)
+ (aarch64_expand_prologue): Update accordingly.
+ (aarch64_initial_elimination_offset): Likewise.
+---
+ gcc/config/aarch64/aarch64.cc | 26 +++++++++++++-------------
+ gcc/config/aarch64/aarch64.h | 6 +++---
+ 2 files changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index 0a22f91520e..95499ae49ba 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -8590,7 +8590,7 @@ aarch64_layout_frame (void)
+ + get_frame_size (),
+ STACK_BOUNDARY / BITS_PER_UNIT);
+
+- frame.hard_fp_offset
++ frame.bytes_above_hard_fp
+ = saved_regs_and_above - frame.below_hard_fp_saved_regs_size;
+
+ /* Both these values are already aligned. */
+@@ -8639,13 +8639,13 @@ aarch64_layout_frame (void)
+ else if (frame.wb_pop_candidate1 != INVALID_REGNUM)
+ max_push_offset = 256;
+
+- HOST_WIDE_INT const_size, const_below_saved_regs, const_fp_offset;
++ HOST_WIDE_INT const_size, const_below_saved_regs, const_above_fp;
+ HOST_WIDE_INT const_saved_regs_size;
+ if (known_eq (frame.saved_regs_size, 0))
+ frame.initial_adjust = frame.frame_size;
+ else if (frame.frame_size.is_constant (&const_size)
+ && const_size < max_push_offset
+- && known_eq (frame.hard_fp_offset, const_size))
++ && known_eq (frame.bytes_above_hard_fp, const_size))
+ {
+ /* Simple, small frame with no data below the saved registers.
+
+@@ -8662,8 +8662,8 @@ aarch64_layout_frame (void)
+ case that it hardly seems worth the effort though. */
+ && (!saves_below_hard_fp_p || const_below_saved_regs == 0)
+ && !(cfun->calls_alloca
+- && frame.hard_fp_offset.is_constant (&const_fp_offset)
+- && const_fp_offset < max_push_offset))
++ && frame.bytes_above_hard_fp.is_constant (&const_above_fp)
++ && const_above_fp < max_push_offset))
+ {
+ /* Frame with small area below the saved registers:
+
+@@ -8681,12 +8681,12 @@ aarch64_layout_frame (void)
+ sub sp, sp, hard_fp_offset + below_hard_fp_saved_regs_size
+ save SVE registers relative to SP
+ sub sp, sp, bytes_below_saved_regs */
+- frame.initial_adjust = (frame.hard_fp_offset
++ frame.initial_adjust = (frame.bytes_above_hard_fp
+ + frame.below_hard_fp_saved_regs_size);
+ frame.final_adjust = frame.bytes_below_saved_regs;
+ }
+- else if (frame.hard_fp_offset.is_constant (&const_fp_offset)
+- && const_fp_offset < max_push_offset)
++ else if (frame.bytes_above_hard_fp.is_constant (&const_above_fp)
++ && const_above_fp < max_push_offset)
+ {
+ /* Frame with large area below the saved registers, or with SVE saves,
+ but with a small area above:
+@@ -8696,7 +8696,7 @@ aarch64_layout_frame (void)
+ [sub sp, sp, below_hard_fp_saved_regs_size]
+ [save SVE registers relative to SP]
+ sub sp, sp, bytes_below_saved_regs */
+- frame.callee_adjust = const_fp_offset;
++ frame.callee_adjust = const_above_fp;
+ frame.sve_callee_adjust = frame.below_hard_fp_saved_regs_size;
+ frame.final_adjust = frame.bytes_below_saved_regs;
+ }
+@@ -8711,7 +8711,7 @@ aarch64_layout_frame (void)
+ [sub sp, sp, below_hard_fp_saved_regs_size]
+ [save SVE registers relative to SP]
+ sub sp, sp, bytes_below_saved_regs */
+- frame.initial_adjust = frame.hard_fp_offset;
++ frame.initial_adjust = frame.bytes_above_hard_fp;
+ frame.sve_callee_adjust = frame.below_hard_fp_saved_regs_size;
+ frame.final_adjust = frame.bytes_below_saved_regs;
+ }
+@@ -10069,7 +10069,7 @@ aarch64_expand_prologue (void)
+ {
+ /* The offset of the frame chain record (if any) from the current SP. */
+ poly_int64 chain_offset = (initial_adjust + callee_adjust
+- - frame.hard_fp_offset);
++ - frame.bytes_above_hard_fp);
+ gcc_assert (known_ge (chain_offset, 0));
+
+ if (callee_adjust == 0)
+@@ -12751,10 +12751,10 @@ aarch64_initial_elimination_offset (unsigned from, unsigned to)
+ if (to == HARD_FRAME_POINTER_REGNUM)
+ {
+ if (from == ARG_POINTER_REGNUM)
+- return frame.hard_fp_offset;
++ return frame.bytes_above_hard_fp;
+
+ if (from == FRAME_POINTER_REGNUM)
+- return frame.hard_fp_offset - frame.bytes_above_locals;
++ return frame.bytes_above_hard_fp - frame.bytes_above_locals;
+ }
+
+ if (to == STACK_POINTER_REGNUM)
+diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
+index 7ae12d13e2b..3808f49e9ca 100644
+--- a/gcc/config/aarch64/aarch64.h
++++ b/gcc/config/aarch64/aarch64.h
+@@ -796,10 +796,10 @@ struct GTY (()) aarch64_frame
+ STACK_BOUNDARY. */
+ poly_int64 bytes_above_locals;
+
+- /* Offset from the base of the frame (incomming SP) to the
+- hard_frame_pointer. This value is always a multiple of
++ /* The number of bytes between the hard_frame_pointer and the top of
++ the frame (the incomming SP). This value is always a multiple of
+ STACK_BOUNDARY. */
+- poly_int64 hard_fp_offset;
++ poly_int64 bytes_above_hard_fp;
+
+ /* The size of the frame. This value is the offset from base of the
+ frame (incomming SP) to the stack_pointer. This value is always
+--
+2.34.1
+
+
+From d202ce1ecf60a36a3e1009917dd76109248ce9be Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:16 +0100
+Subject: [PATCH 10/19] aarch64: Tweak frame_size comment
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This patch fixes another case in which a value was described with
+an “upside-down” view.
+
+gcc/
+ * config/aarch64/aarch64.h (aarch64_frame::frame_size): Tweak comment.
+---
+ gcc/config/aarch64/aarch64.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
+index 3808f49e9ca..108a5731b0d 100644
+--- a/gcc/config/aarch64/aarch64.h
++++ b/gcc/config/aarch64/aarch64.h
+@@ -801,8 +801,8 @@ struct GTY (()) aarch64_frame
+ STACK_BOUNDARY. */
+ poly_int64 bytes_above_hard_fp;
+
+- /* The size of the frame. This value is the offset from base of the
+- frame (incomming SP) to the stack_pointer. This value is always
++ /* The size of the frame, i.e. the number of bytes between the bottom
++ of the outgoing arguments and the incoming SP. This value is always
+ a multiple of STACK_BOUNDARY. */
+ poly_int64 frame_size;
+
+--
+2.34.1
+
+
+From f2b585375205b0a1802d79c682ba33766ecd1f0f Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:17 +0100
+Subject: [PATCH 11/19] aarch64: Measure reg_offset from the bottom of the
+ frame
+
+reg_offset was measured from the bottom of the saved register area.
+This made perfect sense with the original layout, since the bottom
+of the saved register area was also the hard frame pointer address.
+It became slightly less obvious with SVE, since we save SVE
+registers below the hard frame pointer, but it still made sense.
+
+However, if we want to allow different frame layouts, it's more
+convenient and obvious to measure reg_offset from the bottom of
+the frame. After previous patches, it's also a slight simplification
+in its own right.
+
+gcc/
+ * config/aarch64/aarch64.h (aarch64_frame): Add comment above
+ reg_offset.
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Walk offsets
+ from the bottom of the frame, rather than the bottom of the saved
+ register area. Measure reg_offset from the bottom of the frame
+ rather than the bottom of the saved register area.
+ (aarch64_save_callee_saves): Update accordingly.
+ (aarch64_restore_callee_saves): Likewise.
+ (aarch64_get_separate_components): Likewise.
+ (aarch64_process_components): Likewise.
+---
+ gcc/config/aarch64/aarch64.cc | 53 ++++++++++++++++-------------------
+ gcc/config/aarch64/aarch64.h | 3 ++
+ 2 files changed, 27 insertions(+), 29 deletions(-)
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index 95499ae49ba..af99807ef8a 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -8400,7 +8400,6 @@ aarch64_needs_frame_chain (void)
+ static void
+ aarch64_layout_frame (void)
+ {
+- poly_int64 offset = 0;
+ int regno, last_fp_reg = INVALID_REGNUM;
+ machine_mode vector_save_mode = aarch64_reg_save_mode (V8_REGNUM);
+ poly_int64 vector_save_size = GET_MODE_SIZE (vector_save_mode);
+@@ -8478,7 +8477,9 @@ aarch64_layout_frame (void)
+ gcc_assert (crtl->is_leaf
+ || maybe_ne (frame.reg_offset[R30_REGNUM], SLOT_NOT_REQUIRED));
+
+- frame.bytes_below_saved_regs = crtl->outgoing_args_size;
++ poly_int64 offset = crtl->outgoing_args_size;
++ gcc_assert (multiple_p (offset, STACK_BOUNDARY / BITS_PER_UNIT));
++ frame.bytes_below_saved_regs = offset;
+
+ /* Now assign stack slots for the registers. Start with the predicate
+ registers, since predicate LDR and STR have a relatively small
+@@ -8490,7 +8491,8 @@ aarch64_layout_frame (void)
+ offset += BYTES_PER_SVE_PRED;
+ }
+
+- if (maybe_ne (offset, 0))
++ poly_int64 saved_prs_size = offset - frame.bytes_below_saved_regs;
++ if (maybe_ne (saved_prs_size, 0))
+ {
+ /* If we have any vector registers to save above the predicate registers,
+ the offset of the vector register save slots need to be a multiple
+@@ -8508,10 +8510,10 @@ aarch64_layout_frame (void)
+ offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
+ else
+ {
+- if (known_le (offset, vector_save_size))
+- offset = vector_save_size;
+- else if (known_le (offset, vector_save_size * 2))
+- offset = vector_save_size * 2;
++ if (known_le (saved_prs_size, vector_save_size))
++ offset = frame.bytes_below_saved_regs + vector_save_size;
++ else if (known_le (saved_prs_size, vector_save_size * 2))
++ offset = frame.bytes_below_saved_regs + vector_save_size * 2;
+ else
+ gcc_unreachable ();
+ }
+@@ -8528,9 +8530,10 @@ aarch64_layout_frame (void)
+
+ /* OFFSET is now the offset of the hard frame pointer from the bottom
+ of the callee save area. */
+- bool saves_below_hard_fp_p = maybe_ne (offset, 0);
+- frame.below_hard_fp_saved_regs_size = offset;
+- frame.bytes_below_hard_fp = offset + frame.bytes_below_saved_regs;
++ frame.below_hard_fp_saved_regs_size = offset - frame.bytes_below_saved_regs;
++ bool saves_below_hard_fp_p
++ = maybe_ne (frame.below_hard_fp_saved_regs_size, 0);
++ frame.bytes_below_hard_fp = offset;
+ if (frame.emit_frame_chain)
+ {
+ /* FP and LR are placed in the linkage record. */
+@@ -8581,9 +8584,10 @@ aarch64_layout_frame (void)
+
+ offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
+
+- frame.saved_regs_size = offset;
++ frame.saved_regs_size = offset - frame.bytes_below_saved_regs;
+
+- poly_int64 varargs_and_saved_regs_size = offset + frame.saved_varargs_size;
++ poly_int64 varargs_and_saved_regs_size
++ = frame.saved_regs_size + frame.saved_varargs_size;
+
+ poly_int64 saved_regs_and_above
+ = aligned_upper_bound (varargs_and_saved_regs_size
+@@ -9105,9 +9109,7 @@ aarch64_save_callee_saves (poly_int64 bytes_below_sp,
+
+ machine_mode mode = aarch64_reg_save_mode (regno);
+ reg = gen_rtx_REG (mode, regno);
+- offset = (frame.reg_offset[regno]
+- + frame.bytes_below_saved_regs
+- - bytes_below_sp);
++ offset = frame.reg_offset[regno] - bytes_below_sp;
+ rtx base_rtx = stack_pointer_rtx;
+ poly_int64 sp_offset = offset;
+
+@@ -9214,9 +9216,7 @@ aarch64_restore_callee_saves (poly_int64 bytes_below_sp, unsigned start,
+
+ machine_mode mode = aarch64_reg_save_mode (regno);
+ reg = gen_rtx_REG (mode, regno);
+- offset = (frame.reg_offset[regno]
+- + frame.bytes_below_saved_regs
+- - bytes_below_sp);
++ offset = frame.reg_offset[regno] - bytes_below_sp;
+ rtx base_rtx = stack_pointer_rtx;
+ if (mode == VNx2DImode && BYTES_BIG_ENDIAN)
+ aarch64_adjust_sve_callee_save_base (mode, base_rtx, anchor_reg,
+@@ -9355,14 +9355,12 @@ aarch64_get_separate_components (void)
+ it as a stack probe for -fstack-clash-protection. */
+ if (flag_stack_clash_protection
+ && maybe_ne (frame.below_hard_fp_saved_regs_size, 0)
+- && known_eq (offset, 0))
++ && known_eq (offset, frame.bytes_below_saved_regs))
+ continue;
+
+ /* Get the offset relative to the register we'll use. */
+ if (frame_pointer_needed)
+- offset -= frame.below_hard_fp_saved_regs_size;
+- else
+- offset += frame.bytes_below_saved_regs;
++ offset -= frame.bytes_below_hard_fp;
+
+ /* Check that we can access the stack slot of the register with one
+ direct load with no adjustments needed. */
+@@ -9509,9 +9507,7 @@ aarch64_process_components (sbitmap components, bool prologue_p)
+ rtx reg = gen_rtx_REG (mode, regno);
+ poly_int64 offset = frame.reg_offset[regno];
+ if (frame_pointer_needed)
+- offset -= frame.below_hard_fp_saved_regs_size;
+- else
+- offset += frame.bytes_below_saved_regs;
++ offset -= frame.bytes_below_hard_fp;
+
+ rtx addr = plus_constant (Pmode, ptr_reg, offset);
+ rtx mem = gen_frame_mem (mode, addr);
+@@ -9563,9 +9559,7 @@ aarch64_process_components (sbitmap components, bool prologue_p)
+ /* REGNO2 can be saved/restored in a pair with REGNO. */
+ rtx reg2 = gen_rtx_REG (mode, regno2);
+ if (frame_pointer_needed)
+- offset2 -= frame.below_hard_fp_saved_regs_size;
+- else
+- offset2 += frame.bytes_below_saved_regs;
++ offset2 -= frame.bytes_below_hard_fp;
+ rtx addr2 = plus_constant (Pmode, ptr_reg, offset2);
+ rtx mem2 = gen_frame_mem (mode, addr2);
+ rtx set2 = prologue_p ? gen_rtx_SET (mem2, reg2)
+@@ -9681,7 +9675,8 @@ aarch64_allocate_and_probe_stack_space (rtx temp1, rtx temp2,
+ if (final_adjustment_p
+ && known_eq (frame.below_hard_fp_saved_regs_size, 0))
+ {
+- poly_int64 lr_offset = frame.reg_offset[LR_REGNUM];
++ poly_int64 lr_offset = (frame.reg_offset[LR_REGNUM]
++ - frame.bytes_below_saved_regs);
+ if (known_ge (lr_offset, 0))
+ min_probe_threshold -= lr_offset.to_constant ();
+ else
+diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
+index 108a5731b0d..c8becb098c8 100644
+--- a/gcc/config/aarch64/aarch64.h
++++ b/gcc/config/aarch64/aarch64.h
+@@ -766,6 +766,9 @@ extern enum aarch64_processor aarch64_tune;
+ #ifdef HAVE_POLY_INT_H
+ struct GTY (()) aarch64_frame
+ {
++ /* The offset from the bottom of the static frame (the bottom of the
++ outgoing arguments) of each register save slot, or -2 if no save is
++ needed. */
+ poly_int64 reg_offset[LAST_SAVED_REGNUM + 1];
+
+ /* The number of extra stack bytes taken up by register varargs.
+--
+2.34.1
+
+
+From 79faabda181d0d9fd29a3cf5726ba65bdee945b5 Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:17 +0100
+Subject: [PATCH 12/19] aarch64: Simplify top of frame allocation
+
+After previous patches, it no longer really makes sense to allocate
+the top of the frame in terms of varargs_and_saved_regs_size and
+saved_regs_and_above.
+
+gcc/
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Simplify
+ the allocation of the top of the frame.
+---
+ gcc/config/aarch64/aarch64.cc | 23 ++++++++---------------
+ 1 file changed, 8 insertions(+), 15 deletions(-)
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index af99807ef8a..31b00094c2a 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -8586,23 +8586,16 @@ aarch64_layout_frame (void)
+
+ frame.saved_regs_size = offset - frame.bytes_below_saved_regs;
+
+- poly_int64 varargs_and_saved_regs_size
+- = frame.saved_regs_size + frame.saved_varargs_size;
+-
+- poly_int64 saved_regs_and_above
+- = aligned_upper_bound (varargs_and_saved_regs_size
+- + get_frame_size (),
+- STACK_BOUNDARY / BITS_PER_UNIT);
+-
+- frame.bytes_above_hard_fp
+- = saved_regs_and_above - frame.below_hard_fp_saved_regs_size;
++ offset += get_frame_size ();
++ offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
++ auto top_of_locals = offset;
+
+- /* Both these values are already aligned. */
+- gcc_assert (multiple_p (frame.bytes_below_saved_regs,
+- STACK_BOUNDARY / BITS_PER_UNIT));
+- frame.frame_size = saved_regs_and_above + frame.bytes_below_saved_regs;
++ offset += frame.saved_varargs_size;
++ gcc_assert (multiple_p (offset, STACK_BOUNDARY / BITS_PER_UNIT));
++ frame.frame_size = offset;
+
+- frame.bytes_above_locals = frame.saved_varargs_size;
++ frame.bytes_above_hard_fp = frame.frame_size - frame.bytes_below_hard_fp;
++ frame.bytes_above_locals = frame.frame_size - top_of_locals;
+
+ frame.initial_adjust = 0;
+ frame.final_adjust = 0;
+--
+2.34.1
+
+
+From 4e62049e403b141e6f916176160dac8cbd65fe47 Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:18 +0100
+Subject: [PATCH 13/19] aarch64: Minor initial adjustment tweak
+
+This patch just changes a calculation of initial_adjust
+to one that makes it slightly more obvious that the total
+adjustment is frame.frame_size.
+
+gcc/
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Tweak
+ calculation of initial_adjust for frames in which all saves
+ are SVE saves.
+---
+ gcc/config/aarch64/aarch64.cc | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index 31b00094c2a..1aa79da0673 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -8675,11 +8675,10 @@ aarch64_layout_frame (void)
+ {
+ /* Frame in which all saves are SVE saves:
+
+- sub sp, sp, hard_fp_offset + below_hard_fp_saved_regs_size
++ sub sp, sp, frame_size - bytes_below_saved_regs
+ save SVE registers relative to SP
+ sub sp, sp, bytes_below_saved_regs */
+- frame.initial_adjust = (frame.bytes_above_hard_fp
+- + frame.below_hard_fp_saved_regs_size);
++ frame.initial_adjust = frame.frame_size - frame.bytes_below_saved_regs;
+ frame.final_adjust = frame.bytes_below_saved_regs;
+ }
+ else if (frame.bytes_above_hard_fp.is_constant (&const_above_fp)
+--
+2.34.1
+
+
+From aaa1a0a5912d9e5d571e5f1c6f09ceac99544ab5 Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:18 +0100
+Subject: [PATCH 14/19] aarch64: Tweak stack clash boundary condition
+
+The AArch64 ABI says that, when stack clash protection is used,
+there can be a maximum of 1KiB of unprobed space at sp on entry
+to a function. Therefore, we need to probe when allocating
+>= guard_size - 1KiB of data (>= rather than >). This is what
+GCC does.
+
+If an allocation is exactly guard_size bytes, it is enough to allocate
+those bytes and probe once at offset 1024. It isn't possible to use a
+single probe at any other offset: higher would conmplicate later code,
+by leaving more unprobed space than usual, while lower would risk
+leaving an entire page unprobed. For simplicity, the code probes all
+allocations at offset 1024.
+
+Some register saves also act as probes. If we need to allocate
+more space below the last such register save probe, we need to
+probe the allocation if it is > 1KiB. Again, this allocation is
+then sometimes (but not always) probed at offset 1024. This sort of
+allocation is currently only used for outgoing arguments, which are
+rarely this big.
+
+However, the code also probed if this final outgoing-arguments
+allocation was == 1KiB, rather than just > 1KiB. This isn't
+necessary, since the register save then probes at offset 1024
+as required. Continuing to probe allocations of exactly 1KiB
+would complicate later patches.
+
+gcc/
+ * config/aarch64/aarch64.cc (aarch64_allocate_and_probe_stack_space):
+ Don't probe final allocations that are exactly 1KiB in size (after
+ unprobed space above the final allocation has been deducted).
+
+gcc/testsuite/
+ * gcc.target/aarch64/stack-check-prologue-17.c: New test.
+---
+ gcc/config/aarch64/aarch64.cc | 4 +-
+ .../aarch64/stack-check-prologue-17.c | 55 +++++++++++++++++++
+ 2 files changed, 58 insertions(+), 1 deletion(-)
+ create mode 100644 gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index 1aa79da0673..5cad847977a 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -9648,9 +9648,11 @@ aarch64_allocate_and_probe_stack_space (rtx temp1, rtx temp2,
+ HOST_WIDE_INT guard_size
+ = 1 << param_stack_clash_protection_guard_size;
+ HOST_WIDE_INT guard_used_by_caller = STACK_CLASH_CALLER_GUARD;
++ HOST_WIDE_INT byte_sp_alignment = STACK_BOUNDARY / BITS_PER_UNIT;
++ gcc_assert (multiple_p (poly_size, byte_sp_alignment));
+ HOST_WIDE_INT min_probe_threshold
+ = (final_adjustment_p
+- ? guard_used_by_caller
++ ? guard_used_by_caller + byte_sp_alignment
+ : guard_size - guard_used_by_caller);
+ /* When doing the final adjustment for the outgoing arguments, take into
+ account any unprobed space there is above the current SP. There are
+diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c
+new file mode 100644
+index 00000000000..0d8a25d73a2
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c
+@@ -0,0 +1,55 @@
++/* { dg-options "-O2 -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12" } */
++/* { dg-final { check-function-bodies "**" "" } } */
++
++void f(int, ...);
++void g();
++
++/*
++** test1:
++** ...
++** str x30, \[sp\]
++** sub sp, sp, #1024
++** cbnz w0, .*
++** bl g
++** ...
++*/
++int test1(int z) {
++ __uint128_t x = 0;
++ int y[0x400];
++ if (z)
++ {
++ f(0, 0, 0, 0, 0, 0, 0, &y,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x);
++ }
++ g();
++ return 1;
++}
++
++/*
++** test2:
++** ...
++** str x30, \[sp\]
++** sub sp, sp, #1040
++** str xzr, \[sp\]
++** cbnz w0, .*
++** bl g
++** ...
++*/
++int test2(int z) {
++ __uint128_t x = 0;
++ int y[0x400];
++ if (z)
++ {
++ f(0, 0, 0, 0, 0, 0, 0, &y,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x);
++ }
++ g();
++ return 1;
++}
+--
+2.34.1
+
+
+From 8433953434a7b58c0923140d39eb3c5988c1d097 Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:19 +0100
+Subject: [PATCH 15/19] aarch64: Put LR save probe in first 16 bytes
+
+-fstack-clash-protection uses the save of LR as a probe for the next
+allocation. The next allocation could be:
+
+* another part of the static frame, e.g. when allocating SVE save slots
+ or outgoing arguments
+
+* an alloca in the same function
+
+* an allocation made by a callee function
+
+However, when -fomit-frame-pointer is used, the LR save slot is placed
+above the other GPR save slots. It could therefore be up to 80 bytes
+above the base of the GPR save area (which is also the hard fp address).
+
+aarch64_allocate_and_probe_stack_space took this into account when
+deciding how much subsequent space could be allocated without needing
+a probe. However, it interacted badly with:
+
+ /* If doing a small final adjustment, we always probe at offset 0.
+ This is done to avoid issues when LR is not at position 0 or when
+ the final adjustment is smaller than the probing offset. */
+ else if (final_adjustment_p && rounded_size == 0)
+ residual_probe_offset = 0;
+
+which forces any allocation that is smaller than the guard page size
+to be probed at offset 0 rather than the usual offset 1024. It was
+therefore possible to construct cases in which we had:
+
+* a probe using LR at SP + 80 bytes (or some other value >= 16)
+* an allocation of the guard page size - 16 bytes
+* a probe at SP + 0
+
+which allocates guard page size + 64 consecutive unprobed bytes.
+
+This patch requires the LR probe to be in the first 16 bytes of the
+save area when stack clash protection is active. Doing it
+unconditionally would cause code-quality regressions.
+
+Putting LR before other registers prevents push/pop allocation
+when shadow call stacks are enabled, since LR is restored
+separately from the other callee-saved registers.
+
+The new comment doesn't say that the probe register is required
+to be LR, since a later patch removes that restriction.
+
+gcc/
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Ensure that
+ the LR save slot is in the first 16 bytes of the register save area.
+ Only form STP/LDP push/pop candidates if both registers are valid.
+ (aarch64_allocate_and_probe_stack_space): Remove workaround for
+ when LR was not in the first 16 bytes.
+
+gcc/testsuite/
+ * gcc.target/aarch64/stack-check-prologue-18.c: New test.
+ * gcc.target/aarch64/stack-check-prologue-19.c: Likewise.
+ * gcc.target/aarch64/stack-check-prologue-20.c: Likewise.
+---
+ gcc/config/aarch64/aarch64.cc | 72 ++++++-------
+ .../aarch64/stack-check-prologue-18.c | 100 ++++++++++++++++++
+ .../aarch64/stack-check-prologue-19.c | 100 ++++++++++++++++++
+ .../aarch64/stack-check-prologue-20.c | 3 +
+ 4 files changed, 233 insertions(+), 42 deletions(-)
+ create mode 100644 gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c
+ create mode 100644 gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c
+ create mode 100644 gcc/testsuite/gcc.target/aarch64/stack-check-prologue-20.c
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index 5cad847977a..a765f92329d 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -8534,26 +8534,34 @@ aarch64_layout_frame (void)
+ bool saves_below_hard_fp_p
+ = maybe_ne (frame.below_hard_fp_saved_regs_size, 0);
+ frame.bytes_below_hard_fp = offset;
++
++ auto allocate_gpr_slot = [&](unsigned int regno)
++ {
++ frame.reg_offset[regno] = offset;
++ if (frame.wb_push_candidate1 == INVALID_REGNUM)
++ frame.wb_push_candidate1 = regno;
++ else if (frame.wb_push_candidate2 == INVALID_REGNUM)
++ frame.wb_push_candidate2 = regno;
++ offset += UNITS_PER_WORD;
++ };
++
+ if (frame.emit_frame_chain)
+ {
+ /* FP and LR are placed in the linkage record. */
+- frame.reg_offset[R29_REGNUM] = offset;
+- frame.wb_push_candidate1 = R29_REGNUM;
+- frame.reg_offset[R30_REGNUM] = offset + UNITS_PER_WORD;
+- frame.wb_push_candidate2 = R30_REGNUM;
+- offset += 2 * UNITS_PER_WORD;
++ allocate_gpr_slot (R29_REGNUM);
++ allocate_gpr_slot (R30_REGNUM);
+ }
++ else if (flag_stack_clash_protection
++ && known_eq (frame.reg_offset[R30_REGNUM], SLOT_REQUIRED))
++ /* Put the LR save slot first, since it makes a good choice of probe
++ for stack clash purposes. The idea is that the link register usually
++ has to be saved before a call anyway, and so we lose little by
++ stopping it from being individually shrink-wrapped. */
++ allocate_gpr_slot (R30_REGNUM);
+
+ for (regno = R0_REGNUM; regno <= R30_REGNUM; regno++)
+ if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED))
+- {
+- frame.reg_offset[regno] = offset;
+- if (frame.wb_push_candidate1 == INVALID_REGNUM)
+- frame.wb_push_candidate1 = regno;
+- else if (frame.wb_push_candidate2 == INVALID_REGNUM)
+- frame.wb_push_candidate2 = regno;
+- offset += UNITS_PER_WORD;
+- }
++ allocate_gpr_slot (regno);
+
+ poly_int64 max_int_offset = offset;
+ offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
+@@ -8631,10 +8639,13 @@ aarch64_layout_frame (void)
+ max_push_offset to 0, because no registers are popped at this time,
+ so callee_adjust cannot be adjusted. */
+ HOST_WIDE_INT max_push_offset = 0;
+- if (frame.wb_pop_candidate2 != INVALID_REGNUM)
+- max_push_offset = 512;
+- else if (frame.wb_pop_candidate1 != INVALID_REGNUM)
+- max_push_offset = 256;
++ if (frame.wb_pop_candidate1 != INVALID_REGNUM)
++ {
++ if (frame.wb_pop_candidate2 != INVALID_REGNUM)
++ max_push_offset = 512;
++ else
++ max_push_offset = 256;
++ }
+
+ HOST_WIDE_INT const_size, const_below_saved_regs, const_above_fp;
+ HOST_WIDE_INT const_saved_regs_size;
+@@ -9654,29 +9665,6 @@ aarch64_allocate_and_probe_stack_space (rtx temp1, rtx temp2,
+ = (final_adjustment_p
+ ? guard_used_by_caller + byte_sp_alignment
+ : guard_size - guard_used_by_caller);
+- /* When doing the final adjustment for the outgoing arguments, take into
+- account any unprobed space there is above the current SP. There are
+- two cases:
+-
+- - When saving SVE registers below the hard frame pointer, we force
+- the lowest save to take place in the prologue before doing the final
+- adjustment (i.e. we don't allow the save to be shrink-wrapped).
+- This acts as a probe at SP, so there is no unprobed space.
+-
+- - When there are no SVE register saves, we use the store of the link
+- register as a probe. We can't assume that LR was saved at position 0
+- though, so treat any space below it as unprobed. */
+- if (final_adjustment_p
+- && known_eq (frame.below_hard_fp_saved_regs_size, 0))
+- {
+- poly_int64 lr_offset = (frame.reg_offset[LR_REGNUM]
+- - frame.bytes_below_saved_regs);
+- if (known_ge (lr_offset, 0))
+- min_probe_threshold -= lr_offset.to_constant ();
+- else
+- gcc_assert (!flag_stack_clash_protection || known_eq (poly_size, 0));
+- }
+-
+ poly_int64 frame_size = frame.frame_size;
+
+ /* We should always have a positive probe threshold. */
+@@ -9856,8 +9844,8 @@ aarch64_allocate_and_probe_stack_space (rtx temp1, rtx temp2,
+ if (final_adjustment_p && rounded_size != 0)
+ min_probe_threshold = 0;
+ /* If doing a small final adjustment, we always probe at offset 0.
+- This is done to avoid issues when LR is not at position 0 or when
+- the final adjustment is smaller than the probing offset. */
++ This is done to avoid issues when the final adjustment is smaller
++ than the probing offset. */
+ else if (final_adjustment_p && rounded_size == 0)
+ residual_probe_offset = 0;
+
+diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c
+new file mode 100644
+index 00000000000..82447d20fff
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c
+@@ -0,0 +1,100 @@
++/* { dg-options "-O2 -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12" } */
++/* { dg-final { check-function-bodies "**" "" } } */
++
++void f(int, ...);
++void g();
++
++/*
++** test1:
++** ...
++** str x30, \[sp\]
++** sub sp, sp, #4064
++** str xzr, \[sp\]
++** cbnz w0, .*
++** bl g
++** ...
++** str x26, \[sp, #?4128\]
++** ...
++*/
++int test1(int z) {
++ __uint128_t x = 0;
++ int y[0x400];
++ if (z)
++ {
++ asm volatile ("" :::
++ "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26");
++ f(0, 0, 0, 0, 0, 0, 0, &y,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x);
++ }
++ g();
++ return 1;
++}
++
++/*
++** test2:
++** ...
++** str x30, \[sp\]
++** sub sp, sp, #1040
++** str xzr, \[sp\]
++** cbnz w0, .*
++** bl g
++** ...
++*/
++int test2(int z) {
++ __uint128_t x = 0;
++ int y[0x400];
++ if (z)
++ {
++ asm volatile ("" :::
++ "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26");
++ f(0, 0, 0, 0, 0, 0, 0, &y,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x);
++ }
++ g();
++ return 1;
++}
++
++/*
++** test3:
++** ...
++** str x30, \[sp\]
++** sub sp, sp, #1024
++** cbnz w0, .*
++** bl g
++** ...
++*/
++int test3(int z) {
++ __uint128_t x = 0;
++ int y[0x400];
++ if (z)
++ {
++ asm volatile ("" :::
++ "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26");
++ f(0, 0, 0, 0, 0, 0, 0, &y,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x);
++ }
++ g();
++ return 1;
++}
+diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c
+new file mode 100644
+index 00000000000..73ac3e4e4eb
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c
+@@ -0,0 +1,100 @@
++/* { dg-options "-O2 -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12 -fsanitize=shadow-call-stack -ffixed-x18" } */
++/* { dg-final { check-function-bodies "**" "" } } */
++
++void f(int, ...);
++void g();
++
++/*
++** test1:
++** ...
++** str x30, \[sp\]
++** sub sp, sp, #4064
++** str xzr, \[sp\]
++** cbnz w0, .*
++** bl g
++** ...
++** str x26, \[sp, #?4128\]
++** ...
++*/
++int test1(int z) {
++ __uint128_t x = 0;
++ int y[0x400];
++ if (z)
++ {
++ asm volatile ("" :::
++ "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26");
++ f(0, 0, 0, 0, 0, 0, 0, &y,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x);
++ }
++ g();
++ return 1;
++}
++
++/*
++** test2:
++** ...
++** str x30, \[sp\]
++** sub sp, sp, #1040
++** str xzr, \[sp\]
++** cbnz w0, .*
++** bl g
++** ...
++*/
++int test2(int z) {
++ __uint128_t x = 0;
++ int y[0x400];
++ if (z)
++ {
++ asm volatile ("" :::
++ "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26");
++ f(0, 0, 0, 0, 0, 0, 0, &y,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x);
++ }
++ g();
++ return 1;
++}
++
++/*
++** test3:
++** ...
++** str x30, \[sp\]
++** sub sp, sp, #1024
++** cbnz w0, .*
++** bl g
++** ...
++*/
++int test3(int z) {
++ __uint128_t x = 0;
++ int y[0x400];
++ if (z)
++ {
++ asm volatile ("" :::
++ "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26");
++ f(0, 0, 0, 0, 0, 0, 0, &y,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
++ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x);
++ }
++ g();
++ return 1;
++}
+diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-20.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-20.c
+new file mode 100644
+index 00000000000..690aae8dfd5
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-20.c
+@@ -0,0 +1,3 @@
++/* { dg-options "-O2 -fstack-protector-all -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12 -fsanitize=shadow-call-stack -ffixed-x18" } */
++
++#include "stack-check-prologue-19.c"
+--
+2.34.1
+
+
+From eea1759073e09dd1aefbc9a881601ab1eebfdd18 Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:19 +0100
+Subject: [PATCH 16/19] aarch64: Simplify probe of final frame allocation
+
+Previous patches ensured that the final frame allocation only needs
+a probe when the size is strictly greater than 1KiB. It's therefore
+safe to use the normal 1024 probe offset in all cases.
+
+The main motivation for doing this is to simplify the code and
+remove the number of special cases.
+
+gcc/
+ * config/aarch64/aarch64.cc (aarch64_allocate_and_probe_stack_space):
+ Always probe the residual allocation at offset 1024, asserting
+ that that is in range.
+
+gcc/testsuite/
+ * gcc.target/aarch64/stack-check-prologue-17.c: Expect the probe
+ to be at offset 1024 rather than offset 0.
+ * gcc.target/aarch64/stack-check-prologue-18.c: Likewise.
+ * gcc.target/aarch64/stack-check-prologue-19.c: Likewise.
+---
+ gcc/config/aarch64/aarch64.cc | 12 ++++--------
+ .../gcc.target/aarch64/stack-check-prologue-17.c | 2 +-
+ .../gcc.target/aarch64/stack-check-prologue-18.c | 4 ++--
+ .../gcc.target/aarch64/stack-check-prologue-19.c | 4 ++--
+ 4 files changed, 9 insertions(+), 13 deletions(-)
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index a765f92329d..37809a306f7 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -9838,16 +9838,12 @@ aarch64_allocate_and_probe_stack_space (rtx temp1, rtx temp2,
+ are still safe. */
+ if (residual)
+ {
+- HOST_WIDE_INT residual_probe_offset = guard_used_by_caller;
++ gcc_assert (guard_used_by_caller + byte_sp_alignment <= size);
++
+ /* If we're doing final adjustments, and we've done any full page
+ allocations then any residual needs to be probed. */
+ if (final_adjustment_p && rounded_size != 0)
+ min_probe_threshold = 0;
+- /* If doing a small final adjustment, we always probe at offset 0.
+- This is done to avoid issues when the final adjustment is smaller
+- than the probing offset. */
+- else if (final_adjustment_p && rounded_size == 0)
+- residual_probe_offset = 0;
+
+ aarch64_sub_sp (temp1, temp2, residual, frame_related_p);
+ if (residual >= min_probe_threshold)
+@@ -9858,8 +9854,8 @@ aarch64_allocate_and_probe_stack_space (rtx temp1, rtx temp2,
+ HOST_WIDE_INT_PRINT_DEC " bytes, probing will be required."
+ "\n", residual);
+
+- emit_stack_probe (plus_constant (Pmode, stack_pointer_rtx,
+- residual_probe_offset));
++ emit_stack_probe (plus_constant (Pmode, stack_pointer_rtx,
++ guard_used_by_caller));
+ emit_insn (gen_blockage ());
+ }
+ }
+diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c
+index 0d8a25d73a2..f0ec1389771 100644
+--- a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c
++++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c
+@@ -33,7 +33,7 @@ int test1(int z) {
+ ** ...
+ ** str x30, \[sp\]
+ ** sub sp, sp, #1040
+-** str xzr, \[sp\]
++** str xzr, \[sp, #?1024\]
+ ** cbnz w0, .*
+ ** bl g
+ ** ...
+diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c
+index 82447d20fff..6383bec5ebc 100644
+--- a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c
++++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c
+@@ -9,7 +9,7 @@ void g();
+ ** ...
+ ** str x30, \[sp\]
+ ** sub sp, sp, #4064
+-** str xzr, \[sp\]
++** str xzr, \[sp, #?1024\]
+ ** cbnz w0, .*
+ ** bl g
+ ** ...
+@@ -50,7 +50,7 @@ int test1(int z) {
+ ** ...
+ ** str x30, \[sp\]
+ ** sub sp, sp, #1040
+-** str xzr, \[sp\]
++** str xzr, \[sp, #?1024\]
+ ** cbnz w0, .*
+ ** bl g
+ ** ...
+diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c
+index 73ac3e4e4eb..562039b5e9b 100644
+--- a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c
++++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c
+@@ -9,7 +9,7 @@ void g();
+ ** ...
+ ** str x30, \[sp\]
+ ** sub sp, sp, #4064
+-** str xzr, \[sp\]
++** str xzr, \[sp, #?1024\]
+ ** cbnz w0, .*
+ ** bl g
+ ** ...
+@@ -50,7 +50,7 @@ int test1(int z) {
+ ** ...
+ ** str x30, \[sp\]
+ ** sub sp, sp, #1040
+-** str xzr, \[sp\]
++** str xzr, \[sp, #?1024\]
+ ** cbnz w0, .*
+ ** bl g
+ ** ...
+--
+2.34.1
+
+
+From 96d85187c3b9c9a7efc2fd698c3d452e80d8aa47 Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:20 +0100
+Subject: [PATCH 17/19] aarch64: Explicitly record probe registers in frame
+ info
+
+The stack frame is currently divided into three areas:
+
+A: the area above the hard frame pointer
+B: the SVE saves below the hard frame pointer
+C: the outgoing arguments
+
+If the stack frame is allocated in one chunk, the allocation needs a
+probe if the frame size is >= guard_size - 1KiB. In addition, if the
+function is not a leaf function, it must probe an address no more than
+1KiB above the outgoing SP. We ensured the second condition by
+
+(1) using single-chunk allocations for non-leaf functions only if
+ the link register save slot is within 512 bytes of the bottom
+ of the frame; and
+
+(2) using the link register save as a probe (meaning, for instance,
+ that it can't be individually shrink wrapped)
+
+If instead the stack is allocated in multiple chunks, then:
+
+* an allocation involving only the outgoing arguments (C above) requires
+ a probe if the allocation size is > 1KiB
+
+* any other allocation requires a probe if the allocation size
+ is >= guard_size - 1KiB
+
+* second and subsequent allocations require the previous allocation
+ to probe at the bottom of the allocated area, regardless of the size
+ of that previous allocation
+
+The final point means that, unlike for single allocations,
+it can be necessary to have both a non-SVE register probe and
+an SVE register probe. For example:
+
+* allocate A, probe using a non-SVE register save
+* allocate B, probe using an SVE register save
+* allocate C
+
+The non-SVE register used in this case was again the link register.
+It was previously used even if the link register save slot was some
+bytes above the bottom of the non-SVE register saves, but an earlier
+patch avoided that by putting the link register save slot first.
+
+As a belt-and-braces fix, this patch explicitly records which
+probe registers we're using and allows the non-SVE probe to be
+whichever register comes first (as for SVE).
+
+The patch also avoids unnecessary probes in sve/pcs/stack_clash_3.c.
+
+gcc/
+ * config/aarch64/aarch64.h (aarch64_frame::sve_save_and_probe)
+ (aarch64_frame::hard_fp_save_and_probe): New fields.
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Initialize them.
+ Rather than asserting that a leaf function saves LR, instead assert
+ that a leaf function saves something.
+ (aarch64_get_separate_components): Prevent the chosen probe
+ registers from being individually shrink-wrapped.
+ (aarch64_allocate_and_probe_stack_space): Remove workaround for
+ probe registers that aren't at the bottom of the previous allocation.
+
+gcc/testsuite/
+ * gcc.target/aarch64/sve/pcs/stack_clash_3.c: Avoid redundant probes.
+---
+ gcc/config/aarch64/aarch64.cc | 68 +++++++++++++++----
+ gcc/config/aarch64/aarch64.h | 8 +++
+ .../aarch64/sve/pcs/stack_clash_3.c | 6 +-
+ 3 files changed, 64 insertions(+), 18 deletions(-)
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index 37809a306f7..6c59c39a639 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -8471,15 +8471,11 @@ aarch64_layout_frame (void)
+ && !crtl->abi->clobbers_full_reg_p (regno))
+ frame.reg_offset[regno] = SLOT_REQUIRED;
+
+- /* With stack-clash, LR must be saved in non-leaf functions. The saving of
+- LR counts as an implicit probe which allows us to maintain the invariant
+- described in the comment at expand_prologue. */
+- gcc_assert (crtl->is_leaf
+- || maybe_ne (frame.reg_offset[R30_REGNUM], SLOT_NOT_REQUIRED));
+
+ poly_int64 offset = crtl->outgoing_args_size;
+ gcc_assert (multiple_p (offset, STACK_BOUNDARY / BITS_PER_UNIT));
+ frame.bytes_below_saved_regs = offset;
++ frame.sve_save_and_probe = INVALID_REGNUM;
+
+ /* Now assign stack slots for the registers. Start with the predicate
+ registers, since predicate LDR and STR have a relatively small
+@@ -8487,6 +8483,8 @@ aarch64_layout_frame (void)
+ for (regno = P0_REGNUM; regno <= P15_REGNUM; regno++)
+ if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED))
+ {
++ if (frame.sve_save_and_probe == INVALID_REGNUM)
++ frame.sve_save_and_probe = regno;
+ frame.reg_offset[regno] = offset;
+ offset += BYTES_PER_SVE_PRED;
+ }
+@@ -8524,6 +8522,8 @@ aarch64_layout_frame (void)
+ for (regno = V0_REGNUM; regno <= V31_REGNUM; regno++)
+ if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED))
+ {
++ if (frame.sve_save_and_probe == INVALID_REGNUM)
++ frame.sve_save_and_probe = regno;
+ frame.reg_offset[regno] = offset;
+ offset += vector_save_size;
+ }
+@@ -8533,10 +8533,18 @@ aarch64_layout_frame (void)
+ frame.below_hard_fp_saved_regs_size = offset - frame.bytes_below_saved_regs;
+ bool saves_below_hard_fp_p
+ = maybe_ne (frame.below_hard_fp_saved_regs_size, 0);
++ gcc_assert (!saves_below_hard_fp_p
++ || (frame.sve_save_and_probe != INVALID_REGNUM
++ && known_eq (frame.reg_offset[frame.sve_save_and_probe],
++ frame.bytes_below_saved_regs)));
++
+ frame.bytes_below_hard_fp = offset;
++ frame.hard_fp_save_and_probe = INVALID_REGNUM;
+
+ auto allocate_gpr_slot = [&](unsigned int regno)
+ {
++ if (frame.hard_fp_save_and_probe == INVALID_REGNUM)
++ frame.hard_fp_save_and_probe = regno;
+ frame.reg_offset[regno] = offset;
+ if (frame.wb_push_candidate1 == INVALID_REGNUM)
+ frame.wb_push_candidate1 = regno;
+@@ -8570,6 +8578,8 @@ aarch64_layout_frame (void)
+ for (regno = V0_REGNUM; regno <= V31_REGNUM; regno++)
+ if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED))
+ {
++ if (frame.hard_fp_save_and_probe == INVALID_REGNUM)
++ frame.hard_fp_save_and_probe = regno;
+ /* If there is an alignment gap between integer and fp callee-saves,
+ allocate the last fp register to it if possible. */
+ if (regno == last_fp_reg
+@@ -8593,6 +8603,17 @@ aarch64_layout_frame (void)
+ offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
+
+ frame.saved_regs_size = offset - frame.bytes_below_saved_regs;
++ gcc_assert (known_eq (frame.saved_regs_size,
++ frame.below_hard_fp_saved_regs_size)
++ || (frame.hard_fp_save_and_probe != INVALID_REGNUM
++ && known_eq (frame.reg_offset[frame.hard_fp_save_and_probe],
++ frame.bytes_below_hard_fp)));
++
++ /* With stack-clash, a register must be saved in non-leaf functions.
++ The saving of the bottommost register counts as an implicit probe,
++ which allows us to maintain the invariant described in the comment
++ at expand_prologue. */
++ gcc_assert (crtl->is_leaf || maybe_ne (frame.saved_regs_size, 0));
+
+ offset += get_frame_size ();
+ offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
+@@ -8723,6 +8744,25 @@ aarch64_layout_frame (void)
+ frame.final_adjust = frame.bytes_below_saved_regs;
+ }
+
++ /* The frame is allocated in pieces, with each non-final piece
++ including a register save at offset 0 that acts as a probe for
++ the following piece. In addition, the save of the bottommost register
++ acts as a probe for callees and allocas. Roll back any probes that
++ aren't needed.
++
++ A probe isn't needed if it is associated with the final allocation
++ (including callees and allocas) that happens before the epilogue is
++ executed. */
++ if (crtl->is_leaf
++ && !cfun->calls_alloca
++ && known_eq (frame.final_adjust, 0))
++ {
++ if (maybe_ne (frame.sve_callee_adjust, 0))
++ frame.sve_save_and_probe = INVALID_REGNUM;
++ else
++ frame.hard_fp_save_and_probe = INVALID_REGNUM;
++ }
++
+ /* Make sure the individual adjustments add up to the full frame size. */
+ gcc_assert (known_eq (frame.initial_adjust
+ + frame.callee_adjust
+@@ -9354,13 +9394,6 @@ aarch64_get_separate_components (void)
+
+ poly_int64 offset = frame.reg_offset[regno];
+
+- /* If the register is saved in the first SVE save slot, we use
+- it as a stack probe for -fstack-clash-protection. */
+- if (flag_stack_clash_protection
+- && maybe_ne (frame.below_hard_fp_saved_regs_size, 0)
+- && known_eq (offset, frame.bytes_below_saved_regs))
+- continue;
+-
+ /* Get the offset relative to the register we'll use. */
+ if (frame_pointer_needed)
+ offset -= frame.bytes_below_hard_fp;
+@@ -9395,6 +9428,13 @@ aarch64_get_separate_components (void)
+
+ bitmap_clear_bit (components, LR_REGNUM);
+ bitmap_clear_bit (components, SP_REGNUM);
++ if (flag_stack_clash_protection)
++ {
++ if (frame.sve_save_and_probe != INVALID_REGNUM)
++ bitmap_clear_bit (components, frame.sve_save_and_probe);
++ if (frame.hard_fp_save_and_probe != INVALID_REGNUM)
++ bitmap_clear_bit (components, frame.hard_fp_save_and_probe);
++ }
+
+ return components;
+ }
+@@ -9931,8 +9971,8 @@ aarch64_epilogue_uses (int regno)
+ When probing is needed, we emit a probe at the start of the prologue
+ and every PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE bytes thereafter.
+
+- We have to track how much space has been allocated and the only stores
+- to the stack we track as implicit probes are the FP/LR stores.
++ We can also use register saves as probes. These are stored in
++ sve_save_and_probe and hard_fp_save_and_probe.
+
+ For outgoing arguments we probe if the size is larger than 1KB, such that
+ the ABI specified buffer is maintained for the next callee.
+diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
+index c8becb098c8..fbfb73545ba 100644
+--- a/gcc/config/aarch64/aarch64.h
++++ b/gcc/config/aarch64/aarch64.h
+@@ -863,6 +863,14 @@ struct GTY (()) aarch64_frame
+ This is the register they should use. */
+ unsigned spare_pred_reg;
+
++ /* An SVE register that is saved below the hard frame pointer and that acts
++ as a probe for later allocations, or INVALID_REGNUM if none. */
++ unsigned sve_save_and_probe;
++
++ /* A register that is saved at the hard frame pointer and that acts
++ as a probe for later allocations, or INVALID_REGNUM if none. */
++ unsigned hard_fp_save_and_probe;
++
+ bool laid_out;
+
+ /* True if shadow call stack should be enabled for the current function. */
+diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_3.c b/gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_3.c
+index 3e01ec36c3a..3530a0d504b 100644
+--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_3.c
++++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_3.c
+@@ -11,11 +11,10 @@
+ ** mov x11, sp
+ ** ...
+ ** sub sp, sp, x13
+-** str p4, \[sp\]
+ ** cbz w0, [^\n]*
++** str p4, \[sp\]
+ ** ...
+ ** ptrue p0\.b, all
+-** ldr p4, \[sp\]
+ ** addvl sp, sp, #1
+ ** ldr x24, \[sp\], 32
+ ** ret
+@@ -39,13 +38,12 @@ test_1 (int n)
+ ** mov x11, sp
+ ** ...
+ ** sub sp, sp, x13
+-** str p4, \[sp\]
+ ** cbz w0, [^\n]*
++** str p4, \[sp\]
+ ** str p5, \[sp, #1, mul vl\]
+ ** str p6, \[sp, #2, mul vl\]
+ ** ...
+ ** ptrue p0\.b, all
+-** ldr p4, \[sp\]
+ ** addvl sp, sp, #1
+ ** ldr x24, \[sp\], 32
+ ** ret
+--
+2.34.1
+
+
+From 56df065080950bb30dda9c260f71be54269bdda5 Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:20 +0100
+Subject: [PATCH 18/19] aarch64: Remove below_hard_fp_saved_regs_size
+
+After previous patches, it's no longer necessary to store
+saved_regs_size and below_hard_fp_saved_regs_size in the frame info.
+All measurements instead use the top or bottom of the frame as
+reference points.
+
+gcc/
+ * config/aarch64/aarch64.h (aarch64_frame::saved_regs_size)
+ (aarch64_frame::below_hard_fp_saved_regs_size): Delete.
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Update accordingly.
+---
+ gcc/config/aarch64/aarch64.cc | 45 ++++++++++++++++-------------------
+ gcc/config/aarch64/aarch64.h | 7 ------
+ 2 files changed, 21 insertions(+), 31 deletions(-)
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index 6c59c39a639..b95e805a8cc 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -8530,9 +8530,8 @@ aarch64_layout_frame (void)
+
+ /* OFFSET is now the offset of the hard frame pointer from the bottom
+ of the callee save area. */
+- frame.below_hard_fp_saved_regs_size = offset - frame.bytes_below_saved_regs;
+- bool saves_below_hard_fp_p
+- = maybe_ne (frame.below_hard_fp_saved_regs_size, 0);
++ auto below_hard_fp_saved_regs_size = offset - frame.bytes_below_saved_regs;
++ bool saves_below_hard_fp_p = maybe_ne (below_hard_fp_saved_regs_size, 0);
+ gcc_assert (!saves_below_hard_fp_p
+ || (frame.sve_save_and_probe != INVALID_REGNUM
+ && known_eq (frame.reg_offset[frame.sve_save_and_probe],
+@@ -8602,9 +8601,8 @@ aarch64_layout_frame (void)
+
+ offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
+
+- frame.saved_regs_size = offset - frame.bytes_below_saved_regs;
+- gcc_assert (known_eq (frame.saved_regs_size,
+- frame.below_hard_fp_saved_regs_size)
++ auto saved_regs_size = offset - frame.bytes_below_saved_regs;
++ gcc_assert (known_eq (saved_regs_size, below_hard_fp_saved_regs_size)
+ || (frame.hard_fp_save_and_probe != INVALID_REGNUM
+ && known_eq (frame.reg_offset[frame.hard_fp_save_and_probe],
+ frame.bytes_below_hard_fp)));
+@@ -8613,7 +8611,7 @@ aarch64_layout_frame (void)
+ The saving of the bottommost register counts as an implicit probe,
+ which allows us to maintain the invariant described in the comment
+ at expand_prologue. */
+- gcc_assert (crtl->is_leaf || maybe_ne (frame.saved_regs_size, 0));
++ gcc_assert (crtl->is_leaf || maybe_ne (saved_regs_size, 0));
+
+ offset += get_frame_size ();
+ offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
+@@ -8670,7 +8668,7 @@ aarch64_layout_frame (void)
+
+ HOST_WIDE_INT const_size, const_below_saved_regs, const_above_fp;
+ HOST_WIDE_INT const_saved_regs_size;
+- if (known_eq (frame.saved_regs_size, 0))
++ if (known_eq (saved_regs_size, 0))
+ frame.initial_adjust = frame.frame_size;
+ else if (frame.frame_size.is_constant (&const_size)
+ && const_size < max_push_offset
+@@ -8683,7 +8681,7 @@ aarch64_layout_frame (void)
+ frame.callee_adjust = const_size;
+ }
+ else if (frame.bytes_below_saved_regs.is_constant (&const_below_saved_regs)
+- && frame.saved_regs_size.is_constant (&const_saved_regs_size)
++ && saved_regs_size.is_constant (&const_saved_regs_size)
+ && const_below_saved_regs + const_saved_regs_size < 512
+ /* We could handle this case even with data below the saved
+ registers, provided that that data left us with valid offsets
+@@ -8702,8 +8700,7 @@ aarch64_layout_frame (void)
+ frame.initial_adjust = frame.frame_size;
+ }
+ else if (saves_below_hard_fp_p
+- && known_eq (frame.saved_regs_size,
+- frame.below_hard_fp_saved_regs_size))
++ && known_eq (saved_regs_size, below_hard_fp_saved_regs_size))
+ {
+ /* Frame in which all saves are SVE saves:
+
+@@ -8725,7 +8722,7 @@ aarch64_layout_frame (void)
+ [save SVE registers relative to SP]
+ sub sp, sp, bytes_below_saved_regs */
+ frame.callee_adjust = const_above_fp;
+- frame.sve_callee_adjust = frame.below_hard_fp_saved_regs_size;
++ frame.sve_callee_adjust = below_hard_fp_saved_regs_size;
+ frame.final_adjust = frame.bytes_below_saved_regs;
+ }
+ else
+@@ -8740,7 +8737,7 @@ aarch64_layout_frame (void)
+ [save SVE registers relative to SP]
+ sub sp, sp, bytes_below_saved_regs */
+ frame.initial_adjust = frame.bytes_above_hard_fp;
+- frame.sve_callee_adjust = frame.below_hard_fp_saved_regs_size;
++ frame.sve_callee_adjust = below_hard_fp_saved_regs_size;
+ frame.final_adjust = frame.bytes_below_saved_regs;
+ }
+
+@@ -9936,17 +9933,17 @@ aarch64_epilogue_uses (int regno)
+ | local variables | <-- frame_pointer_rtx
+ | |
+ +-------------------------------+
+- | padding | \
+- +-------------------------------+ |
+- | callee-saved registers | | frame.saved_regs_size
+- +-------------------------------+ |
+- | LR' | |
+- +-------------------------------+ |
+- | FP' | |
+- +-------------------------------+ |<- hard_frame_pointer_rtx (aligned)
+- | SVE vector registers | | \
+- +-------------------------------+ | | below_hard_fp_saved_regs_size
+- | SVE predicate registers | / /
++ | padding |
++ +-------------------------------+
++ | callee-saved registers |
++ +-------------------------------+
++ | LR' |
++ +-------------------------------+
++ | FP' |
++ +-------------------------------+ <-- hard_frame_pointer_rtx (aligned)
++ | SVE vector registers |
++ +-------------------------------+
++ | SVE predicate registers |
+ +-------------------------------+
+ | dynamic allocation |
+ +-------------------------------+
+diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
+index fbfb73545ba..cfeaf4657ab 100644
+--- a/gcc/config/aarch64/aarch64.h
++++ b/gcc/config/aarch64/aarch64.h
+@@ -777,18 +777,11 @@ struct GTY (()) aarch64_frame
+ STACK_BOUNDARY. */
+ HOST_WIDE_INT saved_varargs_size;
+
+- /* The size of the callee-save registers with a slot in REG_OFFSET. */
+- poly_int64 saved_regs_size;
+-
+ /* The number of bytes between the bottom of the static frame (the bottom
+ of the outgoing arguments) and the bottom of the register save area.
+ This value is always a multiple of STACK_BOUNDARY. */
+ poly_int64 bytes_below_saved_regs;
+
+- /* The size of the callee-save registers with a slot in REG_OFFSET that
+- are saved below the hard frame pointer. */
+- poly_int64 below_hard_fp_saved_regs_size;
+-
+ /* The number of bytes between the bottom of the static frame (the bottom
+ of the outgoing arguments) and the hard frame pointer. This value is
+ always a multiple of STACK_BOUNDARY. */
+--
+2.34.1
+
+
+From b96e66fd4ef3e36983969fb8cdd1956f551a074b Mon Sep 17 00:00:00 2001
+From: Richard Sandiford <richard.sandiford@arm.com>
+Date: Tue, 12 Sep 2023 16:07:21 +0100
+Subject: [PATCH 19/19] aarch64: Make stack smash canary protect saved
+ registers
+
+AArch64 normally puts the saved registers near the bottom of the frame,
+immediately above any dynamic allocations. But this means that a
+stack-smash attack on those dynamic allocations could overwrite the
+saved registers without needing to reach as far as the stack smash
+canary.
+
+The same thing could also happen for variable-sized arguments that are
+passed by value, since those are allocated before a call and popped on
+return.
+
+This patch avoids that by putting the locals (and thus the canary) below
+the saved registers when stack smash protection is active.
+
+The patch fixes CVE-2023-4039.
+
+gcc/
+ * config/aarch64/aarch64.cc (aarch64_save_regs_above_locals_p):
+ New function.
+ (aarch64_layout_frame): Use it to decide whether locals should
+ go above or below the saved registers.
+ (aarch64_expand_prologue): Update stack layout comment.
+ Emit a stack tie after the final adjustment.
+
+gcc/testsuite/
+ * gcc.target/aarch64/stack-protector-8.c: New test.
+ * gcc.target/aarch64/stack-protector-9.c: Likewise.
+---
+ gcc/config/aarch64/aarch64.cc | 46 +++++++--
+ .../gcc.target/aarch64/stack-protector-8.c | 95 +++++++++++++++++++
+ .../gcc.target/aarch64/stack-protector-9.c | 33 +++++++
+ 3 files changed, 168 insertions(+), 6 deletions(-)
+ create mode 100644 gcc/testsuite/gcc.target/aarch64/stack-protector-8.c
+ create mode 100644 gcc/testsuite/gcc.target/aarch64/stack-protector-9.c
+
+diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
+index b95e805a8cc..389c0e29353 100644
+--- a/gcc/config/aarch64/aarch64.cc
++++ b/gcc/config/aarch64/aarch64.cc
+@@ -8394,6 +8394,20 @@ aarch64_needs_frame_chain (void)
+ return aarch64_use_frame_pointer;
+ }
+
++/* Return true if the current function should save registers above
++ the locals area, rather than below it. */
++
++static bool
++aarch64_save_regs_above_locals_p ()
++{
++ /* When using stack smash protection, make sure that the canary slot
++ comes between the locals and the saved registers. Otherwise,
++ it would be possible for a carefully sized smash attack to change
++ the saved registers (particularly LR and FP) without reaching the
++ canary. */
++ return crtl->stack_protect_guard;
++}
++
+ /* Mark the registers that need to be saved by the callee and calculate
+ the size of the callee-saved registers area and frame record (both FP
+ and LR may be omitted). */
+@@ -8405,6 +8419,7 @@ aarch64_layout_frame (void)
+ poly_int64 vector_save_size = GET_MODE_SIZE (vector_save_mode);
+ bool frame_related_fp_reg_p = false;
+ aarch64_frame &frame = cfun->machine->frame;
++ poly_int64 top_of_locals = -1;
+
+ frame.emit_frame_chain = aarch64_needs_frame_chain ();
+
+@@ -8471,9 +8486,16 @@ aarch64_layout_frame (void)
+ && !crtl->abi->clobbers_full_reg_p (regno))
+ frame.reg_offset[regno] = SLOT_REQUIRED;
+
++ bool regs_at_top_p = aarch64_save_regs_above_locals_p ();
+
+ poly_int64 offset = crtl->outgoing_args_size;
+ gcc_assert (multiple_p (offset, STACK_BOUNDARY / BITS_PER_UNIT));
++ if (regs_at_top_p)
++ {
++ offset += get_frame_size ();
++ offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
++ top_of_locals = offset;
++ }
+ frame.bytes_below_saved_regs = offset;
+ frame.sve_save_and_probe = INVALID_REGNUM;
+
+@@ -8613,15 +8635,18 @@ aarch64_layout_frame (void)
+ at expand_prologue. */
+ gcc_assert (crtl->is_leaf || maybe_ne (saved_regs_size, 0));
+
+- offset += get_frame_size ();
+- offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
+- auto top_of_locals = offset;
+-
++ if (!regs_at_top_p)
++ {
++ offset += get_frame_size ();
++ offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
++ top_of_locals = offset;
++ }
+ offset += frame.saved_varargs_size;
+ gcc_assert (multiple_p (offset, STACK_BOUNDARY / BITS_PER_UNIT));
+ frame.frame_size = offset;
+
+ frame.bytes_above_hard_fp = frame.frame_size - frame.bytes_below_hard_fp;
++ gcc_assert (known_ge (top_of_locals, 0));
+ frame.bytes_above_locals = frame.frame_size - top_of_locals;
+
+ frame.initial_adjust = 0;
+@@ -9930,10 +9955,10 @@ aarch64_epilogue_uses (int regno)
+ | for register varargs |
+ | |
+ +-------------------------------+
+- | local variables | <-- frame_pointer_rtx
++ | local variables (1) | <-- frame_pointer_rtx
+ | |
+ +-------------------------------+
+- | padding |
++ | padding (1) |
+ +-------------------------------+
+ | callee-saved registers |
+ +-------------------------------+
+@@ -9945,6 +9970,10 @@ aarch64_epilogue_uses (int regno)
+ +-------------------------------+
+ | SVE predicate registers |
+ +-------------------------------+
++ | local variables (2) |
++ +-------------------------------+
++ | padding (2) |
++ +-------------------------------+
+ | dynamic allocation |
+ +-------------------------------+
+ | padding |
+@@ -9954,6 +9983,9 @@ aarch64_epilogue_uses (int regno)
+ +-------------------------------+
+ | | <-- stack_pointer_rtx (aligned)
+
++ The regions marked (1) and (2) are mutually exclusive. (2) is used
++ when aarch64_save_regs_above_locals_p is true.
++
+ Dynamic stack allocations via alloca() decrease stack_pointer_rtx
+ but leave frame_pointer_rtx and hard_frame_pointer_rtx
+ unchanged.
+@@ -10149,6 +10181,8 @@ aarch64_expand_prologue (void)
+ gcc_assert (known_eq (bytes_below_sp, final_adjust));
+ aarch64_allocate_and_probe_stack_space (tmp1_rtx, tmp0_rtx, final_adjust,
+ !frame_pointer_needed, true);
++ if (emit_frame_chain && maybe_ne (final_adjust, 0))
++ emit_insn (gen_stack_tie (stack_pointer_rtx, hard_frame_pointer_rtx));
+ }
+
+ /* Return TRUE if we can use a simple_return insn.
+diff --git a/gcc/testsuite/gcc.target/aarch64/stack-protector-8.c b/gcc/testsuite/gcc.target/aarch64/stack-protector-8.c
+new file mode 100644
+index 00000000000..e71d820e365
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/aarch64/stack-protector-8.c
+@@ -0,0 +1,95 @@
++/* { dg-options " -O -fstack-protector-strong -mstack-protector-guard=sysreg -mstack-protector-guard-reg=tpidr2_el0 -mstack-protector-guard-offset=16" } */
++/* { dg-final { check-function-bodies "**" "" } } */
++
++void g(void *);
++__SVBool_t *h(void *);
++
++/*
++** test1:
++** sub sp, sp, #288
++** stp x29, x30, \[sp, #?272\]
++** add x29, sp, #?272
++** mrs (x[0-9]+), tpidr2_el0
++** ldr (x[0-9]+), \[\1, #?16\]
++** str \2, \[sp, #?264\]
++** mov \2, #?0
++** add x0, sp, #?8
++** bl g
++** ...
++** mrs .*
++** ...
++** bne .*
++** ...
++** ldp x29, x30, \[sp, #?272\]
++** add sp, sp, #?288
++** ret
++** bl __stack_chk_fail
++*/
++int test1() {
++ int y[0x40];
++ g(y);
++ return 1;
++}
++
++/*
++** test2:
++** stp x29, x30, \[sp, #?-16\]!
++** mov x29, sp
++** sub sp, sp, #1040
++** mrs (x[0-9]+), tpidr2_el0
++** ldr (x[0-9]+), \[\1, #?16\]
++** str \2, \[sp, #?1032\]
++** mov \2, #?0
++** add x0, sp, #?8
++** bl g
++** ...
++** mrs .*
++** ...
++** bne .*
++** ...
++** add sp, sp, #?1040
++** ldp x29, x30, \[sp\], #?16
++** ret
++** bl __stack_chk_fail
++*/
++int test2() {
++ int y[0x100];
++ g(y);
++ return 1;
++}
++
++#pragma GCC target "+sve"
++
++/*
++** test3:
++** stp x29, x30, \[sp, #?-16\]!
++** mov x29, sp
++** addvl sp, sp, #-18
++** ...
++** str p4, \[sp\]
++** ...
++** sub sp, sp, #272
++** mrs (x[0-9]+), tpidr2_el0
++** ldr (x[0-9]+), \[\1, #?16\]
++** str \2, \[sp, #?264\]
++** mov \2, #?0
++** add x0, sp, #?8
++** bl h
++** ...
++** mrs .*
++** ...
++** bne .*
++** ...
++** add sp, sp, #?272
++** ...
++** ldr p4, \[sp\]
++** ...
++** addvl sp, sp, #18
++** ldp x29, x30, \[sp\], #?16
++** ret
++** bl __stack_chk_fail
++*/
++__SVBool_t test3() {
++ int y[0x40];
++ return *h(y);
++}
+diff --git a/gcc/testsuite/gcc.target/aarch64/stack-protector-9.c b/gcc/testsuite/gcc.target/aarch64/stack-protector-9.c
+new file mode 100644
+index 00000000000..58f322aa480
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/aarch64/stack-protector-9.c
+@@ -0,0 +1,33 @@
++/* { dg-options "-O2 -mcpu=neoverse-v1 -fstack-protector-all" } */
++/* { dg-final { check-function-bodies "**" "" } } */
++
++/*
++** main:
++** ...
++** stp x29, x30, \[sp, #?-[0-9]+\]!
++** ...
++** sub sp, sp, #[0-9]+
++** ...
++** str x[0-9]+, \[x29, #?-8\]
++** ...
++*/
++int f(const char *);
++void g(void *);
++int main(int argc, char* argv[])
++{
++ int a;
++ int b;
++ char c[2+f(argv[1])];
++ int d[0x100];
++ char y;
++
++ y=42; a=4; b=10;
++ c[0] = 'h'; c[1] = '\0';
++
++ c[f(argv[2])] = '\0';
++
++ __builtin_printf("%d %d\n%s\n", a, b, c);
++ g(d);
++
++ return 0;
++}
+--
+2.34.1
+
diff --git a/poky/meta/recipes-devtools/gdb/gdb-common.inc b/poky/meta/recipes-devtools/gdb/gdb-common.inc
index 12292f03c4..3349719a6b 100644
--- a/poky/meta/recipes-devtools/gdb/gdb-common.inc
+++ b/poky/meta/recipes-devtools/gdb/gdb-common.inc
@@ -35,8 +35,7 @@ PACKAGECONFIG ??= "readline ${@bb.utils.filter('DISTRO_FEATURES', 'debuginfod',
PACKAGECONFIG[readline] = "--with-system-readline,--without-system-readline,readline"
PACKAGECONFIG[python] = "--with-python=${WORKDIR}/python,--without-python,python3,python3-codecs"
PACKAGECONFIG[babeltrace] = "--with-babeltrace,--without-babeltrace,babeltrace"
-# ncurses is already a hard DEPENDS, but would be added here if it weren't
-PACKAGECONFIG[tui] = "--enable-tui,--disable-tui"
+PACKAGECONFIG[tui] = "--enable-tui,--disable-tui,,ncurses-terminfo-base"
PACKAGECONFIG[xz] = "--with-lzma --with-liblzma-prefix=${STAGING_DIR_HOST},--without-lzma,xz"
PACKAGECONFIG[debuginfod] = "--with-debuginfod, --without-debuginfod, elfutils"
diff --git a/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb b/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb
index b716b0245b..1826c7a40e 100644
--- a/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb
+++ b/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb
@@ -7,7 +7,6 @@ SECTION = "base"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://icecc-create-env;beginline=2;endline=5;md5=ae1df3d6a058bfda40b66094c5f6065f"
-PR = "r2"
DEPENDS = ""
INHIBIT_DEFAULT_DEPS = "1"
diff --git a/poky/meta/recipes-devtools/jquery/jquery_3.7.0.bb b/poky/meta/recipes-devtools/jquery/jquery_3.7.1.bb
index eceed9c9dd..33147b493c 100644
--- a/poky/meta/recipes-devtools/jquery/jquery_3.7.0.bb
+++ b/poky/meta/recipes-devtools/jquery/jquery_3.7.1.bb
@@ -13,9 +13,9 @@ SRC_URI = "\
https://code.jquery.com/${BP}.min.map;name=map;subdir=${BP} \
"
-SRC_URI[js.sha256sum] = "265a924c42de4784cba8fd0e1bd77133bc833ea5f5a31fc77e08922c18fcfa43"
-SRC_URI[min.sha256sum] = "d8f9afbf492e4c139e9d2bcb9ba6ef7c14921eb509fb703bc7a3f911b774eff8"
-SRC_URI[map.sha256sum] = "cae47e834ee977975a48c851b165cc52ea916cc968ba7d280b1293f573cd1a48"
+SRC_URI[js.sha256sum] = "78a85aca2f0b110c29e0d2b137e09f0a1fb7a8e554b499f740d6744dc8962cfe"
+SRC_URI[min.sha256sum] = "fc9a93dd241f6b045cbff0481cf4e1901becd0e12fb45166a8f17f95823f0b1a"
+SRC_URI[map.sha256sum] = "5e7d6d9c28b7f21006535e8875eb47e9667852a14c4624eed301c6cea19ae62b"
UPSTREAM_CHECK_REGEX = "jquery-(?P<pver>\d+(\.\d+)+)\.js"
diff --git a/poky/meta/recipes-devtools/json-c/json-c/0001-Fix-build-with-clang-15.patch b/poky/meta/recipes-devtools/json-c/json-c/0001-Fix-build-with-clang-15.patch
deleted file mode 100644
index 215f4d829a..0000000000
--- a/poky/meta/recipes-devtools/json-c/json-c/0001-Fix-build-with-clang-15.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 0145b575ac1fe6a77e00d639864f26fc91ceb12f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 13 Aug 2022 20:37:03 -0700
-Subject: [PATCH] Fix build with clang-15+
-
-Fixes
-json_util.c:63:35: error: a function declaration without a prototype is deprecated in all versions of C [-We
-rror,-Wstrict-prototypes]
-const char *json_util_get_last_err()
- ^
- void
-
-Upstream-Status: Backport [https://github.com/json-c/json-c/pull/783]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- json_util.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/json_util.c b/json_util.c
-index 952770a..83d9c68 100644
---- a/json_util.c
-+++ b/json_util.c
-@@ -60,7 +60,7 @@ static int _json_object_to_fd(int fd, struct json_object *obj, int flags, const
-
- static char _last_err[256] = "";
-
--const char *json_util_get_last_err()
-+const char *json_util_get_last_err(void)
- {
- if (_last_err[0] == '\0')
- return NULL;
---
-2.37.2
-
diff --git a/poky/meta/recipes-devtools/json-c/json-c/run-ptest b/poky/meta/recipes-devtools/json-c/json-c/run-ptest
index 9ee6095ea2..2d0e94cd3a 100644
--- a/poky/meta/recipes-devtools/json-c/json-c/run-ptest
+++ b/poky/meta/recipes-devtools/json-c/json-c/run-ptest
@@ -8,7 +8,7 @@ for i in test*.test; do
# test_basic is not an own testcase, just
# contains common code of other tests
if [ "$i" != "test_basic.test" ]; then
- if ./$i > json-c_test.log 2>&1 ; then
+ if ./$i >> json-c_test.log 2>&1 ; then
echo PASS: $i
else
ret_val=1
diff --git a/poky/meta/recipes-devtools/json-c/json-c_0.16.bb b/poky/meta/recipes-devtools/json-c/json-c_0.17.bb
index 3aba41dfcf..f4b7a32cea 100644
--- a/poky/meta/recipes-devtools/json-c/json-c_0.16.bb
+++ b/poky/meta/recipes-devtools/json-c/json-c_0.17.bb
@@ -4,12 +4,13 @@ HOMEPAGE = "https://github.com/json-c/json-c/wiki"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=de54b60fbbc35123ba193fea8ee216f2"
-SRC_URI = " \
- https://s3.amazonaws.com/json-c_releases/releases/${BP}.tar.gz \
- file://0001-Fix-build-with-clang-15.patch \
- file://run-ptest \
-"
-SRC_URI[sha256sum] = "8e45ac8f96ec7791eaf3bb7ee50e9c2100bbbc87b8d0f1d030c5ba8a0288d96b"
+SRC_URI = "https://s3.amazonaws.com/json-c_releases/releases/${BP}.tar.gz \
+ file://run-ptest \
+ "
+SRC_URI[sha256sum] = "7550914d58fb63b2c3546f3ccfbe11f1c094147bd31a69dcd23714d7956159e6"
+
+# NVD uses full tag name including date
+CVE_VERSION = "0.17-20230812"
UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/tags"
UPSTREAM_CHECK_REGEX = "json-c-(?P<pver>\d+(\.\d+)+)-\d+"
@@ -24,7 +25,7 @@ do_install_ptest() {
install ${S}/tests/*.test ${D}/${PTEST_PATH}/tests
install ${S}/tests/*.expected ${D}/${PTEST_PATH}/tests
install ${S}/tests/test-defs.sh ${D}/${PTEST_PATH}/tests
- install ${S}/tests/valid*json ${D}/${PTEST_PATH}/tests
+ install ${S}/tests/*json ${D}/${PTEST_PATH}/tests
}
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch b/poky/meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch
index c7b2af89d1..08d0859953 100644
--- a/poky/meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch
+++ b/poky/meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch
@@ -1,4 +1,4 @@
-From 9294cd19e5e3121fb8d37b44ee82dd7c4b3ab2c7 Mon Sep 17 00:00:00 2001
+From b87ae6860ea44996b677ad1c4a9793720b77c67c Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Tue, 7 Feb 2017 12:16:03 +0200
Subject: [PATCH] Get parameters for both libsolv and libsolvext (libdnf is
@@ -13,15 +13,15 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b722d4fb..ce88b9e3 100644
+index e99b28d0..548a9137 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -52,7 +52,7 @@ endif()
+@@ -51,7 +51,7 @@ endif()
+
# build dependencies
- find_package(Gpgme REQUIRED)
-PKG_CHECK_MODULES (LIBSOLV REQUIRED libsolv)
+PKG_CHECK_MODULES (LIBSOLV REQUIRED libsolv libsolvext)
set(LIBSOLV_LIBRARY ${LIBSOLV_LIBRARIES})
-
+
diff --git a/poky/meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch b/poky/meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch
index 643a5f37b6..32f2bb6ad0 100644
--- a/poky/meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch
+++ b/poky/meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch
@@ -1,4 +1,4 @@
-From fbb181d25ad85778add7ed45b6aaf114e02d0f79 Mon Sep 17 00:00:00 2001
+From 0b8eceb9161711003cd25ab400cadde7c1601733 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Fri, 30 Dec 2016 18:24:50 +0200
Subject: [PATCH] Set libsolv variables with pkg-config (cmake's own module
@@ -13,13 +13,13 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 405dc4e8..53837448 100644
+index 6444c374..e99b28d0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -52,7 +52,8 @@ endif()
+@@ -51,7 +51,8 @@ endif()
+
# build dependencies
- find_package(Gpgme REQUIRED)
-find_package(LibSolv 0.7.21 REQUIRED COMPONENTS ext)
+PKG_CHECK_MODULES (LIBSOLV REQUIRED libsolv)
+set(LIBSOLV_LIBRARY ${LIBSOLV_LIBRARIES})
diff --git a/poky/meta/recipes-devtools/libdnf/libdnf/enable_test_data_dir_set.patch b/poky/meta/recipes-devtools/libdnf/libdnf/enable_test_data_dir_set.patch
index e3784cc9e4..8b1a597200 100644
--- a/poky/meta/recipes-devtools/libdnf/libdnf/enable_test_data_dir_set.patch
+++ b/poky/meta/recipes-devtools/libdnf/libdnf/enable_test_data_dir_set.patch
@@ -1,4 +1,7 @@
-libdnf: allow reproducible binary builds
+From dc83a79053597546b2b42fcf578f3a7727b13f3b Mon Sep 17 00:00:00 2001
+From: Joe Slater <joe.slater@windriver.com>
+Date: Wed, 22 Jul 2020 13:31:11 -0700
+Subject: [PATCH] libdnf: allow reproducible binary builds
Use a dummy directory for test data if not built WITH_TESTS. Allow for overriding
TESTDATADIR, since the default is guaranteed to be wrong for target builds.
@@ -7,11 +10,16 @@ Upstream-Status: Pending
Signed-off-by: Joe Slater <joe.slater@windriver.com>
+---
+ CMakeLists.txt | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 548a9137..c378e7d9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -133,7 +133,12 @@ add_definitions(-DG_LOG_DOMAIN=\\"libdnf
- add_definitions(-D_FILE_OFFSET_BITS=64)
+@@ -132,7 +132,12 @@ add_definitions(-DGETTEXT_DOMAIN=\\"libdnf\\")
+ add_definitions(-DG_LOG_DOMAIN=\\"libdnf\\")
# tests
-add_definitions(-DTESTDATADIR=\\"${CMAKE_SOURCE_DIR}/data/tests\\")
diff --git a/poky/meta/recipes-devtools/libdnf/libdnf_0.70.1.bb b/poky/meta/recipes-devtools/libdnf/libdnf_0.71.0.bb
index c44ae2729b..396a6664bc 100644
--- a/poky/meta/recipes-devtools/libdnf/libdnf_0.70.1.bb
+++ b/poky/meta/recipes-devtools/libdnf/libdnf_0.71.0.bb
@@ -12,7 +12,7 @@ SRC_URI = "git://github.com/rpm-software-management/libdnf;branch=dnf-4-master;p
file://0001-drop-FindPythonInstDir.cmake.patch \
"
-SRCREV = "3b8e59ad8ed3a3eb736d8a2e16b4fc04313d1f12"
+SRCREV = "39098f39806becdc87cf93e03a49ae89a33e7ede"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(?!4\.90)\d+(\.\d+)+)"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch b/poky/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
index b01b8647c9..add38b3bb4 100644
--- a/poky/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
+++ b/poky/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
@@ -1,27 +1,26 @@
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-From 61b00e1e051e367f5483d7b5253b6c85a9e8a90f Mon Sep 17 00:00:00 2001
+From 588a8694c6540e31140c7e242bfb5e279d6ca08c Mon Sep 17 00:00:00 2001
From: Martin Kelly <mkelly@xevo.com>
Date: Fri, 19 May 2017 00:22:57 -0700
-Subject: [PATCH] llvm: allow env override of exe path
+Subject: [PATCH] llvm: allow env override of exe and libdir path
When using a native llvm-config from inside a sysroot, we need llvm-config to
return the libraries, include directories, etc. from inside the sysroot rather
than from the native sysroot. Thus provide an env override for calling
llvm-config from a target sysroot.
+Upstream-Status: Inappropriate [OE-specific]
+
Signed-off-by: Martin Kelly <mkelly@xevo.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- llvm/tools/llvm-config/llvm-config.cpp | 7 +++++++
- 1 file changed, 7 insertions(+)
+ llvm/tools/llvm-config/llvm-config.cpp | 25 +++++++++++++++++++------
+ 1 file changed, 19 insertions(+), 6 deletions(-)
diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp
-index 7ef7c46a262..a4f7ed82c7b 100644
+index e86eb2b44b10..7b2abf318dbe 100644
--- a/llvm/tools/llvm-config/llvm-config.cpp
+++ b/llvm/tools/llvm-config/llvm-config.cpp
-@@ -225,6 +225,13 @@ Typical components:\n\
+@@ -246,6 +246,13 @@ Typical components:\n\
/// Compute the path to the main executable.
std::string GetExecutablePath(const char *Argv0) {
@@ -35,3 +34,4 @@ index 7ef7c46a262..a4f7ed82c7b 100644
// This just needs to be some symbol in the binary; C++ doesn't
// allow taking the address of ::main however.
void *P = (void *)(intptr_t)GetExecutablePath;
+
diff --git a/poky/meta/recipes-devtools/llvm/llvm_git.bb b/poky/meta/recipes-devtools/llvm/llvm_git.bb
index f3d6f24bd2..934f842b90 100644
--- a/poky/meta/recipes-devtools/llvm/llvm_git.bb
+++ b/poky/meta/recipes-devtools/llvm/llvm_git.bb
@@ -14,14 +14,14 @@ RDEPENDS:${PN}:append:class-target = " ncurses-terminfo"
inherit cmake pkgconfig
-PV = "16.0.6"
+PV = "17.0.2"
MAJOR_VERSION = "${@oe.utils.trim_version("${PV}", 1)}"
LLVM_RELEASE = "${PV}"
BRANCH = "release/${MAJOR_VERSION}.x"
-SRCREV = "7cbf1a2591520c2491aa35339f227775f4d3adf6"
+SRCREV = "481358974fb0f732e33d503c224492a543f4d7bd"
SRC_URI = "git://github.com/llvm/llvm-project.git;branch=${BRANCH};protocol=https \
file://0007-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \
file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch;striplevel=2 \
diff --git a/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch b/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
index 848dccfbe7..8fbcb5a0a2 100644
--- a/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
+++ b/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
@@ -1,4 +1,4 @@
-From 6c4eef1d92e9e42fdbc888365cab3c95fb33c605 Mon Sep 17 00:00:00 2001
+From fcd3260c03f313676720e6219c5953d412fb0a2c Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Tue, 3 Jul 2018 13:59:09 +0100
Subject: [PATCH] Make CPU family warnings fatal
@@ -7,15 +7,15 @@ Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Ross Burton <ross.burton@intel.com>
---
- mesonbuild/envconfig.py | 2 +-
- mesonbuild/environment.py | 4 +---
- 2 files changed, 2 insertions(+), 4 deletions(-)
+ mesonbuild/envconfig.py | 4 ++--
+ mesonbuild/environment.py | 6 ++----
+ 2 files changed, 4 insertions(+), 6 deletions(-)
-Index: meson-0.60.2/mesonbuild/envconfig.py
-===================================================================
---- meson-0.60.2.orig/mesonbuild/envconfig.py
-+++ meson-0.60.2/mesonbuild/envconfig.py
-@@ -266,8 +266,8 @@ class MachineInfo(HoldableObject):
+diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
+index 7e0c567..a180065 100644
+--- a/mesonbuild/envconfig.py
++++ b/mesonbuild/envconfig.py
+@@ -284,8 +284,8 @@ class MachineInfo(HoldableObject):
'but is missing {}.'.format(minimum_literal - set(literal)))
cpu_family = literal['cpu_family']
@@ -26,13 +26,13 @@ Index: meson-0.60.2/mesonbuild/envconfig.py
endian = literal['endian']
if endian not in ('little', 'big'):
-Index: meson-0.60.2/mesonbuild/environment.py
-===================================================================
---- meson-0.60.2.orig/mesonbuild/environment.py
-+++ meson-0.60.2/mesonbuild/environment.py
-@@ -354,10 +354,8 @@ def detect_cpu_family(compilers: Compile
- if any_compiler_has_define(compilers, '__64BIT__'):
- trial = 'ppc64'
+diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
+index e212c7a..9d2bff3 100644
+--- a/mesonbuild/environment.py
++++ b/mesonbuild/environment.py
+@@ -345,10 +345,8 @@ def detect_cpu_family(compilers: CompilersDict) -> str:
+ if compilers and not any_compiler_has_define(compilers, '__mips64'):
+ trial = 'mips'
- if trial not in known_cpu_families:
- mlog.warning(f'Unknown CPU family {trial!r}, please report this at '
diff --git a/poky/meta/recipes-devtools/meson/meson_1.1.1.bb b/poky/meta/recipes-devtools/meson/meson_1.2.1.bb
index dd97f93aef..fe45266202 100644
--- a/poky/meta/recipes-devtools/meson/meson_1.1.1.bb
+++ b/poky/meta/recipes-devtools/meson/meson_1.2.1.bb
@@ -15,7 +15,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/meson-${PV}.tar.gz \
file://0001-Make-CPU-family-warnings-fatal.patch \
file://0002-Support-building-allarch-recipes-again.patch \
"
-SRC_URI[sha256sum] = "d04b541f97ca439fb82fab7d0d480988be4bd4e62563a5ca35fadb5400727b1c"
+SRC_URI[sha256sum] = "b1db3a153087549497ee52b1c938d2134e0338214fe14f7efd16fecd57b639f5"
inherit python_setuptools_build_meta github-releases
diff --git a/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb b/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb
index 879c179dd7..2d02927af7 100644
--- a/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb
+++ b/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb
@@ -5,7 +5,7 @@ LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://mmc.c;beginline=1;endline=20;md5=fae32792e20f4d27ade1c5a762d16b7d"
SRCBRANCH ?= "master"
-SRCREV = "958227890690290ee766aaad1b92f3413f67048c"
+SRCREV = "613495ecaca97a19fa7f8f3ea23306472b36453c"
PV = "0.1+git"
diff --git a/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb b/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb
index cdcc766748..4b27528f64 100644
--- a/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb
+++ b/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb
@@ -11,9 +11,9 @@ inherit autotools pkgconfig update-alternatives
DEPENDS = "zlib e2fsprogs util-linux"
RDEPENDS:mtd-utils-tests += "bash"
-PV = "2.1.5"
+PV = "2.1.6"
-SRCREV = "3f3b4cc6c3120107e7aaa21c6415772a255ac49c"
+SRCREV = "219e741f40f4801bae263e0b581b64888d887b4a"
SRC_URI = "git://git.infradead.org/mtd-utils.git;branch=master"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/opkg/opkg-arch-config_1.0.bb b/poky/meta/recipes-devtools/opkg/opkg-arch-config_1.0.bb
index dc17de2e8e..dfd66a1168 100644
--- a/poky/meta/recipes-devtools/opkg/opkg-arch-config_1.0.bb
+++ b/poky/meta/recipes-devtools/opkg/opkg-arch-config_1.0.bb
@@ -2,7 +2,6 @@ SUMMARY = "Architecture-dependent configuration for opkg"
HOMEPAGE = "http://code.google.com/p/opkg/"
LICENSE = "MIT"
PACKAGE_ARCH = "${MACHINE_ARCH}"
-PR = "r1"
S = "${WORKDIR}"
diff --git a/poky/meta/recipes-devtools/perl/files/run-ptest b/poky/meta/recipes-devtools/perl/files/run-ptest
index dad4d42916..0547f818b2 100644
--- a/poky/meta/recipes-devtools/perl/files/run-ptest
+++ b/poky/meta/recipes-devtools/perl/files/run-ptest
@@ -1,2 +1,2 @@
#!/bin/sh
-cd t && PERL_BUILD_PACKAGING=1 ./TEST | sed -u -e 's|\(.*\) .* ok$|PASS: \1|' -e 's|\(.*\) .* skipped|SKIP: \1|' -e 's|\(.*\) \.\(.*\)|FAIL: \1|'
+{ cd t && PERL_BUILD_PACKAGING=1 ./TEST || echo "FAIL: perl" ; } | sed -u -e 's|\(.*\) .* ok$|PASS: \1|' -e 's|\(.*\) .* skipped|SKIP: \1|' -e 's|\(.*\) \.\(.*\)|FAIL: \1|'
diff --git a/poky/meta/recipes-devtools/perl/liberror-perl_0.17029.bb b/poky/meta/recipes-devtools/perl/liberror-perl_0.17029.bb
index 9585dfc2c6..e54bb11ccd 100644
--- a/poky/meta/recipes-devtools/perl/liberror-perl_0.17029.bb
+++ b/poky/meta/recipes-devtools/perl/liberror-perl_0.17029.bb
@@ -9,7 +9,6 @@ LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://LICENSE;md5=8f3499d09ee74a050c0319391ff9d100"
-PR = "r1"
DEPENDS += "perl"
diff --git a/poky/meta/recipes-devtools/perl/liburi-perl/0001-Skip-TODO-test-cases-that-fail.patch b/poky/meta/recipes-devtools/perl/liburi-perl/0001-Skip-TODO-test-cases-that-fail.patch
index 68ccd06120..ed1f25125f 100644
--- a/poky/meta/recipes-devtools/perl/liburi-perl/0001-Skip-TODO-test-cases-that-fail.patch
+++ b/poky/meta/recipes-devtools/perl/liburi-perl/0001-Skip-TODO-test-cases-that-fail.patch
@@ -1,4 +1,4 @@
-From 858daa5047b00e7d5aa795302a9fad5504c8f0b9 Mon Sep 17 00:00:00 2001
+From 5a4271456104bdf027644c81c3a208cde5cf522e Mon Sep 17 00:00:00 2001
From: Tim Orling <tim.orling@konsulko.com>
Date: Thu, 17 Nov 2022 16:33:20 -0800
Subject: [PATCH] Skip TODO test cases that fail
@@ -47,19 +47,19 @@ index c6ce79c..5e62ad5 100644
{
my $str = "http://foo/\xE9";
diff --git a/t/iri.t b/t/iri.t
-index 2eb64b2..9c663c9 100644
+index cf983d6..884b36e 100644
--- a/t/iri.t
+++ b/t/iri.t
@@ -6,7 +6,7 @@ use Test::More;
use Config qw( %Config );
if (defined $Config{useperlio}) {
-- plan tests=>26;
-+ plan tests=>24;
+- plan tests=>30;
++ plan tests=>28;
} else {
- plan skip_all=>'this perl doesn\'t support PerlIO layers';
+ plan skip_all=>"this perl doesn't support PerlIO layers";
}
-@@ -60,17 +60,17 @@ is $u->as_iri, "http://➡.ws/";
+@@ -67,17 +67,17 @@ is $u->as_iri, "http://➡.ws/";
# draft-duerst-iri-bis.txt examples (section 3.7.1):
is(URI->new("http://www.example.org/D%C3%BCrst")->as_iri, "http://www.example.org/D\xFCrst");
is(URI->new("http://www.example.org/D%FCrst")->as_iri, "http://www.example.org/D%FCrst");
diff --git a/poky/meta/recipes-devtools/perl/liburi-perl_5.17.bb b/poky/meta/recipes-devtools/perl/liburi-perl_5.21.bb
index 5e15004dd0..0356469d98 100644
--- a/poky/meta/recipes-devtools/perl/liburi-perl_5.17.bb
+++ b/poky/meta/recipes-devtools/perl/liburi-perl_5.21.bb
@@ -6,13 +6,13 @@ HOMEPAGE = "https://metacpan.org/dist/URI"
SECTION = "libs"
LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d8ca5f628bf2cd180bc4fa044cb8ef41"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9944b87af51186f848ae558344aded9f"
SRC_URI = "${CPAN_MIRROR}/authors/id/O/OA/OALDERS/URI-${PV}.tar.gz \
file://0001-Skip-TODO-test-cases-that-fail.patch \
"
-SRC_URI[sha256sum] = "5f7e42b769cb27499113cfae4b786c37d49e7c7d32dbb469602cd808308568f8"
+SRC_URI[sha256sum] = "96265860cd61bde16e8415dcfbf108056de162caa0ac37f81eb695c9d2e0ab77"
S = "${WORKDIR}/URI-${PV}"
diff --git a/poky/meta/recipes-devtools/perl/libxml-perl_0.08.bb b/poky/meta/recipes-devtools/perl/libxml-perl_0.08.bb
index 1b03e63a82..89acb64ef5 100644
--- a/poky/meta/recipes-devtools/perl/libxml-perl_0.08.bb
+++ b/poky/meta/recipes-devtools/perl/libxml-perl_0.08.bb
@@ -6,7 +6,6 @@ HOMEPAGE = "http://search.cpan.org/dist/libxml-perl/"
SUMMARY = "Collection of Perl modules for working with XML"
SECTION = "libs"
LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-PR = "r3"
LIC_FILES_CHKSUM = "file://README;beginline=33;endline=35;md5=1705549eef7577a3d6ba71123a1f0ce8"
diff --git a/poky/meta/recipes-devtools/perl/perl_5.38.0.bb b/poky/meta/recipes-devtools/perl/perl_5.38.0.bb
index 2103a39dfa..956e4d64d7 100644
--- a/poky/meta/recipes-devtools/perl/perl_5.38.0.bb
+++ b/poky/meta/recipes-devtools/perl/perl_5.38.0.bb
@@ -38,8 +38,10 @@ DEPENDS += "make-native"
PERL_LIB_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}.0"
PACKAGECONFIG ??= "gdbm"
+PACKAGECONFIG:append:libc-musl = " anylocale"
PACKAGECONFIG[bdb] = ",-Ui_db,db"
PACKAGECONFIG[gdbm] = ",-Ui_gdbm,gdbm"
+PACKAGECONFIG[anylocale] = "-Dd_setlocale_accepts_any_locale_name=define,,"
# Don't generate comments in enc2xs output files. They are not reproducible
export ENC2XS_NO_COMMENTS = "1"
@@ -56,6 +58,7 @@ do_configure:prepend() {
do_configure:class-target() {
./configure --prefix=${prefix} --libdir=${libdir} \
--target=${TARGET_SYS} \
+ -Duse64bitint \
-Duseshrplib \
-Dusethreads \
-Dsoname=libperl.so.5 \
diff --git a/poky/meta/recipes-devtools/pkgconf/pkgconf_2.0.2.bb b/poky/meta/recipes-devtools/pkgconf/pkgconf_2.0.3.bb
index c6badb123e..5aa5a191f2 100644
--- a/poky/meta/recipes-devtools/pkgconf/pkgconf_2.0.2.bb
+++ b/poky/meta/recipes-devtools/pkgconf/pkgconf_2.0.3.bb
@@ -20,7 +20,7 @@ SRC_URI = "\
file://pkg-config-native.in \
file://pkg-config-esdk.in \
"
-SRC_URI[sha256sum] = "ea5a25ef8f251eb5377ec0e21c75fb61894433cfbdbf0b2559ba33e4c2664401"
+SRC_URI[sha256sum] = "cabdf3c474529854f7ccce8573c5ac68ad34a7e621037535cbc3981f6b23836c"
inherit autotools
diff --git a/poky/meta/recipes-devtools/python/python3-beartype_0.15.0.bb b/poky/meta/recipes-devtools/python/python3-beartype_0.15.0.bb
new file mode 100644
index 0000000000..14eda1dd7d
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-beartype_0.15.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Unbearably fast runtime type checking in pure Python."
+HOMEPAGE = "https://beartype.readthedocs.io"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e40b52d8eb5553aa8f705cdd3f979d69"
+
+SRC_URI[sha256sum] = "2af6a8d8a7267ccf7d271e1a3bd908afbc025d2a09aa51123567d7d7b37438df"
+
+inherit setuptools3 pypi
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-booleanpy_4.0.bb b/poky/meta/recipes-devtools/python/python3-booleanpy_4.0.bb
index 41fd3d960a..41fd3d960a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-booleanpy_4.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-booleanpy_4.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-click/run-ptest b/poky/meta/recipes-devtools/python/python3-click/run-ptest
index b63c4de0d9..b63c4de0d9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-click/run-ptest
+++ b/poky/meta/recipes-devtools/python/python3-click/run-ptest
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.7.bb b/poky/meta/recipes-devtools/python/python3-click_8.1.7.bb
index a4ec6cd1ef..a4ec6cd1ef 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.7.bb
+++ b/poky/meta/recipes-devtools/python/python3-click_8.1.7.bb
diff --git a/poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.3.bb b/poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.4.bb
index 1b499e0299..6b5d8adee9 100644
--- a/poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.4.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4 \
# NOTE: Make sure to keep this recipe at the same version as python3-cryptography
# Upgrade both recipes at the same time
-SRC_URI[sha256sum] = "80de0452c4b34f56f5518e81ebd75b6b905f5728aaed521d42e41f4ebc8a43fb"
+SRC_URI[sha256sum] = "440af2813ea7aeb52181ec651a36d9ae8f0976e8b3a62b411a800fe6fa57a19e"
PYPI_PACKAGE = "cryptography_vectors"
diff --git a/poky/meta/recipes-devtools/python/python3-cryptography_41.0.3.bb b/poky/meta/recipes-devtools/python/python3-cryptography_41.0.4.bb
index b6ea6608eb..94977789c8 100644
--- a/poky/meta/recipes-devtools/python/python3-cryptography_41.0.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-cryptography_41.0.4.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4 \
"
LDSHARED += "-pthread"
-SRC_URI[sha256sum] = "6d192741113ef5e30d89dcb5b956ef4e1578f304708701b8b73d38e3e1461f34"
+SRC_URI[sha256sum] = "7febc3094125fc126a7f6fb1f420d0da639f3f32cb15c8ff0dc3997c4549f51a"
SRC_URI += "file://0001-pyproject.toml-remove-benchmark-disable-option.patch \
file://0001-Fix-include-directory-when-cross-compiling-9129.patch \
diff --git a/poky/meta/recipes-devtools/python/python3-dtschema_2023.6.1.bb b/poky/meta/recipes-devtools/python/python3-dtschema_2023.7.bb
index 0c2c156ec4..c1dc3e019a 100644
--- a/poky/meta/recipes-devtools/python/python3-dtschema_2023.6.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-dtschema_2023.7.bb
@@ -7,7 +7,7 @@ inherit pypi setuptools3
PYPI_PACKAGE = "dtschema"
-SRC_URI[sha256sum] = "d9dc11cea6a46ae2ee5ac4a5a1c7da7cb3704417cb390881820460f7c61eb784"
+SRC_URI[sha256sum] = "de7cd73a35244cf76a8cdd9919bbeb31f362aa5744f3c76c80e0e612489dd0c0"
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS:${PN} += "\
diff --git a/poky/meta/recipes-devtools/python/python3-git_3.1.34.bb b/poky/meta/recipes-devtools/python/python3-git_3.1.36.bb
index 308c787c2d..ab1b0f2353 100644
--- a/poky/meta/recipes-devtools/python/python3-git_3.1.34.bb
+++ b/poky/meta/recipes-devtools/python/python3-git_3.1.36.bb
@@ -12,7 +12,7 @@ PYPI_PACKAGE = "GitPython"
inherit pypi python_setuptools_build_meta
-SRC_URI[sha256sum] = "85f7d365d1f6bf677ae51039c1ef67ca59091c7ebd5a3509aa399d4eda02d6dd"
+SRC_URI[sha256sum] = "4bb0c2a6995e85064140d31a33289aa5dce80133a23d36fcd372d716c54d3ebf"
DEPENDS += " ${PYTHON_PN}-gitdb"
diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis_6.84.0.bb b/poky/meta/recipes-devtools/python/python3-hypothesis_6.86.2.bb
index 8e3f6c0bf4..6ec1457e46 100644
--- a/poky/meta/recipes-devtools/python/python3-hypothesis_6.84.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-hypothesis_6.86.2.bb
@@ -13,7 +13,7 @@ SRC_URI += " \
file://test_rle.py \
"
-SRC_URI[sha256sum] = "446ecc9665a23fc67a6d32bafbe4233d77fef10eb90d4ede8ab1e76474a63215"
+SRC_URI[sha256sum] = "e5d75d70f5a4fc372cddf03ec6141237a0a270ed106aeb2156a4984f06d37b0f"
RDEPENDS:${PN} += " \
python3-attrs \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-isodate_0.6.1.bb b/poky/meta/recipes-devtools/python/python3-isodate_0.6.1.bb
index c65083b777..293fb08277 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-isodate_0.6.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-isodate_0.6.1.bb
@@ -1,4 +1,6 @@
SUMMARY = "ISO 8601 date/time parser"
+HOMEPAGE = "https://github.com/gweis/isodate/"
+SECTION = "devel/python"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709"
diff --git a/poky/meta/recipes-devtools/python/python3-jsonschema_4.17.3.bb b/poky/meta/recipes-devtools/python/python3-jsonschema_4.17.3.bb
index 24cde3711c..77f94924f9 100644
--- a/poky/meta/recipes-devtools/python/python3-jsonschema_4.17.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-jsonschema_4.17.3.bb
@@ -1,5 +1,5 @@
SUMMARY = "An implementation of JSON Schema validation for Python"
-HOMEPAGE = "https://github.com/Julian/jsonschema"
+HOMEPAGE = "https://github.com/python-jsonschema/jsonschema"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=7a60a81c146ec25599a3e1dabb8610a8 \
file://json/LICENSE;md5=9d4de43111d33570c8fe49b4cb0e01af"
diff --git a/poky/meta/recipes-devtools/python/python3-libarchive-c_4.0.bb b/poky/meta/recipes-devtools/python/python3-libarchive-c_5.0.bb
index 3c6bc1e1ca..5ada76fbf4 100644
--- a/poky/meta/recipes-devtools/python/python3-libarchive-c_4.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-libarchive-c_5.0.bb
@@ -9,7 +9,7 @@ PYPI_PACKAGE = "libarchive-c"
inherit pypi setuptools3
-SRC_URI[sha256sum] = "a5b41ade94ba58b198d778e68000f6b7de41da768de7140c984f71d7fa8416e5"
+SRC_URI[sha256sum] = "d673f56673d87ec740d1a328fa205cafad1d60f5daca4685594deb039d32b159"
RDEPENDS:${PN} += "\
libarchive \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression/run-ptest b/poky/meta/recipes-devtools/python/python3-license-expression/run-ptest
index 5cec711696..5cec711696 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression/run-ptest
+++ b/poky/meta/recipes-devtools/python/python3-license-expression/run-ptest
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_30.1.1.bb b/poky/meta/recipes-devtools/python/python3-license-expression_30.1.1.bb
index 31fb88d6e5..31fb88d6e5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-license-expression_30.1.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-license-expression_30.1.1.bb
diff --git a/poky/meta/recipes-devtools/python/python3-numpy/disable_blas.patch b/poky/meta/recipes-devtools/python/python3-numpy/disable_blas.patch
deleted file mode 100644
index 09d65e8419..0000000000
--- a/poky/meta/recipes-devtools/python/python3-numpy/disable_blas.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-We've seen reproducibility failures where it appears an extra -O3 compiler flag ends
-up in the multiarray library compilation. This can only really have come through
-extra_info since it only affects just this library. Rather than try and track
-down exactly where this came from in a rabbit warren of code, just disable
-this since we don't have any of the dependencies.
-
-Upstream-Status: Inappropriate [OE specific config hack]
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-
-Index: numpy-1.25.2/numpy/core/setup.py
-===================================================================
---- numpy-1.25.2.orig/numpy/core/setup.py
-+++ numpy-1.25.2/numpy/core/setup.py
-@@ -755,22 +755,7 @@ def configuration(parent_package='',top_
- join('src', 'common', 'npy_cpu_features.c'),
- ]
-
-- if os.environ.get('NPY_USE_BLAS_ILP64', "0") != "0":
-- blas_info = get_info('blas_ilp64_opt', 2)
-- else:
-- blas_info = get_info('blas_opt', 0)
--
-- have_blas = blas_info and ('HAVE_CBLAS', None) in blas_info.get('define_macros', [])
--
-- if have_blas:
-- extra_info = blas_info
-- # These files are also in MANIFEST.in so that they are always in
-- # the source distribution independently of HAVE_CBLAS.
-- common_src.extend([join('src', 'common', 'cblasfuncs.c'),
-- join('src', 'common', 'python_xerbla.c'),
-- ])
-- else:
-- extra_info = {}
-+ extra_info = {}
-
- #######################################################################
- # _multiarray_umath module - multiarray part #
diff --git a/poky/meta/recipes-devtools/python/python3-numpy/fix_reproducibility.patch b/poky/meta/recipes-devtools/python/python3-numpy/fix_reproducibility.patch
new file mode 100644
index 0000000000..d952aed00c
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-numpy/fix_reproducibility.patch
@@ -0,0 +1,33 @@
+This regex decides whether to use O3 opimisation on numpy or not.
+
+It includes "od", which happens to be a substring of "reproducible"
+but not "qemux86-world".
+
+The regex will run against all compiler options including things like:
+
+-fmacro-prefix-map=/XXX/build/tmp/work/core2-64-poky-linux/python3-numpy/1.26.0/numpy-1.26.0=/usr/src/debug/python3-numpy/1.26.0-r0
+
+i.e. including build paths.
+
+Reduce the regex to something deterministic for our builds, assuming
+nobody builds in /home/debug:full/
+
+The autobuilder race depended upon whether qemux86-world or the
+reproducible target ran first and won the race to populate sstate.
+
+Upstream-Status: Inappropriate [upstream have dropped distutils and switched to meson]
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: numpy-1.26.0/numpy/distutils/ccompiler_opt.py
+===================================================================
+--- numpy-1.26.0.orig/numpy/distutils/ccompiler_opt.py
++++ numpy-1.26.0/numpy/distutils/ccompiler_opt.py
+@@ -990,7 +990,7 @@ class _CCompiler:
+ ("cc_is_nocc", "", ""),
+ )
+ detect_args = (
+- ("cc_has_debug", ".*(O0|Od|ggdb|coverage|debug:full).*", ""),
++ ("cc_has_debug", ".*debug:full.*", ""),
+ ("cc_has_native",
+ ".*(-march=native|-xHost|/QxHost|-mcpu=a64fx).*", ""),
+ # in case if the class run with -DNPY_DISABLE_OPTIMIZATION
diff --git a/poky/meta/recipes-devtools/python/python3-numpy_1.25.2.bb b/poky/meta/recipes-devtools/python/python3-numpy_1.26.0.bb
index 4793b23a38..4e1e34e8df 100644
--- a/poky/meta/recipes-devtools/python/python3-numpy_1.25.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-numpy_1.26.0.bb
@@ -3,17 +3,17 @@ HOMEPAGE = "https://numpy.org/"
DESCRIPTION = "NumPy is the fundamental package needed for scientific computing with Python."
SECTION = "devel/python"
LICENSE = "BSD-3-Clause & BSD-2-Clause & PSF-2.0 & Apache-2.0 & MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7614a5b0073688df53773ec6ec7fe81d"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a752eb20459cf74a9d84ee4825e8317c"
SRCNAME = "numpy"
SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${SRCNAME}-${PV}.tar.gz \
file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \
file://0001-numpy-core-Define-RISCV-32-support.patch \
- file://disable_blas.patch \
+ file://fix_reproducibility.patch \
file://run-ptest \
"
-SRC_URI[sha256sum] = "fd608e19c8d7c55021dffd43bfe5492fab8cc105cc8986f813f8c3c048b38760"
+SRC_URI[sha256sum] = "f93fc78fe8bf15afe2b8d6b6499f1c73953169fad1e9a8dd086cdff3190e7fdf"
GITHUB_BASE_URI = "https://github.com/numpy/numpy/releases"
UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)$"
diff --git a/poky/meta/recipes-devtools/python/python3-ply_3.11.bb b/poky/meta/recipes-devtools/python/python3-ply_3.11.bb
index 99c037bb73..4a559e44f8 100644
--- a/poky/meta/recipes-devtools/python/python3-ply_3.11.bb
+++ b/poky/meta/recipes-devtools/python/python3-ply_3.11.bb
@@ -15,4 +15,4 @@ RDEPENDS:${PN}:class-target += "\
${PYTHON_PN}-shell \
"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodome_3.18.0.bb b/poky/meta/recipes-devtools/python/python3-pycryptodome_3.18.0.bb
deleted file mode 100644
index a1e4b42bdf..0000000000
--- a/poky/meta/recipes-devtools/python/python3-pycryptodome_3.18.0.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require python-pycryptodome.inc
-inherit setuptools3
-
-SRC_URI[sha256sum] = "c9adee653fc882d98956e33ca2c1fb582e23a8af7ac82fee75bd6113c55a0413"
-
diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodome_3.19.0.bb b/poky/meta/recipes-devtools/python/python3-pycryptodome_3.19.0.bb
new file mode 100644
index 0000000000..92fe1aa17a
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-pycryptodome_3.19.0.bb
@@ -0,0 +1,5 @@
+require python-pycryptodome.inc
+inherit setuptools3
+
+SRC_URI[sha256sum] = "bc35d463222cdb4dbebd35e0784155c81e161b9284e567e7e933d722e533331e"
+
diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.18.0.bb b/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.19.0.bb
index cbbc17adba..87aff01bfc 100644
--- a/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.18.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.19.0.bb
@@ -1,7 +1,7 @@
require python-pycryptodome.inc
inherit setuptools3
-SRC_URI[sha256sum] = "3e3ecb5fe979e7c1bb0027e518340acf7ee60415d79295e5251d13c68dde576e"
+SRC_URI[sha256sum] = "af83a554b3f077564229865c45af0791be008ac6469ef0098152139e6bd4b5b6"
FILES:${PN}-tests = " \
${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/ \
diff --git a/poky/meta/recipes-devtools/python/python3-pyelftools_0.29.bb b/poky/meta/recipes-devtools/python/python3-pyelftools_0.30.bb
index c55682e2ea..e976d6cae8 100644
--- a/poky/meta/recipes-devtools/python/python3-pyelftools_0.29.bb
+++ b/poky/meta/recipes-devtools/python/python3-pyelftools_0.30.bb
@@ -4,7 +4,7 @@ SECTION = "devel/python"
LICENSE = "PD"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5ce2a2b07fca326bc7c146d10105ccfc"
-SRC_URI[sha256sum] = "ec761596aafa16e282a31de188737e5485552469ac63b60cfcccf22263fd24ff"
+SRC_URI[sha256sum] = "2fc92b0d534f8b081f58c7c370967379123d8e00984deb53c209364efd575b40"
PYPI_PACKAGE = "pyelftools"
diff --git a/poky/meta/recipes-devtools/python/python3-pygobject/0001-Do-not-build-tests.patch b/poky/meta/recipes-devtools/python/python3-pygobject/0001-Do-not-build-tests.patch
deleted file mode 100644
index 0f2465bb52..0000000000
--- a/poky/meta/recipes-devtools/python/python3-pygobject/0001-Do-not-build-tests.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From c125a806de951359ab7e302b0584f7c92fa451ad Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 12 Apr 2019 16:25:58 +0200
-Subject: [PATCH] Do not build tests
-
-They require installing tests from g-i, which we do not do.
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index 278fa16f..aacbd4a2 100644
---- a/meson.build
-+++ b/meson.build
-@@ -175,6 +175,6 @@ configure_file(input : 'PKG-INFO.in',
- subdir('gi')
- subdir('pygtkcompat')
- with_tests = get_option('tests')
--if with_tests
--subdir('tests')
--endif
-+#if with_tests
-+#subdir('tests')
-+#endif
---
-2.17.1
-
diff --git a/poky/meta/recipes-devtools/python/python3-pygobject_3.44.1.bb b/poky/meta/recipes-devtools/python/python3-pygobject_3.46.0.bb
index 797a7cec8b..28129fd66a 100644
--- a/poky/meta/recipes-devtools/python/python3-pygobject_3.44.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-pygobject_3.46.0.bb
@@ -19,11 +19,8 @@ DEPENDS += "python3 glib-2.0"
SRCNAME="pygobject"
-SRC_URI = " \
- http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.xz \
- file://0001-Do-not-build-tests.patch \
-"
-SRC_URI[sha256sum] = "3c6805d1321be90cc32e648215a562430e0d3d6edcda8f4c5e7a9daffcad5710"
+SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "426008b2dad548c9af1c7b03b59df0440fde5c33f38fb5406b103a43d653cafc"
S = "${WORKDIR}/${SRCNAME}-${PV}"
@@ -37,6 +34,7 @@ RDEPENDS:${PN} += " \
# python3-pycairo is checked on configuration -> DEPENDS
# we don't link against python3-pycairo -> RDEPENDS
PACKAGECONFIG[cairo] = "-Dpycairo=enabled,-Dpycairo=disabled, cairo python3-pycairo, python3-pycairo"
+PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,"
BBCLASSEXTEND = "native"
PACKAGECONFIG:class-native = ""
diff --git a/poky/meta/recipes-devtools/python/python3-pytest_7.4.1.bb b/poky/meta/recipes-devtools/python/python3-pytest_7.4.2.bb
index e9ded985cb..710aa51716 100644
--- a/poky/meta/recipes-devtools/python/python3-pytest_7.4.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-pytest_7.4.2.bb
@@ -5,7 +5,7 @@ DESCRIPTION = "The pytest framework makes it easy to write small tests, yet scal
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=bd27e41b6550fe0fc45356d1d81ee37c"
-SRC_URI[sha256sum] = "2f2301e797521b23e4d2585a0a3d7b5e50fdddaaf7e7d6773ea26ddb17c213ab"
+SRC_URI[sha256sum] = "a766259cfab564a2ad52cb1aae1b881a75c3eb7e34ca3779697c23ed47c47069"
DEPENDS += "python3-setuptools-scm-native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rdflib_7.0.0.bb b/poky/meta/recipes-devtools/python/python3-rdflib_7.0.0.bb
index 952c210116..09515337c5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-rdflib_7.0.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-rdflib_7.0.0.bb
@@ -1,4 +1,6 @@
SUMMARY = "RDFLib is a pure Python package for working with RDF"
+HOMEPAGE = "https://github.com/RDFLib/rdflib"
+SECTION = "devel/python"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=37d489c0cefe52a17e1d5007e196464a"
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools-rust_1.6.0.bb b/poky/meta/recipes-devtools/python/python3-setuptools-rust_1.7.0.bb
index f1da4b50e7..6392a4dead 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools-rust_1.6.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-setuptools-rust_1.7.0.bb
@@ -12,11 +12,14 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=011cd92e702dd9e6b1a26157b6fd53f5"
SRC_URI = "${PYPI_SRC_URI} \
https://files.pythonhosted.org/packages/67/08/e1aa2c582c62ac76e4d60f8e454bd3bba933781a06a88b4e38797445822a/setuptools-rust-${PV}.tar.gz \
"
-SRC_URI[sha256sum] = "c86e734deac330597998bfbc08da45187e6b27837e23bd91eadb320732392262"
+SRC_URI[sha256sum] = "c7100999948235a38ae7e555fe199aa66c253dc384b125f5d85473bf81eae3a3"
inherit cargo pypi python_setuptools_build_meta
DEPENDS += "python3-setuptools-scm-native python3-wheel-native"
+# remove when https://github.com/PyO3/setuptools-rust/commit/7ced8d2a8f36e1b4fc41b5544636defb7bd44bdf
+# is included
+DEPENDS += "python3-semantic-version-native"
RDEPENDS:${PN} += " \
python3-distutils \
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools-scm_7.1.0.bb b/poky/meta/recipes-devtools/python/python3-setuptools-scm_7.1.0.bb
index 7961ff7198..bb13c65460 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools-scm_7.1.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-setuptools-scm_7.1.0.bb
@@ -9,7 +9,7 @@ SRC_URI[sha256sum] = "6c508345a771aad7d56ebff0e70628bf2b0ec7573762be9960214730de
PYPI_PACKAGE = "setuptools_scm"
inherit pypi python_setuptools_build_meta
-UPSTREAM_CHECK_REGEX = "setuptools_scm-(?P<pver>.*)\.tar"
+UPSTREAM_CHECK_REGEX = "scm-(?P<pver>.*)\.tar"
DEPENDS += "python3-tomli-native python3-packaging-native python3-typing-extensions-native"
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch b/poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch
index 84a9492caf..9b17dba178 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch
+++ b/poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch
@@ -1,4 +1,4 @@
-From c90cc4a07ce6d2b7128e37d811d0c6bbc4b905a6 Mon Sep 17 00:00:00 2001
+From 519e2845014f04b4c23b5cf8f92fc4e5dcf40f20 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Tue, 17 Jul 2018 10:13:38 +0800
Subject: [PATCH] conditionally do not fetch code by easy_install
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_68.1.2.bb b/poky/meta/recipes-devtools/python/python3-setuptools_68.2.2.bb
index a1e84b635c..06957d7000 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools_68.1.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-setuptools_68.2.2.bb
@@ -11,7 +11,7 @@ SRC_URI:append:class-native = " file://0001-conditionally-do-not-fetch-code-by-e
SRC_URI += " \
file://0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch"
-SRC_URI[sha256sum] = "3d4dfa6d95f1b101d695a6160a7626e15583af71a5f52176efa5d39a054d475d"
+SRC_URI[sha256sum] = "4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"
DEPENDS += "${PYTHON_PN}"
diff --git a/poky/meta/recipes-devtools/python/python3-smmap_5.0.0.bb b/poky/meta/recipes-devtools/python/python3-smmap_6.0.0.bb
index ea131ef793..02c43e069b 100644
--- a/poky/meta/recipes-devtools/python/python3-smmap_5.0.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-smmap_6.0.0.bb
@@ -11,7 +11,7 @@ inherit pypi setuptools3
PYPI_PACKAGE = "smmap"
-SRC_URI[sha256sum] = "c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"
+SRC_URI[sha256sum] = "8d79028ea6cc131da5eab099a5d95a998d43c6779956fffe3b455040911076da"
RDEPENDS:${PN} += "${PYTHON_PN}-codecs \
${PYTHON_PN}-mmap \
diff --git a/poky/meta/recipes-devtools/python/python3-spdx-tools_0.8.1.bb b/poky/meta/recipes-devtools/python/python3-spdx-tools_0.8.1.bb
new file mode 100644
index 0000000000..f58a138430
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-spdx-tools_0.8.1.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Python tool to parse, validate and convert spdx files"
+HOMEPAGE = "https://github.com/spdx/tools-python"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dc7f21ccff0f672f2a7cd6f412ae627d"
+
+SRC_URI[sha256sum] = "c83652cd65b5726058dcbdaab85839dbe484c43ea6f61046137516aa1b8428ae"
+
+BBCLASSEXTEND = "native nativesdk"
+
+inherit setuptools3 pypi
+
+# Dependency required for pyspdxtools : python3-click
+# Dependencies required for conversion to spdx3 : python3-semantic-version, python3-ply
+RDEPENDS:${PN} += "\
+ python3-core \
+ python3-beartype \
+ python3-click \
+ python3-datetime \
+ python3-json \
+ python3-license-expression \
+ python3-ply \
+ python3-pyyaml \
+ python3-rdflib \
+ python3-semantic-version \
+ python3-uritools \
+ python3-xmltodict \
+ "
diff --git a/poky/meta/recipes-devtools/python/python3-sphinx_7.2.5.bb b/poky/meta/recipes-devtools/python/python3-sphinx_7.2.6.bb
index f55cc5a3ec..f4ed0720ff 100644
--- a/poky/meta/recipes-devtools/python/python3-sphinx_7.2.5.bb
+++ b/poky/meta/recipes-devtools/python/python3-sphinx_7.2.6.bb
@@ -4,7 +4,7 @@ SECTION = "devel/python"
LICENSE = "BSD-2-Clause & MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5eb6ac1b115a1ed24a12d9f15b633993"
-SRC_URI[sha256sum] = "1a9290001b75c497fd087e92b0334f1bbfa1a1ae7fddc084990c4b7bd1130b88"
+SRC_URI[sha256sum] = "9a5160e1ea90688d5963ba09a2dcd8bdd526620edbb65c328728f1b2228d5ab5"
inherit python_flit_core pypi
UPSTREAM_CHECK_REGEX = "/Sphinx/(?P<pver>(\d+[\.\-_]*)+)/"
diff --git a/poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.8.7.bb b/poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.9.19.bb
index 9aed0d62e4..aa062f659b 100644
--- a/poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.8.7.bb
+++ b/poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.9.19.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/pypa/trove-classifiers"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-SRC_URI[sha256sum] = "c9f2a0a85d545e5362e967e4f069f56fddfd91215e22ffa48c66fb283521319a"
+SRC_URI[sha256sum] = "3e700af445c802f251ce2b741ee78d2e5dfa5ab8115b933b89ca631b414691c9"
inherit pypi python_setuptools_build_meta ptest
diff --git a/poky/meta/recipes-devtools/python/python3-typing-extensions_4.7.1.bb b/poky/meta/recipes-devtools/python/python3-typing-extensions_4.8.0.bb
index 8ff77ba4fd..33749a9f0f 100644
--- a/poky/meta/recipes-devtools/python/python3-typing-extensions_4.7.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-typing-extensions_4.8.0.bb
@@ -15,7 +15,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=fcf6b249c2641540219a727f35d8d2c2"
# The name on PyPi is slightly different.
PYPI_PACKAGE = "typing_extensions"
-SRC_URI[sha256sum] = "b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"
+SRC_URI[sha256sum] = "df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"
inherit pypi python_flit_core
diff --git a/poky/meta/recipes-devtools/python/python3-uritools_4.0.2.bb b/poky/meta/recipes-devtools/python/python3-uritools_4.0.2.bb
new file mode 100644
index 0000000000..5ffedccb85
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-uritools_4.0.2.bb
@@ -0,0 +1,11 @@
+SUMMARY = "URI parsing, classification and composition"
+HOMEPAGE = "https://github.com/tkem/uritools/"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1ec55353c80c662e4255f8889a0ca558"
+
+SRC_URI[sha256sum] = "04df2b787d0eb76200e8319382a03562fbfe4741fd66c15506b08d3b8211d573"
+
+inherit setuptools3 pypi
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-urllib3_2.0.4.bb b/poky/meta/recipes-devtools/python/python3-urllib3_2.0.5.bb
index 0abd2adf65..9c15791d34 100644
--- a/poky/meta/recipes-devtools/python/python3-urllib3_2.0.4.bb
+++ b/poky/meta/recipes-devtools/python/python3-urllib3_2.0.5.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/shazow/urllib3"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=52d273a3054ced561275d4d15260ecda"
-SRC_URI[sha256sum] = "8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11"
+SRC_URI[sha256sum] = "13abf37382ea2ce6fb744d4dad67838eec857c9f4f57009891805e0b5e123594"
inherit pypi python_hatchling
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmltodict/run-ptest b/poky/meta/recipes-devtools/python/python3-xmltodict/run-ptest
index 3385d68939..3385d68939 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmltodict/run-ptest
+++ b/poky/meta/recipes-devtools/python/python3-xmltodict/run-ptest
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmltodict_0.13.0.bb b/poky/meta/recipes-devtools/python/python3-xmltodict_0.13.0.bb
index a1f3957adc..132aae8929 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmltodict_0.13.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-xmltodict_0.13.0.bb
@@ -7,6 +7,8 @@ SRC_URI[sha256sum] = "341595a488e3e01a85a9d8911d8912fd922ede5fecc4dce437eb4b6c8d
PYPI_PACKAGE = "xmltodict"
+BBCLASSEXTEND = "native nativesdk"
+
inherit pypi setuptools3 ptest
SRC_URI += " \
diff --git a/poky/meta/recipes-devtools/python/python3-zipp_3.16.2.bb b/poky/meta/recipes-devtools/python/python3-zipp_3.17.0.bb
index 9dff59ffaf..11f3b5cda0 100644
--- a/poky/meta/recipes-devtools/python/python3-zipp_3.16.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-zipp_3.17.0.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/jaraco/zipp"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=141643e11c48898150daa83802dbc65f"
-SRC_URI[sha256sum] = "ebc15946aa78bd63458992fc81ec3b6f7b1e92d51c35e6de1c3804e73b799147"
+SRC_URI[sha256sum] = "84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"
DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
diff --git a/poky/meta/recipes-devtools/python/python3/0001-skip-no_stdout_fileno-test-due-to-load-variability.patch b/poky/meta/recipes-devtools/python/python3/0001-skip-no_stdout_fileno-test-due-to-load-variability.patch
new file mode 100644
index 0000000000..ff695a4091
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3/0001-skip-no_stdout_fileno-test-due-to-load-variability.patch
@@ -0,0 +1,32 @@
+From 564d8f117fec7e573cbc10323655acefb12d143f Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Fri, 15 Sep 2023 08:48:33 -0400
+Subject: [PATCH] skip no_stdout_fileno test due to load variability
+
+Skip test_input_no_stdout_fileno so that it doesn't fail on systems
+under heavy load.
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+[YOCTO #15210]
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ Lib/test/test_builtin.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
+index 9078c409cc..615955c057 100644
+--- a/Lib/test/test_builtin.py
++++ b/Lib/test/test_builtin.py
+@@ -2247,6 +2247,7 @@ def test_input_tty_non_ascii_unicode_errors(self):
+ # Check stdin/stdout error handler is used when invoking PyOS_Readline()
+ self.check_input_tty("prompté", b"quux\xe9", "ascii")
+
++ @unittest.skip("Test may fail under heavy load")
+ def test_input_no_stdout_fileno(self):
+ # Issue #24402: If stdin is the original terminal but stdout.fileno()
+ # fails, do not use the original stdout file descriptor
+--
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch b/poky/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch
index 371021c0a9..97150f2038 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-test_ctypes.test_find-skip-without-tools-sdk.patch
@@ -9,7 +9,7 @@ easiest way to dynamically check for that is looking for
Upstream-Status: Inappropriate [oe-specific]
-Signed-off-by: Tim Orling <timothy.t.orlign@intel.com>
+Signed-off-by: Tim Orling <timothy.t.orling@intel.com>
---
Lib/ctypes/test/test_find.py | 2 ++
diff --git a/poky/meta/recipes-devtools/python/python3_3.11.5.bb b/poky/meta/recipes-devtools/python/python3_3.11.5.bb
index f5d97311d7..8e023c7dfb 100644
--- a/poky/meta/recipes-devtools/python/python3_3.11.5.bb
+++ b/poky/meta/recipes-devtools/python/python3_3.11.5.bb
@@ -32,6 +32,7 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
file://deterministic_imports.patch \
file://0001-Avoid-shebang-overflow-on-python-config.py.patch \
file://0001-Update-test_sysconfig-for-posix_user-purelib.patch \
+ file://0001-skip-no_stdout_fileno-test-due-to-load-variability.patch \
"
SRC_URI:append:class-native = " \
@@ -45,7 +46,7 @@ SRC_URI[sha256sum] = "85cd12e9cf1d6d5a45f17f7afe1cebe7ee628d3282281c492e86adf636
UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
UPSTREAM_CHECK_URI = "https://www.python.org/downloads/source/"
-CVE_PRODUCT = "python"
+CVE_PRODUCT = "python cpython"
CVE_STATUS[CVE-2007-4559] = "disputed: Upstream consider this expected behaviour"
CVE_STATUS[CVE-2019-18348] = "not-applicable-config: This is not exploitable when glibc has CVE-2016-10739 fixed"
diff --git a/poky/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb b/poky/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb
index b100659a8c..5d40784201 100644
--- a/poky/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb
+++ b/poky/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb
@@ -4,7 +4,6 @@ RDEPENDS:${PN} = "nativesdk-qemu nativesdk-unfs3 nativesdk-pseudo \
nativesdk-python3-shell nativesdk-python3-fcntl nativesdk-python3-logging \
"
-PR = "r9"
LIC_FILES_CHKSUM = "file://${COREBASE}/scripts/runqemu;beginline=5;endline=10;md5=ac2b489a58739c7628a2604698db5e7f"
diff --git a/poky/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb b/poky/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
index 4d64ea4b93..1dfce0e4c7 100644
--- a/poky/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
+++ b/poky/meta/recipes-devtools/qemu/qemu-helper-native_1.0.bb
@@ -1,7 +1,6 @@
SUMMARY = "Helper utilities needed by the runqemu script"
LICENSE = "GPL-2.0-only"
RDEPENDS:${PN} = "qemu-system-native"
-PR = "r1"
LIC_FILES_CHKSUM = "file://${WORKDIR}/qemu-oe-bridge-helper.c;endline=4;md5=ae00a3bab86f2caaa8462eacda77f4d7"
diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc
index 15b963d448..9664b747b3 100644
--- a/poky/meta/recipes-devtools/qemu/qemu.inc
+++ b/poky/meta/recipes-devtools/qemu/qemu.inc
@@ -195,6 +195,7 @@ PACKAGECONFIG[fdt] = "--enable-fdt,--disable-fdt,dtc"
PACKAGECONFIG[alsa] = "--audio-drv-list=default,,alsa-lib"
PACKAGECONFIG[epoxy] = "--enable-opengl,--disable-opengl,libepoxy"
PACKAGECONFIG[lzo] = "--enable-lzo,--disable-lzo,lzo"
+PACKAGECONFIG[dax] = "--enable-libdaxctl,--disable-libdaxctl,ndctl"
PACKAGECONFIG[numa] = "--enable-numa,--disable-numa,numactl"
PACKAGECONFIG[gnutls] = "--enable-gnutls,--disable-gnutls,gnutls"
PACKAGECONFIG[bzip2] = "--enable-bzip2,--disable-bzip2,bzip2"
diff --git a/poky/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb b/poky/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb
index db353d607b..72ba8c0227 100644
--- a/poky/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb
+++ b/poky/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb
@@ -1,7 +1,6 @@
SUMMARY = "Runs postinstall scripts on first boot of the target device"
DESCRIPTION = "${SUMMARY}"
SECTION = "devel"
-PR = "r10"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
diff --git a/poky/meta/recipes-devtools/rust/cargo-c-native_0.9.18.bb b/poky/meta/recipes-devtools/rust/cargo-c-native_0.9.18.bb
index 4f34f50ca9..f27ad830d3 100644
--- a/poky/meta/recipes-devtools/rust/cargo-c-native_0.9.18.bb
+++ b/poky/meta/recipes-devtools/rust/cargo-c-native_0.9.18.bb
@@ -5,12 +5,12 @@ LIC_FILES_CHKSUM = " \
file://LICENSE;md5=384ed0e2e0b2dac094e51fbf93fdcbe0 \
"
-PR = "r1"
SRC_URI = " \
git://github.com/lu-zero/cargo-c.git;branch=master;protocol=https \
file://0001-Add-Cargo.lock-file.patch \
"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
SRCREV = "4eaf39ebbbc9ab8f092adf487d5b53435511d619"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/strace/strace/run-ptest b/poky/meta/recipes-devtools/strace/strace/run-ptest
index 86daed9220..1224229e8f 100755
--- a/poky/meta/recipes-devtools/strace/strace/run-ptest
+++ b/poky/meta/recipes-devtools/strace/strace/run-ptest
@@ -3,7 +3,7 @@
set -u
export TIMEOUT_DURATION=240
-make -B -C tests -k test-suite.log
+make -j4 -B -C tests -k test-suite.log
res=$?
if [ $res -ne 0 ]; then
cat tests/test-suite.log
diff --git a/poky/meta/recipes-devtools/strace/strace_6.4.bb b/poky/meta/recipes-devtools/strace/strace_6.5.bb
index 2174790fbe..8f90c35925 100644
--- a/poky/meta/recipes-devtools/strace/strace_6.4.bb
+++ b/poky/meta/recipes-devtools/strace/strace_6.5.bb
@@ -15,7 +15,7 @@ SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \
file://0001-configure-Use-autoconf-macro-to-detect-largefile-sup.patch \
file://0002-tests-Replace-off64_t-with-off_t.patch \
"
-SRC_URI[sha256sum] = "27987dbac57fdfd260c6db4dc8328df35c95c6867c8a3d4371d59cdcf4eb9238"
+SRC_URI[sha256sum] = "dfb051702389e1979a151892b5901afc9e93bbc1c70d84c906ade3224ca91980"
inherit autotools ptest
diff --git a/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb b/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
index 5604901592..1931bfb3c0 100644
--- a/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
+++ b/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
@@ -28,7 +28,6 @@ SRC_URI[md5sum] = "2b31c78f087f99179feb357da312d7ec"
SRC_URI[sha256sum] = "4441a5d593f85bb6e8d578cf6653fb4ec30f9e8f4a2315a3d8f2d0a8b3fadf94"
# remove at next version upgrade or when output changes
-PR = "r1"
RECIPE_NO_UPDATE_REASON = "6.04-pre3 is broken"
UPSTREAM_CHECK_URI = "https://www.zytor.com/pub/syslinux/"
diff --git a/poky/meta/recipes-devtools/vala/vala_0.56.13.bb b/poky/meta/recipes-devtools/vala/vala_0.56.13.bb
new file mode 100644
index 0000000000..0d43ac59a0
--- /dev/null
+++ b/poky/meta/recipes-devtools/vala/vala_0.56.13.bb
@@ -0,0 +1,3 @@
+require ${BPN}.inc
+
+SRC_URI[sha256sum] = "4988223036c7e1e4874c476d0de8bd9cbe500ee25ef19a76e560dc0b6d56ae07"
diff --git a/poky/meta/recipes-devtools/vala/vala_0.56.8.bb b/poky/meta/recipes-devtools/vala/vala_0.56.8.bb
deleted file mode 100644
index f55fb41ad3..0000000000
--- a/poky/meta/recipes-devtools/vala/vala_0.56.8.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require ${BPN}.inc
-
-SRC_URI[sha256sum] = "93f81dcfc6a93b77baa271d65e6be981ee3238ad451ef380af118e295d904bde"
diff --git a/poky/meta/recipes-extended/cups/cups.inc b/poky/meta/recipes-extended/cups/cups.inc
index 36feaddcf8..fa32c38549 100644
--- a/poky/meta/recipes-extended/cups/cups.inc
+++ b/poky/meta/recipes-extended/cups/cups.inc
@@ -15,6 +15,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/cups-${PV}-source.tar.gz \
file://0004-cups-fix-multilib-install-file-conflicts.patch \
file://volatiles.99_cups \
file://cups-volatiles.conf \
+ file://CVE-2023-4504.patch \
"
GITHUB_BASE_URI = "https://github.com/OpenPrinting/cups/releases"
diff --git a/poky/meta/recipes-extended/cups/cups/CVE-2023-4504.patch b/poky/meta/recipes-extended/cups/cups/CVE-2023-4504.patch
new file mode 100644
index 0000000000..e52e43a209
--- /dev/null
+++ b/poky/meta/recipes-extended/cups/cups/CVE-2023-4504.patch
@@ -0,0 +1,42 @@
+CVE: CVE-2023-4504
+Upstream-Status: Backport [https://github.com/OpenPrinting/cups/commit/2431caddb7e6a87f04ac90b5c6366ad268b6ff31 ]
+Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
+
+From 2431caddb7e6a87f04ac90b5c6366ad268b6ff31 Mon Sep 17 00:00:00 2001
+From: Zdenek Dohnal <zdohnal@redhat.com>
+Date: Wed, 20 Sep 2023 14:45:17 +0200
+Subject: [PATCH] raster-interpret.c: Fix CVE-2023-4504
+
+We didn't check for end of buffer if it looks there is an escaped
+character - check for NULL terminator there and if found, return NULL
+as return value and in `ptr`, because a lone backslash is not
+a valid PostScript character.
+---
+ cups/raster-interpret.c | 14 +++++++++++++-
+ 1 files changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/cups/raster-interpret.c b/cups/raster-interpret.c
+index 6fcf731b5..b8655c8c6 100644
+--- a/cups/raster-interpret.c
++++ b/cups/raster-interpret.c
+@@ -1116,7 +1116,19 @@ scan_ps(_cups_ps_stack_t *st, /* I - Stack */
+
+ cur ++;
+
+- if (*cur == 'b')
++ /*
++ * Return NULL if we reached NULL terminator, a lone backslash
++ * is not a valid character in PostScript.
++ */
++
++ if (!*cur)
++ {
++ *ptr = NULL;
++
++ return (NULL);
++ }
++
++ if (*cur == 'b')
+ *valptr++ = '\b';
+ else if (*cur == 'f')
+ *valptr++ = '\f';
diff --git a/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch b/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
index 5e9024834c..409c8de685 100644
--- a/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
+++ b/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
@@ -1,4 +1,4 @@
-From 08f887f4bc65684397bf8ec30cc61d91d894deac Mon Sep 17 00:00:00 2001
+From 0c77437267601d40d7ce9efd87eb4b82a5675d2f Mon Sep 17 00:00:00 2001
From: Tudor Florea <tudor.florea@enea.com>
Date: Wed, 28 May 2014 18:59:54 +0200
Subject: [PATCH] ethtool: use serial-tests config needed by ptest.
@@ -15,12 +15,12 @@ Upstream-Status: Inappropriate
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
-index c1e0012..c460398 100644
+index 11efb99..b5ce018 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script.
- AC_INIT(ethtool, 6.3, netdev@vger.kernel.org)
+@@ -3,7 +3,7 @@ AC_INIT(ethtool, 6.5, netdev@vger.kernel.org)
AC_PREREQ(2.52)
+ AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_SRCDIR([ethtool.c])
-AM_INIT_AUTOMAKE([gnu subdir-objects])
+AM_INIT_AUTOMAKE([gnu subdir-objects serial-tests])
diff --git a/poky/meta/recipes-extended/ethtool/ethtool_6.3.bb b/poky/meta/recipes-extended/ethtool/ethtool_6.5.bb
index 504e645966..ef925e16b9 100644
--- a/poky/meta/recipes-extended/ethtool/ethtool_6.3.bb
+++ b/poky/meta/recipes-extended/ethtool/ethtool_6.5.bb
@@ -11,7 +11,7 @@ SRC_URI = "${KERNELORG_MIRROR}/software/network/ethtool/ethtool-${PV}.tar.gz \
file://avoid_parallel_tests.patch \
"
-SRC_URI[sha256sum] = "342d37d3fe19da79d0276c4c69c34c61f1ad8f87b06514d664bf1eeb29bfd525"
+SRC_URI[sha256sum] = "aed41ca58b3129126f18429172064d214191d7e7ef52c6e3f6b2ff7503706c03"
UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/software/network/ethtool/"
diff --git a/poky/meta/recipes-extended/ghostscript/ghostscript/0001-Bug-706897-Copy-pcx-buffer-overrun-fix-from-devices-.patch b/poky/meta/recipes-extended/ghostscript/ghostscript/0001-Bug-706897-Copy-pcx-buffer-overrun-fix-from-devices-.patch
deleted file mode 100644
index b29212fbc6..0000000000
--- a/poky/meta/recipes-extended/ghostscript/ghostscript/0001-Bug-706897-Copy-pcx-buffer-overrun-fix-from-devices-.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From d81b82c70bc1fb9991bb95f1201abb5dea55f57f Mon Sep 17 00:00:00 2001
-From: Chris Liddell <chris.liddell@artifex.com>
-Date: Mon, 17 Jul 2023 14:06:37 +0100
-Subject: [PATCH] Bug 706897: Copy pcx buffer overrun fix from
- devices/gdevpcx.c
-
-Bounds check the buffer, before dereferencing the pointer.
-
-CVE: CVE-2023-38559
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
----
- base/gdevdevn.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/base/gdevdevn.c b/base/gdevdevn.c
-index 7b14d9c71..6351fb77a 100644
---- a/base/gdevdevn.c
-+++ b/base/gdevdevn.c
-@@ -1983,7 +1983,7 @@ devn_pcx_write_rle(const byte * from, const byte * end, int step, gp_file * file
- byte data = *from;
-
- from += step;
-- if (data != *from || from == end) {
-+ if (from >= end || data != *from) {
- if (data >= 0xc0)
- gp_fputc(0xc1, file);
- } else {
---
-2.34.1
-
diff --git a/poky/meta/recipes-extended/ghostscript/ghostscript_10.01.2.bb b/poky/meta/recipes-extended/ghostscript/ghostscript_10.02.0.bb
index 434170e34d..4bad0f86e1 100644
--- a/poky/meta/recipes-extended/ghostscript/ghostscript_10.01.2.bb
+++ b/poky/meta/recipes-extended/ghostscript/ghostscript_10.02.0.bb
@@ -25,11 +25,10 @@ def gs_verdir(v):
SRC_URI = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${@gs_verdir("${PV}")}/${BPN}-${PV}.tar.gz \
file://ghostscript-9.16-Werror-return-type.patch \
file://avoid-host-contamination.patch \
- file://0001-Bug-706897-Copy-pcx-buffer-overrun-fix-from-devices-.patch \
file://configure.ac-add-option-to-explicitly-disable-neon.patch \
-"
+ "
-SRC_URI[sha256sum] = "a4cd61a07fec161bee35da0211a5e5cde8ff8a0aaf942fc0176715e499d21661"
+SRC_URI[sha256sum] = "e54062f166708d84ca82de9f8304a04344466080f936118b88082bd55ed6dc97"
PACKAGECONFIG ??= ""
PACKAGECONFIG[gtk] = "--enable-gtk,--disable-gtk,gtk+3"
diff --git a/poky/meta/recipes-extended/go-examples/go-helloworld_0.1.bb b/poky/meta/recipes-extended/go-examples/go-helloworld_0.1.bb
index ce6ec08c59..98cd4d8103 100644
--- a/poky/meta/recipes-extended/go-examples/go-helloworld_0.1.bb
+++ b/poky/meta/recipes-extended/go-examples/go-helloworld_0.1.bb
@@ -6,7 +6,7 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SRC_URI = "git://go.googlesource.com/example;branch=master;protocol=https"
-SRCREV = "5bec756976671f30903223ec46ff8a70dced4954"
+SRCREV = "d9923f6970e9ba7e0d23aa9448ead71ea57235ae"
UPSTREAM_CHECK_COMMITS = "1"
GO_IMPORT = "golang.org/x/example"
diff --git a/poky/meta/recipes-extended/groff/files/0001-build-Fix-Savannah-64681-webpage.ps-deps.patch b/poky/meta/recipes-extended/groff/files/0001-build-Fix-Savannah-64681-webpage.ps-deps.patch
new file mode 100644
index 0000000000..eae5dc9998
--- /dev/null
+++ b/poky/meta/recipes-extended/groff/files/0001-build-Fix-Savannah-64681-webpage.ps-deps.patch
@@ -0,0 +1,51 @@
+From c75965053124149381ada3c394da74be078076cf Mon Sep 17 00:00:00 2001
+From: "G. Branden Robinson" <g.branden.robinson@gmail.com>
+Date: Sat, 16 Sep 2023 16:28:00 -0500
+Subject: [PATCH] [build]: Fix Savannah #64681 (webpage.ps deps).
+
+* doc/doc.am (doc/webpage.ps, doc/webpage.html): Update and parallelize
+ target dependencies. Resolve race by requiring "grn" and "soelim" to
+ be built first. Also add dependency on `$(TMAC_PACKAGE_MS)`.
+
+Fixes <https://savannah.gnu.org/bugs/?64681>. Thanks to Alexander
+Kanavin for the report.
+
+ANNOUNCE: Acknowledge Alexander.
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ doc/doc.am | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/doc/doc.am b/doc/doc.am
+index cddc51907..d3c9ab6b7 100644
+--- a/doc/doc.am
++++ b/doc/doc.am
+@@ -346,6 +346,9 @@ doc/pic.ps: $(doc_srcdir)/pic.ms eqn pic tbl
+ $(GROFF_V)$(MKDIR_P) `dirname $@` \
+ && $(DOC_GROFF) -pet -Tps -ms $(doc_srcdir)/pic.ms >$@
+
++# groff(1)'s `-I` implies `-g` and `-s`, so we must depend on grn and
++# soelim even though the document doesn't require them.
++doc/webpage.ps: grn soelim
+ doc/webpage.ps: $(DOC_GNU_EPS) tmac/www.tmac tbl
+ doc/webpage.ps: $(doc_srcdir)/webpage.ms
+ $(GROFF_V)$(MKDIR_P) `dirname $@` \
+@@ -365,11 +368,12 @@ doc/pic.html: $(doc_srcdir)/pic.ms
+ && $(DOC_GROFF) -pet -P-Ipic -P-Dimg -P-jpic -Thtml -ms \
+ $(doc_srcdir)/pic.ms > pic.html
+
+-doc/webpage.html: tbl
+-doc/webpage.html: tmac/www.tmac
+-doc/webpage.html: $(DOC_GNU_EPS)
++# groff(1)'s `-I` implies `-g` and `-s`, so we must depend on grn and
++# soelim even though the document doesn't require them.
++doc/webpage.html: grn soelim
++doc/webpage.html: $(DOC_GNU_EPS) tmac/www.tmac tbl
+ doc/webpage.html: $(doc_srcdir)/groff.css
+-doc/webpage.html: $(doc_srcdir)/webpage.ms
++doc/webpage.html: $(doc_srcdir)/webpage.ms $(TMAC_PACKAGE_MS)
+ $(GROFF_V)$(MKDIR_P) $(doc_builddir) \
+ && cd $(doc_builddir) \
+ && $(DOC_GROFF) -t -I $(doc_srcdir) -P-jwebpage -P-nrb \
diff --git a/poky/meta/recipes-extended/groff/files/0001-build-meintro_fr.ps-depends-on-tbl.patch b/poky/meta/recipes-extended/groff/files/0001-build-meintro_fr.ps-depends-on-tbl.patch
new file mode 100644
index 0000000000..3e81b86ac8
--- /dev/null
+++ b/poky/meta/recipes-extended/groff/files/0001-build-meintro_fr.ps-depends-on-tbl.patch
@@ -0,0 +1,31 @@
+From f21e9f13beb57a1e0666edf9693d7c83f2189897 Mon Sep 17 00:00:00 2001
+From: "G. Branden Robinson" <g.branden.robinson@gmail.com>
+Date: Fri, 22 Sep 2023 01:27:57 -0500
+Subject: [PATCH] [build]: meintro_fr.ps depends on tbl.
+
+* doc/doc.am (doc/meintro_fr.ps): Depend on tbl, resolving race in
+ sufficiently parallelized builds. Overlooked in commit 92349ae223,
+ 2022-05-30.
+
+Fixes <https://savannah.gnu.org/bugs/?64695>. Thanks to Alexander
+Kanavin for the report.
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ doc/doc.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/doc/doc.am b/doc/doc.am
+index d3c9ab6b7..0f95c7774 100644
+--- a/doc/doc.am
++++ b/doc/doc.am
+@@ -334,7 +334,7 @@ SUFFIXES += .me.in .me
+
+ # Use '-K utf8', not '-k', in case 'configure' didn't find uchardet.
+ # The French translation uses tbl; its English counterpart does not.
+-doc/meintro_fr.ps: doc/meintro_fr.me preconv
++doc/meintro_fr.ps: doc/meintro_fr.me preconv tbl
+ $(GROFF_V)$(MKDIR_P) `dirname $@` \
+ && $(DOC_GROFF) -K utf8 -t -Tps -me -mfr $< >$@
+
diff --git a/poky/meta/recipes-extended/groff/groff_1.23.0.bb b/poky/meta/recipes-extended/groff/groff_1.23.0.bb
index 1dcd0bb605..0fc4f831d8 100644
--- a/poky/meta/recipes-extended/groff/groff_1.23.0.bb
+++ b/poky/meta/recipes-extended/groff/groff_1.23.0.bb
@@ -10,6 +10,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
SRC_URI = "${GNU_MIRROR}/groff/groff-${PV}.tar.gz \
file://groff-not-search-fonts-on-build-host.patch \
file://0001-Make-manpages-mulitlib-identical.patch \
+ file://0001-build-Fix-Savannah-64681-webpage.ps-deps.patch \
+ file://0001-build-meintro_fr.ps-depends-on-tbl.patch \
"
SRC_URI[sha256sum] = "6b9757f592b7518b4902eb6af7e54570bdccba37a871fddb2d30ae3863511c13"
diff --git a/poky/meta/recipes-extended/gzip/gzip-1.12/autoconf-2.73.patch b/poky/meta/recipes-extended/gzip/gzip-1.12/autoconf-2.73.patch
deleted file mode 100644
index 18f992beb8..0000000000
--- a/poky/meta/recipes-extended/gzip/gzip-1.12/autoconf-2.73.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-The gnulib largefile macro needs updating to work with autoconf 2.73. Rather
-than the full code:
-
-https://git.savannah.gnu.org/cgit/gnulib.git/commit/m4/largefile.m4?id=f91f633858cf132e50924224c50d6264a92caabb
-
-Just tweak the exiting code to work with 2.73. The next gzip upgrade should
-update to new gnulib
-
-Upstream-Status: Inappropriate
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-
-Index: findutils-4.9.0/gl/m4/largefile.m4
-===================================================================
---- findutils-4.9.0.orig/m4/largefile.m4
-+++ findutils-4.9.0/m4/largefile.m4
-@@ -26,7 +26,7 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
- # with _TIME_BITS. Also, work around a problem in autoconf <= 2.69:
- # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
- # or configures them incorrectly in some cases.
--m4_version_prereq([2.70], [], [
-+m4_version_prereq([2.73], [], [
-
- # _AC_SYS_LARGEFILE_TEST_INCLUDES
- # -------------------------------
diff --git a/poky/meta/recipes-extended/gzip/gzip-1.12/wrong-path-fix.patch b/poky/meta/recipes-extended/gzip/gzip-1.13/wrong-path-fix.patch
index 7f9e249de8..7f9e249de8 100644
--- a/poky/meta/recipes-extended/gzip/gzip-1.12/wrong-path-fix.patch
+++ b/poky/meta/recipes-extended/gzip/gzip-1.13/wrong-path-fix.patch
diff --git a/poky/meta/recipes-extended/gzip/gzip_1.12.bb b/poky/meta/recipes-extended/gzip/gzip_1.13.bb
index 35eb7c4da2..fd846b30a5 100644
--- a/poky/meta/recipes-extended/gzip/gzip_1.12.bb
+++ b/poky/meta/recipes-extended/gzip/gzip_1.13.bb
@@ -5,12 +5,11 @@ require gzip.inc
LICENSE = "GPL-3.0-or-later"
SRC_URI = "${GNU_MIRROR}/gzip/${BP}.tar.gz \
- file://autoconf-2.73.patch \
file://run-ptest \
- "
+ "
SRC_URI:append:class-target = " file://wrong-path-fix.patch"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \
file://gzip.h;beginline=8;endline=20;md5=6e47caaa630e0c8bf9f1bc8d94a8ed0e"
PROVIDES:append:class-native = " gzip-replacement-native"
@@ -39,4 +38,4 @@ do_install_ptest() {
${B}/tests/Makefile > ${D}${PTEST_PATH}/src/tests/Makefile
}
-SRC_URI[sha256sum] = "5b4fb14d38314e09f2fc8a1c510e7cd540a3ea0e3eb9b0420046b82c3bf41085"
+SRC_URI[sha256sum] = "20fc818aeebae87cdbf209d35141ad9d3cf312b35a5e6be61bfcfbf9eddd212a"
diff --git a/poky/meta/recipes-extended/libarchive/libarchive_3.7.1.bb b/poky/meta/recipes-extended/libarchive/libarchive_3.7.2.bb
index e40c3e7ed0..a09f607fcf 100644
--- a/poky/meta/recipes-extended/libarchive/libarchive_3.7.1.bb
+++ b/poky/meta/recipes-extended/libarchive/libarchive_3.7.2.bb
@@ -32,7 +32,7 @@ SRC_URI = "http://libarchive.org/downloads/libarchive-${PV}.tar.gz"
SRC_URI += "file://configurehack.patch"
UPSTREAM_CHECK_URI = "http://libarchive.org/"
-SRC_URI[sha256sum] = "5d24e40819768f74daf846b99837fc53a3a9dcdf3ce1c2003fe0596db850f0f0"
+SRC_URI[sha256sum] = "df404eb7222cf30b4f8f93828677890a2986b66ff8bf39dac32a804e96ddf104"
CVE_STATUS[CVE-2023-30571] = "upstream-wontfix: upstream has documented that reported function is not thread-safe"
diff --git a/poky/meta/recipes-extended/libsolv/libsolv_0.7.24.bb b/poky/meta/recipes-extended/libsolv/libsolv_0.7.25.bb
index 7c8f1fd372..69cb3f7996 100644
--- a/poky/meta/recipes-extended/libsolv/libsolv_0.7.24.bb
+++ b/poky/meta/recipes-extended/libsolv/libsolv_0.7.25.bb
@@ -6,13 +6,13 @@ SECTION = "devel"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.BSD;md5=62272bd11c97396d4aaf1c41bc11f7d8"
-DEPENDS = "expat zlib"
+DEPENDS = "expat zlib zstd"
SRC_URI = "git://github.com/openSUSE/libsolv.git;branch=master;protocol=https \
file://0001-utils-Conside-musl-when-wrapping-qsort_r.patch \
"
-SRCREV = "4d05dca3974156faf2f025ca4a82b68904848307"
+SRCREV = "f1be8bf3dcc7dc14d331adbc97f337fa08e641c9"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
@@ -23,7 +23,7 @@ inherit cmake
PACKAGECONFIG ??= "${@bb.utils.contains('PACKAGE_CLASSES','package_rpm','rpm','',d)}"
PACKAGECONFIG[rpm] = "-DENABLE_RPMMD=ON -DENABLE_RPMDB=ON,,rpm"
-EXTRA_OECMAKE = "-DMULTI_SEMANTICS=ON -DENABLE_COMPLEX_DEPS=ON"
+EXTRA_OECMAKE = "-DMULTI_SEMANTICS=ON -DENABLE_COMPLEX_DEPS=ON -DENABLE_ZSTD_COMPRESSION=ON"
PACKAGES =+ "${PN}-tools ${PN}ext"
diff --git a/poky/meta/recipes-extended/man-pages/man-pages_6.04.bb b/poky/meta/recipes-extended/man-pages/man-pages_6.05.01.bb
index fee57e3fbd..2726eded8b 100644
--- a/poky/meta/recipes-extended/man-pages/man-pages_6.04.bb
+++ b/poky/meta/recipes-extended/man-pages/man-pages_6.05.01.bb
@@ -4,7 +4,7 @@ SECTION = "console/utils"
HOMEPAGE = "http://www.kernel.org/pub/linux/docs/man-pages"
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"
-LIC_FILES_CHKSUM = "file://README;md5=5b7d7488344f5af8841dc13aaec49cdf \
+LIC_FILES_CHKSUM = "file://README;md5=cbd51cd3dd298230df8ddd4637e65c37 \
file://LICENSES/BSD-2-Clause.txt;md5=d0f280d1058e77e66264a9b9e10e6c89 \
file://LICENSES/BSD-3-Clause.txt;md5=71f739ef75581cae312e8c711bcdab16 \
file://LICENSES/BSD-4-Clause-UC.txt;md5=1da3cf8ad50cd8d5d1de3cfc53196d01 \
@@ -16,7 +16,7 @@ LIC_FILES_CHKSUM = "file://README;md5=5b7d7488344f5af8841dc13aaec49cdf \
"
SRC_URI = "${KERNELORG_MIRROR}/linux/docs/${BPN}/${BP}.tar.gz"
-SRC_URI[sha256sum] = "590623b99bf1f8ee958483c35cc0aaef2363e42998c4d927d1f705890d15d51e"
+SRC_URI[sha256sum] = "b2dd44ca0342b50923291f06bdba38c42438e10c04843ce1f731cf3f50631e0a"
inherit manpages
diff --git a/poky/meta/recipes-extended/mingetty/mingetty_1.08.bb b/poky/meta/recipes-extended/mingetty/mingetty_1.08.bb
index 7a16c65299..aa5a989df2 100644
--- a/poky/meta/recipes-extended/mingetty/mingetty_1.08.bb
+++ b/poky/meta/recipes-extended/mingetty/mingetty_1.08.bb
@@ -3,7 +3,6 @@ SECTION = "console/utils"
HOMEPAGE = "http://sourceforge.net/projects/mingetty/"
DESCRIPTION = "This is a small Linux console getty that is started on the Linux text console, asks for a login name and then tranfers over to login directory. Is extended to allow automatic login and starting any app."
LICENSE = "GPL-2.0-only"
-PR = "r3"
LIC_FILES_CHKSUM = "file://COPYING;md5=0c56db0143f4f80c369ee3af7425af6e"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz"
diff --git a/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb b/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
index b66617fbf6..e9531fa838 100644
--- a/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
+++ b/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
@@ -4,7 +4,6 @@
SUMMARY = "Standard full-featured Linux system"
DESCRIPTION = "Package group bringing in packages needed for a more traditional full-featured Linux system"
-PR = "r6"
inherit packagegroup
diff --git a/poky/meta/recipes-extended/procps/procps/0001-po-fr.po-address-failures-with-gettext-0.22.patch b/poky/meta/recipes-extended/procps/procps/0001-po-fr.po-address-failures-with-gettext-0.22.patch
deleted file mode 100644
index 805517900d..0000000000
--- a/poky/meta/recipes-extended/procps/procps/0001-po-fr.po-address-failures-with-gettext-0.22.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 1d685477c254e5b10a81e32c87786e0f001b70f1 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Mon, 24 Jul 2023 18:06:51 +0200
-Subject: [PATCH] po/fr.po: address failures with gettext 0.22
-
-Specifically:
-| fr.1po:3027: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: In the directive number 4, the argument size specifier is invalid.
-| fr.1po:3820: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: In the directive number 1, the argument size specifier is invalid.
-
-Upstream-Status: Submitted [https://gitlab.com/procps-ng/procps/-/merge_requests/199]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- po/fr.po | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/po/fr.po b/po/fr.po
-index 715c2b69..700834e1 100644
---- a/po/fr.po
-+++ b/po/fr.po
-@@ -3800,7 +3800,7 @@ msgid ""
- "Type 'q' or <Esc> to continue "
- msgstr ""
- "Aide pour les commandes interactives~2 - %s\n"
--"Fenêtre ~1%s~6: ~1Mode cumulatif ~3%s~2. ~1Système~6: ~1Délai ~3%.1lf "
-+"Fenêtre ~1%s~6: ~1Mode cumulatif ~3%s~2. ~1Système~6: ~1Délai ~3%.1f "
- "secs~2; ~1Mode sûr ~3%s~2.\n"
- "\n"
- " Z~5,~1B~5,E,e Global: «~1Z~2» couleurs; «~1B~2» gras; «~1E~2»/«~1e~2» "
-@@ -4723,7 +4723,7 @@ msgstr " -v, --version affiche les informations de version et sort\n"
- #: src/watch.c:486
- #, c-format
- msgid "Every %.1fs: "
--msgstr "Toutes les %.1lfs: "
-+msgstr "Toutes les %.1fs: "
-
- #: src/watch.c:487
- #, c-format
diff --git a/poky/meta/recipes-extended/procps/procps/0001-src-w.c-use-utmp.h-only.patch b/poky/meta/recipes-extended/procps/procps/0001-src-w.c-use-utmp.h-only.patch
deleted file mode 100644
index 23c91ec775..0000000000
--- a/poky/meta/recipes-extended/procps/procps/0001-src-w.c-use-utmp.h-only.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From c41b3be62fbb78e0939fddaebad519360cbd8702 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Mon, 6 Mar 2023 09:27:57 +0100
-Subject: [PATCH] src/w.c: use only utmpx
-
-Nowadays this works both on musl and glibc systems, however on musl
-utmp.h is also needed to avoid the following failure:
-
-| ../git/src/w.c: In function 'print_from':
-| ../git/src/w.c:73:28: error: '__UT_HOSTSIZE' undeclared (first use in this function); did you mean 'UT_HOSTSIZE'?
-| 73 | # define UT_HOSTSIZE __UT_HOSTSIZE
-| | ^~~~~~~~~~~~~
-| ../git/src/w.c:233:64: note: in expansion of macro 'UT_HOSTSIZE'
-| 233 | print_display_or_interface(u->ut_host, UT_HOSTSIZE, fromlen - len);
-| | ^~~~~~~~~~~
-|
-
-It is caused by including utmpx.h, but not utmp.h, which (on musl)
-lacks the needed definitions.
-
-I have verified that both musl and glibc based builds continue to work.
-
-Upstream-Status: Submitted [https://gitlab.com/procps-ng/procps/-/merge_requests/171]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
-
----
- src/w.c | 17 ++---------------
- 1 file changed, 2 insertions(+), 15 deletions(-)
-
-diff --git a/src/w.c b/src/w.c
-index 5e878f04..912c5df3 100644
---- a/src/w.c
-+++ b/src/w.c
-@@ -46,11 +46,8 @@
- #include <termios.h>
- #include <time.h>
- #include <unistd.h>
--#ifdef HAVE_UTMPX_H
--# include <utmpx.h>
--#else
--# include <utmp.h>
--#endif
-+#include <utmp.h>
-+#include <utmpx.h>
- #include <arpa/inet.h>
-
- #include "c.h"
-@@ -63,17 +60,7 @@
- static int ignoreuser = 0; /* for '-u' */
- static int oldstyle = 0; /* for '-o' */
-
--#ifdef HAVE_UTMPX_H
- typedef struct utmpx utmp_t;
--#else
--typedef struct utmp utmp_t;
--#endif
--
--#if !defined(UT_HOSTSIZE) || defined(__UT_HOSTSIZE)
--# define UT_HOSTSIZE __UT_HOSTSIZE
--# define UT_LINESIZE __UT_LINESIZE
--# define UT_NAMESIZE __UT_NAMESIZE
--#endif
-
- #ifdef W_SHOWFROM
- # define FROM_STRING "on"
diff --git a/poky/meta/recipes-extended/procps/procps/CVE-2023-4016.patch b/poky/meta/recipes-extended/procps/procps/CVE-2023-4016.patch
deleted file mode 100644
index 202fea91f1..0000000000
--- a/poky/meta/recipes-extended/procps/procps/CVE-2023-4016.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 2c933ecba3bb1d3041a5a7a53a7b4078a6003413 Mon Sep 17 00:00:00 2001
-From: Craig Small <csmall@dropbear.xyz>
-Date: Thu, 10 Aug 2023 21:18:38 +1000
-Subject: [PATCH] ps: Fix possible buffer overflow in -C option
-
-ps allocates memory using malloc(length of arg * len of struct).
-In certain strange circumstances, the arg length could be very large
-and the multiplecation will overflow, allocating a small amount of
-memory.
-
-Subsequent strncpy() will then write into unallocated memory.
-The fix is to use calloc. It's slower but this is a one-time
-allocation. Other malloc(x * y) calls have also been replaced
-by calloc(x, y)
-
-References:
- https://www.freelists.org/post/procps/ps-buffer-overflow-CVE-20234016
- https://nvd.nist.gov/vuln/detail/CVE-2023-4016
- https://gitlab.com/procps-ng/procps/-/issues/297
- https://bugs.debian.org/1042887
-
-Signed-off-by: Craig Small <csmall@dropbear.xyz>
-
-CVE: CVE-2023-4016
-Upstream-Status: Backport [https://gitlab.com/procps-ng/procps/-/commit/2c933ecba3bb1d3041a5a7a53a7b4078a6003413]
-Signed-off-by: Ross Burton <ross.burton@arm.com>
----
- NEWS | 1 +
- src/ps/parser.c | 8 ++++----
- 2 files changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/src/ps/parser.c b/src/ps/parser.c
-index 248aa741..15873dfa 100644
---- a/src/ps/parser.c
-+++ b/src/ps/parser.c
-@@ -189,7 +189,6 @@ static const char *parse_list(const char *arg, const char *(*parse_fn)(char *, s
- const char *err; /* error code that could or did happen */
- /*** prepare to operate ***/
- node = xmalloc(sizeof(selection_node));
-- node->u = xmalloc(strlen(arg)*sizeof(sel_union)); /* waste is insignificant */
- node->n = 0;
- buf = strdup(arg);
- /*** sanity check and count items ***/
-@@ -210,6 +209,7 @@ static const char *parse_list(const char *arg, const char *(*parse_fn)(char *, s
- } while (*++walk);
- if(need_item) goto parse_error;
- node->n = items;
-+ node->u = xcalloc(items, sizeof(sel_union));
- /*** actually parse the list ***/
- walk = buf;
- while(items--){
-@@ -1050,15 +1050,15 @@ static const char *parse_trailing_pids(void){
- thisarg = ps_argc - 1; /* we must be at the end now */
-
- pidnode = xmalloc(sizeof(selection_node));
-- pidnode->u = xmalloc(i*sizeof(sel_union)); /* waste is insignificant */
-+ pidnode->u = xcalloc(i, sizeof(sel_union)); /* waste is insignificant */
- pidnode->n = 0;
-
- grpnode = xmalloc(sizeof(selection_node));
-- grpnode->u = xmalloc(i*sizeof(sel_union)); /* waste is insignificant */
-+ grpnode->u = xcalloc(i,sizeof(sel_union)); /* waste is insignificant */
- grpnode->n = 0;
-
- sidnode = xmalloc(sizeof(selection_node));
-- sidnode->u = xmalloc(i*sizeof(sel_union)); /* waste is insignificant */
-+ sidnode->u = xcalloc(i, sizeof(sel_union)); /* waste is insignificant */
- sidnode->n = 0;
-
- while(i--){
---
-GitLab
-
diff --git a/poky/meta/recipes-extended/procps/procps_4.0.3.bb b/poky/meta/recipes-extended/procps/procps_4.0.4.bb
index 9ef679c6bd..800384f22f 100644
--- a/poky/meta/recipes-extended/procps/procps_4.0.3.bb
+++ b/poky/meta/recipes-extended/procps/procps_4.0.4.bb
@@ -14,11 +14,8 @@ inherit autotools gettext pkgconfig update-alternatives
SRC_URI = "git://gitlab.com/procps-ng/procps.git;protocol=https;branch=master \
file://sysctl.conf \
- file://0001-src-w.c-use-utmp.h-only.patch \
- file://0001-po-fr.po-address-failures-with-gettext-0.22.patch \
- file://CVE-2023-4016.patch \
"
-SRCREV = "806eb270f217ff7e1e745c7bda2b002b5be74be4"
+SRCREV = "4ddcef2fd843170c8e2d59a83042978f41037a2b"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-extended/screen/screen/0001-configure-Add-needed-system-headers-in-checks.patch b/poky/meta/recipes-extended/screen/screen/0001-configure-Add-needed-system-headers-in-checks.patch
deleted file mode 100644
index 80659942c7..0000000000
--- a/poky/meta/recipes-extended/screen/screen/0001-configure-Add-needed-system-headers-in-checks.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-From 4e102de2e6204c1d8e8be00bb5ffd4587e70350c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 15 Aug 2022 10:35:53 -0700
-Subject: [PATCH] configure: Add needed system headers in checks
-
-Newer compilers throw warnings when a funciton is used with implicit
-declaration and enabling -Werror can silently fail these tests and
-result in wrong configure results. Therefore add the needed headers in
-the AC_TRY_LINK macros
-
- * configure.ac: Add missing system headers in AC_TRY_LINK.
-
-Upstream-Status: Submitted [https://lists.gnu.org/archive/html/screen-devel/2022-08/msg00000.html]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 57 +++++++++++++++++++++++++++++++++++++++-------------
- 1 file changed, 43 insertions(+), 14 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index c0f02df..d308079 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -233,6 +233,7 @@ AC_CHECKING(BSD job jontrol)
- AC_TRY_LINK(
- [#include <sys/types.h>
- #include <sys/ioctl.h>
-+#include <unistd.h>
- ], [
- #ifdef POSIX
- tcsetpgrp(0, 0);
-@@ -250,12 +251,16 @@ dnl
- dnl **** setresuid(), setreuid(), seteuid() ****
- dnl
- AC_CHECKING(setresuid)
--AC_TRY_LINK(,[
--setresuid(0, 0, 0);
-+AC_TRY_LINK([
-+#include <unistd.h>
-+],[
-+return setresuid(0, 0, 0);
- ], AC_DEFINE(HAVE_SETRESUID))
- AC_CHECKING(setreuid)
--AC_TRY_LINK(,[
--setreuid(0, 0);
-+AC_TRY_LINK([
-+#include <unistd.h>
-+],[
-+return setreuid(0, 0);
- ], AC_DEFINE(HAVE_SETREUID))
- dnl
- dnl seteuid() check:
-@@ -274,7 +279,9 @@ seteuid(0);
-
- dnl execvpe
- AC_CHECKING(execvpe)
--AC_TRY_LINK(,[
-+AC_TRY_LINK([
-+ #include <unistd.h>
-+],[
- execvpe(0, 0, 0);
- ], AC_DEFINE(HAVE_EXECVPE)
- CFLAGS="$CFLAGS -D_GNU_SOURCE")
-@@ -284,10 +291,18 @@ dnl **** select() ****
- dnl
-
- AC_CHECKING(select)
--AC_TRY_LINK(,[select(0, 0, 0, 0, 0);],,
-+AC_TRY_LINK([
-+ #include <sys/select.h>
-+],[
-+ select(0, 0, 0, 0, 0);
-+],,
- LIBS="$LIBS -lnet -lnsl"
- AC_CHECKING(select with $LIBS)
--AC_TRY_LINK(,[select(0, 0, 0, 0, 0);],,
-+AC_TRY_LINK([
-+ #include <sys/select.h>
-+],[
-+ select(0, 0, 0, 0, 0);
-+],,
- AC_MSG_ERROR(!!! no select - no screen))
- )
- dnl
-@@ -624,11 +639,19 @@ dnl
- dnl **** termcap or terminfo ****
- dnl
- AC_CHECKING(for tgetent)
--AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
-+AC_TRY_LINK([
-+ #include <curses.h>
-+ #include <term.h>
-+],[
-+ tgetent((char *)0, (char *)0);
-+],,
- olibs="$LIBS"
- LIBS="-lcurses $olibs"
- AC_CHECKING(libcurses)
--AC_TRY_LINK(,[
-+AC_TRY_LINK([
-+ #include <curses.h>
-+ #include <term.h>
-+],[
- #ifdef __hpux
- __sorry_hpux_libcurses_is_totally_broken_in_10_10();
- #else
-@@ -871,7 +894,7 @@ test -f /usr/lib/libutil.a && LIBS="$LIBS -lutil"
- fi
-
- AC_CHECKING(getloadavg)
--AC_TRY_LINK(,[getloadavg((double *)0, 0);],
-+AC_TRY_LINK([#include <stdlib.h>],[getloadavg((double *)0, 0);],
- AC_DEFINE(LOADAV_GETLOADAVG) load=1,
- if test "$cross_compiling" = no && test -f /usr/lib/libkvm.a ; then
- olibs="$LIBS"
-@@ -1109,10 +1132,10 @@ AC_CHECKING(IRIX sun library)
- AC_TRY_LINK(,,,LIBS="$oldlibs")
-
- AC_CHECKING(syslog)
--AC_TRY_LINK(,[closelog();], , [oldlibs="$LIBS"
-+AC_TRY_LINK([#include <syslog.h>],[closelog();], , [oldlibs="$LIBS"
- LIBS="$LIBS -lbsd"
- AC_CHECKING(syslog in libbsd.a)
--AC_TRY_LINK(, [closelog();], AC_NOTE(- found.), [LIBS="$oldlibs"
-+AC_TRY_LINK([#include <syslog.h>], [closelog();], AC_NOTE(- found.), [LIBS="$oldlibs"
- AC_NOTE(- bad news: syslog missing.) AC_DEFINE(NOSYSLOG)])])
-
- AC_EGREP_CPP(YES_IS_DEFINED,
-@@ -1149,7 +1172,7 @@ AC_CHECKING(getspnam)
- AC_TRY_LINK([#include <shadow.h>], [getspnam("x");],AC_DEFINE(SHADOWPW))
-
- AC_CHECKING(getttyent)
--AC_TRY_LINK(,[getttyent();], AC_DEFINE(GETTTYENT))
-+AC_TRY_LINK([#include <ttyent.h>],[getttyent();], AC_DEFINE(GETTTYENT))
-
- AC_CHECKING(fdwalk)
- AC_TRY_LINK([#include <stdlib.h>], [fdwalk(NULL, NULL);],AC_DEFINE(HAVE_FDWALK))
-@@ -1204,7 +1227,13 @@ main() {
- AC_SYS_LONG_FILE_NAMES
-
- AC_MSG_CHECKING(for vsprintf)
--AC_TRY_LINK([#include <stdarg.h>],[va_list valist; vsprintf(0,0,valist);], AC_MSG_RESULT(yes);AC_DEFINE(USEVARARGS), AC_MSG_RESULT(no))
-+AC_TRY_LINK([
-+ #include <stdarg.h>
-+ #include <stdio.h>
-+],[
-+ va_list valist;
-+ vsprintf(0,0,valist);
-+], AC_MSG_RESULT(yes);AC_DEFINE(USEVARARGS), AC_MSG_RESULT(no))
-
- AC_HEADER_DIRENT
-
diff --git a/poky/meta/recipes-extended/screen/screen/signal-permission.patch b/poky/meta/recipes-extended/screen/screen/signal-permission.patch
deleted file mode 100644
index 77dc649090..0000000000
--- a/poky/meta/recipes-extended/screen/screen/signal-permission.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From e9ad41bfedb4537a6f0de20f00b27c7739f168f7 Mon Sep 17 00:00:00 2001
-From: Alexander Naumov <alexander_naumov@opensuse.org>
-Date: Mon, 30 Jan 2023 17:22:25 +0200
-Subject: fix: missing signal sending permission check on failed query messages
-
-Signed-off-by: Alexander Naumov <alexander_naumov@opensuse.org>
-
-CVE: CVE-2023-24626
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
----
- src/socket.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/src/socket.c b/src/socket.c
-index 147dc54..54d8cb8 100644
---- a/socket.c
-+++ b/socket.c
-@@ -1285,11 +1285,16 @@ ReceiveMsg()
- else
- queryflag = -1;
-
-- Kill(m.m.command.apid,
-+ if (CheckPid(m.m.command.apid)) {
-+ Msg(0, "Query attempt with bad pid(%d)!", m.m.command.apid);
-+ }
-+ else {
-+ Kill(m.m.command.apid,
- (queryflag >= 0)
- ? SIGCONT
- : SIG_BYE); /* Send SIG_BYE if an error happened */
-- queryflag = -1;
-+ queryflag = -1;
-+ }
- }
- break;
- case MSG_COMMAND:
---
-cgit v1.1
-
diff --git a/poky/meta/recipes-extended/screen/screen_4.9.0.bb b/poky/meta/recipes-extended/screen/screen_4.9.1.bb
index 235cd8c6cf..7b040e6b57 100644
--- a/poky/meta/recipes-extended/screen/screen_4.9.0.bb
+++ b/poky/meta/recipes-extended/screen/screen_4.9.1.bb
@@ -21,11 +21,9 @@ SRC_URI = "${GNU_MIRROR}/screen/screen-${PV}.tar.gz \
file://0002-comm.h-now-depends-on-term.h.patch \
file://0001-fix-for-multijob-build.patch \
file://0001-Remove-more-compatibility-stuff.patch \
- file://0001-configure-Add-needed-system-headers-in-checks.patch \
- file://signal-permission.patch \
"
-SRC_URI[sha256sum] = "f9335281bb4d1538ed078df78a20c2f39d3af9a4e91c57d084271e0289c730f4"
+SRC_URI[sha256sum] = "26cef3e3c42571c0d484ad6faf110c5c15091fbf872b06fa7aa4766c7405ac69"
inherit autotools texinfo
diff --git a/poky/meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-login.patch b/poky/meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-login.patch
index 37ba5f3dc2..89f9c05c8d 100644
--- a/poky/meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-login.patch
+++ b/poky/meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-login.patch
@@ -7,7 +7,7 @@ Date: Tue Dec 27 17:40:17 2022 +0530
Login timed out message prints only first few bytes when write is immediately followed by exit.
Calling exit from new handler provides enough time to display full message.
-Upstream-Status: Accepted [https://github.com/shadow-maint/shadow/commit/670cae834827a8f794e6f7464fa57790d911b63c]
+Upstream-Status: Backport [https://github.com/shadow-maint/shadow/commit/670cae834827a8f794e6f7464fa57790d911b63c]
diff --git a/src/login.c b/src/login.c
index 116e2cb3..c55f4de0 100644
diff --git a/poky/meta/recipes-extended/shadow/shadow-securetty_4.6.bb b/poky/meta/recipes-extended/shadow/shadow-securetty_4.6.bb
index c78f888cf4..fe51ea1874 100644
--- a/poky/meta/recipes-extended/shadow/shadow-securetty_4.6.bb
+++ b/poky/meta/recipes-extended/shadow/shadow-securetty_4.6.bb
@@ -5,7 +5,6 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
INHIBIT_DEFAULT_DEPS = "1"
-PR = "r3"
SRC_URI = "file://securetty"
diff --git a/poky/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb b/poky/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
index 6580bd9166..00ab58b38c 100644
--- a/poky/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
+++ b/poky/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
@@ -7,7 +7,6 @@ LIC_FILES_CHKSUM = "file://login.defs_shadow-sysroot;endline=1;md5=ceddfb61608e4
DEPENDS = "base-passwd"
-PR = "r3"
# The sole purpose of this recipe is to provide the /etc/login.defs
# file for the target sysroot - needed so the shadow-native utilities
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.16.04.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.16.05.bb
index af8433975b..1a1e9e4057 100644
--- a/poky/meta/recipes-extended/stress-ng/stress-ng_0.16.04.bb
+++ b/poky/meta/recipes-extended/stress-ng/stress-ng_0.16.05.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://github.com/ColinIanKing/stress-ng.git;protocol=https;branch=master \
"
-SRCREV = "95777d7cf32de9fc88c452a968ae2ae23ed269c2"
+SRCREV = "aea6f3306f4676a7f7e8d8c507f811ef3d0244c5"
S = "${WORKDIR}/git"
DEPENDS = "coreutils-native libbsd"
diff --git a/poky/meta/recipes-extended/sysstat/sysstat/0001-configure.in-remove-check-for-chkconfig.patch b/poky/meta/recipes-extended/sysstat/sysstat/0001-configure.in-remove-check-for-chkconfig.patch
index 4067bb983b..84383f955f 100644
--- a/poky/meta/recipes-extended/sysstat/sysstat/0001-configure.in-remove-check-for-chkconfig.patch
+++ b/poky/meta/recipes-extended/sysstat/sysstat/0001-configure.in-remove-check-for-chkconfig.patch
@@ -1,7 +1,7 @@
From 1590cc614aaf0fb81cd804414d6c9d5a9227352c Mon Sep 17 00:00:00 2001
From: Wenlin Kang <wenlin.kang@windriver.com>
Date: Tue, 5 Nov 2019 16:16:44 +0800
-Subject: [PATCH] configure.in: remove check for chkconfig
+Subject: [PATCH] configure.ac: remove check for chkconfig
chkconfig can't work on cross-platform, so should remove check for it.
@@ -9,13 +9,13 @@ Upstream-Status: Inappropriate [ embedded specific ]
Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
---
- configure.in | 3 ++-
+ configure.ac | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
-diff --git a/configure.in b/configure.in
+diff --git a/configure.ac b/configure.ac
index 48b9a31..cedeb43 100644
---- a/configure.in
-+++ b/configure.in
+--- a/configure.ac
++++ b/configure.ac
@@ -42,7 +42,8 @@ AC_SUBST(VER_JSON)
AC_SUBST(VER_XML)
diff --git a/poky/meta/recipes-extended/sysstat/sysstat/CVE-2023-33204.patch b/poky/meta/recipes-extended/sysstat/sysstat/CVE-2023-33204.patch
deleted file mode 100644
index a7b51f3217..0000000000
--- a/poky/meta/recipes-extended/sysstat/sysstat/CVE-2023-33204.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 0764cb56df4a5afdf04980c9eb6735f789f5aa42 Mon Sep 17 00:00:00 2001
-From: Pavel Kopylov <pkopylov@cloudlinux.com>
-Date: Wed, 17 May 2023 11:33:45 +0200
-Subject: [PATCH] Fix an overflow which is still possible for some values.
-
-CVE: CVE-2023-33204
-Upstream-Status: Backport [https://github.com/sysstat/sysstat/commit/954ff2e2673c]
-
-Backport Changes:
-Adopt additional changes as per following merge commit of pull request:
-https://github.com/sysstat/sysstat/commit/6f8dc568e6ab
-
-Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
-Signed-off-by: Sanjay Chitroda <schitrod@cisco.com>
----
- common.c | 14 ++++++++------
- 1 file changed, 8 insertions(+), 6 deletions(-)
-
-diff --git a/common.c b/common.c
-index a3d31a5..138920c 100644
---- a/common.c
-+++ b/common.c
-@@ -447,15 +447,17 @@ int check_dir(char *dirname)
- void check_overflow(unsigned int val1, unsigned int val2,
- unsigned int val3)
- {
-- if ((unsigned long long) val1 * (unsigned long long) val2 *
-- (unsigned long long) val3 > UINT_MAX) {
-+ if ((val1 != 0) && (val2 != 0) && (val3 != 0) &&
-+ (((unsigned long long)UINT_MAX / (unsigned long long)val1 <
-+ (unsigned long long)val2) ||
-+ ((unsigned long long)UINT_MAX / ((unsigned long long)val1 *
-+ (unsigned long long)val2) < (unsigned long long)val3))) {
- #ifdef DEBUG
-- fprintf(stderr, "%s: Overflow detected (%llu). Aborting...\n",
-- __FUNCTION__, (unsigned long long) val1 * (unsigned long long) val2 *
-- (unsigned long long) val3);
-+ fprintf(stderr, "%s: Overflow detected (%u,%u,%u). Aborting...\n",
-+ __FUNCTION__, val1, val2, val3);
- #endif
- exit(4);
-- }
-+ }
- }
-
- #ifndef SOURCE_SADC
diff --git a/poky/meta/recipes-extended/sysstat/sysstat_12.6.2.bb b/poky/meta/recipes-extended/sysstat/sysstat_12.6.2.bb
deleted file mode 100644
index b5014eaefb..0000000000
--- a/poky/meta/recipes-extended/sysstat/sysstat_12.6.2.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require sysstat.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=a23a74b3f4caf9616230789d94217acb"
-
-SRC_URI += "file://0001-configure.in-remove-check-for-chkconfig.patch \
- file://CVE-2023-33204.patch \
- "
-
-SRC_URI[sha256sum] = "3e77134aedaa6fc57d9745da67edfd8990e19adee71ac47196229261c563fb48"
diff --git a/poky/meta/recipes-extended/sysstat/sysstat.inc b/poky/meta/recipes-extended/sysstat/sysstat_12.7.4.bb
index 77337722ea..134fd5cf96 100644
--- a/poky/meta/recipes-extended/sysstat/sysstat.inc
+++ b/poky/meta/recipes-extended/sysstat/sysstat_12.7.4.bb
@@ -1,20 +1,24 @@
SUMMARY = "System performance tools"
DESCRIPTION = "The sysstat utilities are a collection of performance monitoring tools for Linux."
-HOMEPAGE = "http://sebastien.godard.pagesperso-orange.fr/"
+HOMEPAGE = "https://sysstat.github.io/"
LICENSE = "GPL-2.0-or-later"
SECTION = "console/utils"
-SRC_URI = "http://pagesperso-orange.fr/sebastien.godard/${BP}.tar.xz \
+SRC_URI = "git://github.com/sysstat/sysstat.git;protocol=https;branch=master \
file://99_sysstat \
file://sysstat.service \
+ file://0001-configure.in-remove-check-for-chkconfig.patch \
"
-UPSTREAM_CHECK_URI = "http://sebastien.godard.pagesperso-orange.fr/download.html"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a23a74b3f4caf9616230789d94217acb"
+
+SRCREV = "1df0d61306ae826c896a5cf6f665d58c671c0498"
+S = "${WORKDIR}/git"
DEPENDS += "base-passwd"
# autotools-brokensep as this package doesn't use automake
-inherit autotools-brokensep gettext systemd upstream-version-is-even
+inherit autotools-brokensep gettext systemd
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
PACKAGECONFIG[lm-sensors] = "--enable-sensors,--disable-sensors,lmsensors,lmsensors-libsensors"
@@ -69,3 +73,4 @@ pkg_postinst:${PN} () {
FILES:${PN} += "${systemd_system_unitdir} ${nonarch_base_libdir}/systemd"
TARGET_CC_ARCH += "${LDFLAGS}"
+
diff --git a/poky/meta/recipes-extended/tar/tar/0001-tests-fix-TESTSUITE_AT.patch b/poky/meta/recipes-extended/tar/tar/0001-tests-fix-TESTSUITE_AT.patch
new file mode 100644
index 0000000000..27d4d9aebf
--- /dev/null
+++ b/poky/meta/recipes-extended/tar/tar/0001-tests-fix-TESTSUITE_AT.patch
@@ -0,0 +1,228 @@
+From 39849e9d91f477d3fb839f93cd0815d0cb3273e9 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Tue, 18 Jul 2023 09:15:03 -0700
+Subject: tests: fix TESTSUITE_AT
+
+Problem reported by Lukas Javorsky <ljavorsk@redhat.com> in:
+https://lists.gnu.org/r/bug-tar/2023-07/msg00002.html
+* tests/Makefile.am (TESTSUITE_AT): Add exclude17.at, exclude18.at.
+Remove compress.m4; all uses changed. Add a comment saying how
+to rederive this. Sort.
+
+Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/tar.git/commit/?id=39849e9d91f477d3fb839f93cd0815d0cb3273e9]
+---
+ tests/Makefile.am | 93 ++++++++++++++++++++++++++++---------------------------
+ 1 file changed, 48 insertions(+), 45 deletions(-)
+
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 4a8f501..1884b72 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -45,21 +45,24 @@ $(srcdir)/package.m4: $(top_srcdir)/configure.ac
+ ## Test suite. ##
+ ## ------------ ##
+
++# You can generate the body of this macro with the following shell command:
++# LC_ALL=C ls *.at */*.at | sed -e 's/^/ /' -e '$!s/$/\\/'
+ TESTSUITE_AT = \
+- testsuite.at\
+- compress.m4\
+ T-cd.at\
+ T-dir00.at\
+ T-dir01.at\
+ T-empty.at\
++ T-mult.at\
++ T-nest.at\
++ T-nonl.at\
+ T-null.at\
+ T-null2.at\
+ T-rec.at\
+ T-recurse.at\
+ T-zfile.at\
+- T-nonl.at\
+- T-mult.at\
+- T-nest.at\
++ acls01.at\
++ acls02.at\
++ acls03.at\
+ add-file.at\
+ append.at\
+ append01.at\
+@@ -68,14 +71,15 @@ TESTSUITE_AT = \
+ append04.at\
+ append05.at\
+ backup01.at\
+- chtype.at\
+- comprec.at\
+- comperr.at\
++ capabs_raw01.at\
+ checkpoint/defaults.at\
+- checkpoint/interval.at\
+- checkpoint/dot.at\
+ checkpoint/dot-compat.at\
+ checkpoint/dot-int.at\
++ checkpoint/dot.at\
++ checkpoint/interval.at\
++ chtype.at\
++ comperr.at\
++ comprec.at\
+ delete01.at\
+ delete02.at\
+ delete03.at\
+@@ -83,6 +87,8 @@ TESTSUITE_AT = \
+ delete05.at\
+ delete06.at\
+ difflink.at\
++ dirrem01.at\
++ dirrem02.at\
+ exclude.at\
+ exclude01.at\
+ exclude02.at\
+@@ -100,6 +106,8 @@ TESTSUITE_AT = \
+ exclude14.at\
+ exclude15.at\
+ exclude16.at\
++ exclude17.at\
++ exclude18.at\
+ extrac01.at\
+ extrac02.at\
+ extrac03.at\
+@@ -127,11 +135,9 @@ TESTSUITE_AT = \
+ extrac25.at\
+ filerem01.at\
+ filerem02.at\
+- dirrem01.at\
+- dirrem02.at\
+- gzip.at\
+ grow.at\
+- incremental.at\
++ gzip.at\
++ ignfail.at\
+ incr01.at\
+ incr02.at\
+ incr03.at\
+@@ -143,8 +149,8 @@ TESTSUITE_AT = \
+ incr09.at\
+ incr10.at\
+ incr11.at\
++ incremental.at\
+ indexfile.at\
+- ignfail.at\
+ label01.at\
+ label02.at\
+ label03.at\
+@@ -188,22 +194,16 @@ TESTSUITE_AT = \
+ opcomp04.at\
+ opcomp05.at\
+ opcomp06.at\
+- positional01.at\
+- positional02.at\
+- positional03.at\
+ options.at\
+ options02.at\
+ options03.at\
+ owner.at\
+ pipe.at\
+- recurse.at\
++ positional01.at\
++ positional02.at\
++ positional03.at\
+ recurs02.at\
+- rename01.at\
+- rename02.at\
+- rename03.at\
+- rename04.at\
+- rename05.at\
+- rename06.at\
++ recurse.at\
+ remfiles01.at\
+ remfiles02.at\
+ remfiles03.at\
+@@ -226,11 +226,19 @@ TESTSUITE_AT = \
+ remfiles09b.at\
+ remfiles09c.at\
+ remfiles10.at\
++ rename01.at\
++ rename02.at\
++ rename03.at\
++ rename04.at\
++ rename05.at\
++ rename06.at\
+ same-order01.at\
+ same-order02.at\
++ selacl01.at\
++ selnx01.at\
+ shortfile.at\
+- shortupd.at\
+ shortrec.at\
++ shortupd.at\
+ sigpipe.at\
+ sparse01.at\
+ sparse02.at\
+@@ -247,6 +255,13 @@ TESTSUITE_AT = \
+ sptrcreat.at\
+ sptrdiff00.at\
+ sptrdiff01.at\
++ star/gtarfail.at\
++ star/gtarfail2.at\
++ star/multi-fail.at\
++ star/pax-big-10g.at\
++ star/ustar-big-2g.at\
++ star/ustar-big-8g.at\
++ testsuite.at\
+ time01.at\
+ time02.at\
+ truncate.at\
+@@ -255,21 +270,11 @@ TESTSUITE_AT = \
+ update02.at\
+ update03.at\
+ update04.at\
+- volsize.at\
+- volume.at\
+ verbose.at\
+ verify.at\
+ version.at\
+- xform-h.at\
+- xform01.at\
+- xform02.at\
+- xform03.at\
+- star/gtarfail.at\
+- star/gtarfail2.at\
+- star/multi-fail.at\
+- star/ustar-big-2g.at\
+- star/ustar-big-8g.at\
+- star/pax-big-10g.at\
++ volsize.at\
++ volume.at\
+ xattr01.at\
+ xattr02.at\
+ xattr03.at\
+@@ -278,12 +283,10 @@ TESTSUITE_AT = \
+ xattr06.at\
+ xattr07.at\
+ xattr08.at\
+- acls01.at\
+- acls02.at\
+- acls03.at\
+- selnx01.at\
+- selacl01.at\
+- capabs_raw01.at
++ xform-h.at\
++ xform01.at\
++ xform02.at\
++ xform03.at
+
+ distclean-local:
+ -rm -rf download
+@@ -291,7 +294,7 @@ distclean-local:
+ TESTSUITE = $(srcdir)/testsuite
+
+ AUTOTEST = $(AUTOM4TE) --language=autotest
+-$(TESTSUITE): package.m4 $(TESTSUITE_AT)
++$(TESTSUITE): compress.m4 package.m4 $(TESTSUITE_AT)
+ $(AUTOTEST) -I $(srcdir) testsuite.at -o $@.tmp
+ mv $@.tmp $@
+
+--
+cgit v1.1
+
diff --git a/poky/meta/recipes-extended/tar/tar/0002-tests-check-for-recently-fixed-bug.patch b/poky/meta/recipes-extended/tar/tar/0002-tests-check-for-recently-fixed-bug.patch
new file mode 100644
index 0000000000..6cd8c5510f
--- /dev/null
+++ b/poky/meta/recipes-extended/tar/tar/0002-tests-check-for-recently-fixed-bug.patch
@@ -0,0 +1,60 @@
+From 0f0722df45ec520d0dac7c9ad7e69165e9140931 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Fri, 7 Oct 2022 15:22:07 -0700
+Subject: tests: check for recently-fixed bug
+
+* tests/exclude17.at: New file.
+
+Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/tar.git/commit/?id=0f0722df45ec520d0dac7c9ad7e69165e9140931]
+
+Signed-off-by: Qiu Tingting <qiutt@fujitsu.com>
+
+---
+ tests/exclude17.at | 35 +++++++++++++++++++++++++++++++++++
+ 1 files changed, 35 insertions(+)
+ create mode 100644 tests/exclude17.at
+
+diff --git a/tests/exclude17.at b/tests/exclude17.at
+new file mode 100644
+index 0000000..4162b2b
+--- /dev/null
++++ b/tests/exclude17.at
+@@ -0,0 +1,35 @@
++# Process this file with autom4te to create testsuite. -*- Autotest -*-
++#
++# Test suite for GNU tar.
++# Copyright 2013-2022 Free Software Foundation, Inc.
++
++# This file is part of GNU tar.
++
++# GNU tar is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3 of the License, or
++# (at your option) any later version.
++
++# GNU tar is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++
++# You should have received a copy of the GNU General Public License
++# along with this program. If not, see <http://www.gnu.org/licenses/>.
++
++AT_SETUP([--exclude-vcs-ignores memory allocation])
++AT_KEYWORDS([exclude exclude17])
++
++AT_TAR_CHECK([
++mkdir dir
++cd dir
++echo '*.o' >.cvsignore
++tar -cf - --exclude-vcs-ignores . | tar -tf -
++],
++[0],
++[./
++./.cvsignore
++])
++
++AT_CLEANUP
+--
+cgit v1.1
+
diff --git a/poky/meta/recipes-extended/tar/tar/0003-Exclude-VCS-directory-with-writing-from-an-archive.patch b/poky/meta/recipes-extended/tar/tar/0003-Exclude-VCS-directory-with-writing-from-an-archive.patch
new file mode 100644
index 0000000000..577a9ba997
--- /dev/null
+++ b/poky/meta/recipes-extended/tar/tar/0003-Exclude-VCS-directory-with-writing-from-an-archive.patch
@@ -0,0 +1,112 @@
+From 4f814e0e4c673f86dc65a557f7e55f6b5efd1529 Mon Sep 17 00:00:00 2001
+From: Anton Makrushin <makrusan@gmail.com>
+Date: Mon, 20 Mar 2023 20:05:42 +0530
+Subject: Exclude VCS directory with writing from an archive
+
+See https://savannah.gnu.org/bugs/?62859
+
+Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/tar.git/commit/?id=4f814e0e4c673f86dc65a557f7e55f6b5efd1529]
+
+Signed-off-by: Qiu Tingting <qiutt@fujitsu.com>
+
+---
+ tests/exclude18.at | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 87 insertions(+)
+ create mode 100644 tests/exclude18.at
+
+diff --git a/tests/exclude18.at b/tests/exclude18.at
+new file mode 100644
+index 0000000..64aaa52
+--- /dev/null
++++ b/tests/exclude18.at
+@@ -0,0 +1,87 @@
++# Process this file with autom4te to create testsuite. -*- Autotest -*-
++
++# Test suite for GNU tar.
++# Copyright 2004-2023 Free Software Foundation, Inc.
++
++# This file is part of GNU tar.
++
++# GNU tar is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3 of the License, or
++# (at your option) any later version.
++
++# GNU tar is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++
++# You should have received a copy of the GNU General Public License
++# along with this program. If not, see <http://www.gnu.org/licenses/>.
++
++# Test --exclude-vcs option with subcommands: EXTRACT, LIST, DIFF.
++# Check VCS directory with files, and empty.
++#
++# Ref: https://savannah.gnu.org/bugs/?62859
++# Wed 03 Aug 2022 04:06:28 PM UTC, original submission: Quote
++# Mohamed Akram <mohdakram>
++# > The --exclude-vcs flag seems to exclude .gitignore but not .git when
++# extracting.
++
++AT_SETUP([--exclude-vcs extract list compare])
++AT_KEYWORDS([exclude-vcs extract list compare exclude18])
++
++AT_TAR_CHECK([
++AT_SORT_PREREQ
++mkdir gitrepo
++cd gitrepo
++
++# Make an empty VCS directory:
++mkdir .svn
++
++# Make a VCS directory with a file:
++mkdir .git
++touch .git/_A
++
++# Make a VCS file:
++touch .gitignore
++
++# Make non-VCS files:
++touch .git_B
++touch _C
++
++# Create an archive, include VCS:
++cd ..
++tar -cf gitrepo.tar gitrepo
++rm -r gitrepo
++
++echo Extract:
++tar -xvf gitrepo.tar --exclude-vcs | sort
++
++echo
++echo List:
++tar -tf gitrepo.tar --exclude-vcs | sort
++
++echo
++echo Diff:
++tar -dvf gitrepo.tar --exclude-vcs gitrepo | sort
++
++],
++[0],
++[Extract:
++gitrepo/
++gitrepo/.git_B
++gitrepo/_C
++
++List:
++gitrepo/
++gitrepo/.git_B
++gitrepo/_C
++
++Diff:
++gitrepo/
++gitrepo/.git_B
++gitrepo/_C
++],
++[])
++
++AT_CLEANUP
+--
+cgit v1.1
+
diff --git a/poky/meta/recipes-extended/tar/tar/run-ptest b/poky/meta/recipes-extended/tar/tar/run-ptest
new file mode 100644
index 0000000000..185b33d61a
--- /dev/null
+++ b/poky/meta/recipes-extended/tar/tar/run-ptest
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+# Define tar test work dir
+WORKDIR=@PTEST_PATH@/tests/
+
+# Run test
+cd ${WORKDIR}
+./atconfig ./atlocal ./testsuite
+
+# clear log
+rm -rf testsuite.dir
+rm -rf testsuite.log
+
+./testsuite --am-fmt
diff --git a/poky/meta/recipes-extended/tar/tar_1.35.bb b/poky/meta/recipes-extended/tar/tar_1.35.bb
index 4dbd418b60..c7bd1d195e 100644
--- a/poky/meta/recipes-extended/tar/tar_1.35.bb
+++ b/poky/meta/recipes-extended/tar/tar_1.35.bb
@@ -42,6 +42,40 @@ do_install:append:class-target() {
fi
}
+# add for ptest support
+SRC_URI += " \
+ file://run-ptest \
+ file://0001-tests-fix-TESTSUITE_AT.patch \
+ file://0002-tests-check-for-recently-fixed-bug.patch \
+ file://0003-Exclude-VCS-directory-with-writing-from-an-archive.patch \
+"
+
+inherit ptest
+
+do_compile_ptest() {
+ oe_runmake -C ${B}/gnu/ check
+ oe_runmake -C ${B}/lib/ check
+ oe_runmake -C ${B}/rmt/ check
+ oe_runmake -C ${B}/src/ check
+ rm -rf ${S}/tests/testsuite
+ oe_runmake -C ${B}/tests/ testsuite
+ oe_runmake -C ${B}/tests/ genfile checkseekhole ckmtime
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests/
+ install --mode=755 ${B}/tests/atconfig ${D}${PTEST_PATH}/tests/
+ sed -i "/abs_/d" ${D}${PTEST_PATH}/tests/atconfig
+ echo "abs_builddir=${PTEST_PATH}/tests/" >> ${D}${PTEST_PATH}/tests/atconfig
+ install --mode=755 ${B}/tests/atlocal ${D}${PTEST_PATH}/tests/
+ sed -i "/PATH=/d" ${D}${PTEST_PATH}/tests/atlocal
+ install --mode=755 ${B}/tests/genfile ${D}${PTEST_PATH}/tests/
+ install --mode=755 ${B}/tests/checkseekhole ${D}${PTEST_PATH}/tests/
+ install --mode=755 ${B}/tests/ckmtime ${D}${PTEST_PATH}/tests/
+ install --mode=755 ${S}/tests/testsuite ${D}${PTEST_PATH}/tests/
+ sed -i "s#@PTEST_PATH@#${PTEST_PATH}#g" ${D}${PTEST_PATH}/run-ptest
+}
+
PACKAGES =+ "${PN}-rmt"
FILES:${PN}-rmt = "${sbindir}/rmt*"
diff --git a/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb b/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
index 8137d257c8..c655da1199 100644
--- a/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
+++ b/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
@@ -6,7 +6,6 @@ SECTION = "console/network"
LICENSE = "BSD-1-Clause"
LIC_FILES_CHKSUM = "file://DISCLAIMER;md5=071bd69cb78b18888ea5e3da5c3127fa"
-PR ="r10"
DEPENDS += "libnsl2"
diff --git a/poky/meta/recipes-extended/unzip/unzip_6.0.bb b/poky/meta/recipes-extended/unzip/unzip_6.0.bb
index a53663d086..27076d5d9b 100644
--- a/poky/meta/recipes-extended/unzip/unzip_6.0.bb
+++ b/poky/meta/recipes-extended/unzip/unzip_6.0.bb
@@ -5,7 +5,6 @@ SECTION = "console/utils"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=94caec5a51ef55ef711ee4e8b1c69e29"
PE = "1"
-PR = "r5"
SRC_URI = "${SOURCEFORGE_MIRROR}/infozip/UnZip%206.x%20%28latest%29/UnZip%206.0/unzip60.tar.gz \
file://avoid-strip.patch \
diff --git a/poky/meta/recipes-extended/watchdog/watchdog_5.16.bb b/poky/meta/recipes-extended/watchdog/watchdog_5.16.bb
index 6031dcaa16..5325ccafda 100644
--- a/poky/meta/recipes-extended/watchdog/watchdog_5.16.bb
+++ b/poky/meta/recipes-extended/watchdog/watchdog_5.16.bb
@@ -21,7 +21,6 @@ SRC_URI[sha256sum] = "b8e7c070e1b72aee2663bdc13b5cc39f76c9232669cfbb1ac0adc7275a
# Can be dropped when the output next changes, avoids failures after
# reproducibility issues
-PR = "r1"
UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/watchdog/files/watchdog/"
UPSTREAM_CHECK_REGEX = "/watchdog/(?P<pver>(\d+[\.\-_]*)+)/"
diff --git a/poky/meta/recipes-extended/which/which_2.21.bb b/poky/meta/recipes-extended/which/which_2.21.bb
index c8a50735b1..77861370e5 100644
--- a/poky/meta/recipes-extended/which/which_2.21.bb
+++ b/poky/meta/recipes-extended/which/which_2.21.bb
@@ -13,7 +13,6 @@ DEPENDS = "cwautomacros-native"
inherit autotools texinfo update-alternatives
-PR = "r3"
EXTRA_OECONF = "--disable-iberty"
diff --git a/poky/meta/recipes-extended/zip/zip_3.0.bb b/poky/meta/recipes-extended/zip/zip_3.0.bb
index 3425e8eb7b..70df5ab872 100644
--- a/poky/meta/recipes-extended/zip/zip_3.0.bb
+++ b/poky/meta/recipes-extended/zip/zip_3.0.bb
@@ -6,7 +6,6 @@ SECTION = "console/utils"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=04d43c5d70b496c032308106e26ae17d"
-PR = "r2"
S = "${WORKDIR}/zip30"
diff --git a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch
deleted file mode 100644
index 0a1487f8e3..0000000000
--- a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From e1a12b73c25d1ad0f267b22ac5d799bc1fbd0fa4 Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Tue, 30 May 2017 14:55:49 +0300
-Subject: [PATCH] Don't use AC_CANONICAL_HOST
-
-This won't work when building allarch (and is only used to find out if
-target is windows).
-
-Upstream-Status: Inappropriate [embedded specific]
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
-
----
- configure.ac | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 6ddc49b..39752bb 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -3,7 +3,6 @@ AC_PREREQ(2.53)
-
- AC_INIT([adwaita-icon-theme], [43],
- [http://bugzilla.gnome.org/enter_bug.cgi?product=adwaita-icon-theme])
--AC_CANONICAL_HOST
- AC_CONFIG_MACRO_DIR([m4])
- AC_CONFIG_SRCDIR([index.theme.in])
-
diff --git a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_43.bb b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_43.bb
deleted file mode 100644
index 8cb4d147f1..0000000000
--- a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_43.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "GTK+ icon theme"
-DESCRIPTION = "The Adwaita icon theme is the default icon theme of the GNOME desktop \
-This package package contains an icon theme for Gtk+ 3 applications."
-HOMEPAGE = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme"
-BUGTRACKER = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme/issues"
-SECTION = "x11/gnome"
-
-LICENSE = "LGPL-3.0-only | CC-BY-SA-3.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c \
- file://COPYING_CCBYSA3;md5=96143d33de3a79321b1006c4e8ed07e7 \
- file://COPYING_LGPL;md5=e6a600fd5e1d9cbde2d983680233ad02"
-
-inherit allarch autotools pkgconfig gettext gtk-icon-cache gnomebase
-
-SRC_URI += " file://0001-Don-t-use-AC_CANONICAL_HOST.patch"
-
-SRC_URI[archive.sha256sum] = "2e3ac77d32a6aa5554155df37e8f0a0dd54fc5a65fd721e88d505f970da32ec6"
-
-DEPENDS += "librsvg-native"
-
-PACKAGES = "${PN}-cursors ${PN}-symbolic-hires ${PN}-symbolic ${PN}-hires ${PN}"
-
-RREPLACES:${PN} = "gnome-icon-theme"
-RCONFLICTS:${PN} = "gnome-icon-theme"
-RPROVIDES:${PN} = "gnome-icon-theme"
-
-FILES:${PN}-cursors = "${prefix}/share/icons/Adwaita/cursors/"
-FILES:${PN}-symbolic-hires = "${prefix}/share/icons/Adwaita/96x96/*/*.symbolic.png \
- ${prefix}/share/icons/Adwaita/64x64/*/*.symbolic.png \
- ${prefix}/share/icons/Adwaita/48x48/*/*.symbolic.png \
- ${prefix}/share/icons/Adwaita/32x32/*/*.symbolic.png"
-FILES:${PN}-symbolic = "${prefix}/share/icons/Adwaita/16x16/*/*.symbolic.png \
- ${prefix}/share/icons/Adwaita/24x24/*/*.symbolic.png \
- ${prefix}/share/icons/Adwaita/scalable/*/*-symbolic*.svg"
-FILES:${PN}-hires = "${prefix}/share/icons/Adwaita/256x256/ \
- ${prefix}/share/icons/Adwaita/512x512/"
-FILES:${PN} = "${prefix}/share/icons/Adwaita/ \
- ${prefix}/share/pkgconfig/adwaita-icon-theme.pc"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_45.0.bb b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_45.0.bb
new file mode 100644
index 0000000000..4dbcced5c3
--- /dev/null
+++ b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_45.0.bb
@@ -0,0 +1,30 @@
+SUMMARY = "GTK+ icon theme"
+DESCRIPTION = "The Adwaita icon theme is the default icon theme of the GNOME desktop \
+This package package contains an icon theme for Gtk+ 3 applications."
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme/issues"
+SECTION = "x11/gnome"
+
+LICENSE = "LGPL-3.0-only | CC-BY-SA-3.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c \
+ file://COPYING_CCBYSA3;md5=96143d33de3a79321b1006c4e8ed07e7 \
+ file://COPYING_LGPL;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+GNOMEBASEBUILDCLASS = "meson"
+inherit gnomebase allarch gtk-icon-cache
+
+SRC_URI[archive.sha256sum] = "2442bfb06f4e6cc95bf6e2682fdff98fa5eddc688751b9d6215c623cb4e42ff1"
+
+DEPENDS += "librsvg-native"
+
+PACKAGES =+ "${PN}-cursors ${PN}-symbolic"
+
+RREPLACES:${PN} = "gnome-icon-theme"
+RCONFLICTS:${PN} = "gnome-icon-theme"
+RPROVIDES:${PN} = "gnome-icon-theme"
+
+FILES:${PN}-cursors = "${datadir}/icons/Adwaita/cursors/"
+FILES:${PN}-symbolic = "${datadir}/icons/Adwaita/symbolic*/"
+FILES:${PN}-doc += "${datadir}/licenses/adwaita-icon-theme"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
index 9ba8bcfd71..c9e1afffd0 100644
--- a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
+++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
@@ -1,4 +1,4 @@
-From 2c31944eabbb42a86a4ddaa2998a3b100a13138d Mon Sep 17 00:00:00 2001
+From aeb5532f8be42d42f4e8725ca42e239b36983a4d Mon Sep 17 00:00:00 2001
From: Sascha Silbe <x-yo17@se-silbe.de>
Date: Fri, 8 Jun 2018 13:55:10 +0200
Subject: [PATCH] Relocate the repository directory for native builds
diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-g-ir-tool-template.in-fix-girdir-path.patch b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-g-ir-tool-template.in-fix-girdir-path.patch
deleted file mode 100644
index 5c78649de4..0000000000
--- a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-g-ir-tool-template.in-fix-girdir-path.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From b01b448613b76f9acefdfd89ee01686dc7a67df4 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Tue, 13 Jul 2021 02:05:11 -0700
-Subject: [PATCH] g-ir-tool-template.in: fix girdir path
-
-In case gir_dir_prefix is set, it's possible that g-ir-scanner
-cannot find the .gir files. This is because that the girdir
-is set to gir_dir_prefix, which is wrong. It's not a prefix,
-it the actual gir dir.
-
-Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/329]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- tools/g-ir-tool-template.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/g-ir-tool-template.in b/tools/g-ir-tool-template.in
-index 6e98f52e..62c07c31 100755
---- a/tools/g-ir-tool-template.in
-+++ b/tools/g-ir-tool-template.in
-@@ -55,7 +55,7 @@ builtins.__dict__['DATADIR'] = datadir
-
- # Respect gir_dir_prefix
- girdir = ''
--girdir = os.path.abspath(os.path.join(filedir, '..', '@gir_dir_prefix@'))
-+girdir = os.path.abspath(os.path.join(filedir, '..', '@gir_dir_prefix@', 'gir-1.0'))
- builtins.__dict__['GIRDIR'] = [girdir]
-
- # Again, relative paths first so that the installation prefix is relocatable
---
-2.30.2
-
diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.76.1.bb b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb
index 6d00633825..2c6fb7aaa3 100644
--- a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.76.1.bb
+++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb
@@ -14,10 +14,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c434e8128a68bedd59b80b2ac1eb1c4a \
"
SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \
- file://0001-g-ir-tool-template.in-fix-girdir-path.patch \
"
-SRC_URI[sha256sum] = "196178bf64345501dcdc4d8469b36aa6fe80489354efe71cb7cb8ab82a3738bf"
+SRC_URI[sha256sum] = "bd7babd99af7258e76819e45ba4a6bc399608fe762d83fde3cac033c50841bb4"
SRC_URI:append:class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch"
diff --git a/poky/meta/recipes-gnome/libadwaita/libadwaita_1.3.4.bb b/poky/meta/recipes-gnome/libadwaita/libadwaita_1.4.0.bb
index 2abc8d9f2f..d8aa2cd697 100644
--- a/poky/meta/recipes-gnome/libadwaita/libadwaita_1.3.4.bb
+++ b/poky/meta/recipes-gnome/libadwaita/libadwaita_1.4.0.bb
@@ -7,11 +7,12 @@ GNOMEBASEBUILDCLASS = "meson"
DEPENDS = " \
gtk4 \
+ appstream \
"
inherit gnomebase gobject-introspection gi-docgen vala features_check
-SRC_URI[archive.sha256sum] = "801ccaf3a760213b59ebb9b8185327df225049544aee68a1340b165710acb1bd"
+SRC_URI[archive.sha256sum] = "e51a098a54d43568218fc48fcf52e80e36f469b3ce912d8ce9c308a37e9f47c2"
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
REQUIRED_DISTRO_FEATURES = "opengl"
@@ -23,3 +24,5 @@ GTKDOC_MESON_OPTION = 'gtk_doc'
PACKAGECONFIG[examples] = "-Dexamples=true,-Dexamples=false"
FILES:${PN} += "${datadir}/metainfo"
+
+EXTRA_OEMESON += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=true', '-Dvapi=false', d)}"
diff --git a/poky/meta/recipes-gnome/libportal/libportal_0.6.bb b/poky/meta/recipes-gnome/libportal/libportal_0.7.1.bb
index bf38fc85fd..22e45559c9 100644
--- a/poky/meta/recipes-gnome/libportal/libportal_0.6.bb
+++ b/poky/meta/recipes-gnome/libportal/libportal_0.7.1.bb
@@ -7,7 +7,7 @@ LICENSE = "LGPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=3000208d539ec061b899bce1d9ce9404"
SRC_URI = "git://github.com/flatpak/${BPN}.git;protocol=https;branch=main"
-SRCREV = "13df0b887a7eb7b0f9b14069561a41f62e813155"
+SRCREV = "e9ed3a50cdde321eaf42361212480a66eb94a57a"
S = "${WORKDIR}/git"
inherit meson gi-docgen gobject-introspection vala features_check pkgconfig
@@ -17,4 +17,4 @@ ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
DEPENDS += "glib-2.0 glib-2.0-native gtk+3 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gtk4', '', d)}"
-EXTRA_OEMESON = "-Dbackends=gtk3${@bb.utils.contains('DISTRO_FEATURES', 'opengl', ',gtk4', '', d)}"
+EXTRA_OEMESON = "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=true', '-Dvapi=false', d)} -Dbackend-qt5=disabled"
diff --git a/poky/meta/recipes-gnome/libsecret/libsecret_0.21.0.bb b/poky/meta/recipes-gnome/libsecret/libsecret_0.21.1.bb
index 8f560f9f39..63102476cb 100644
--- a/poky/meta/recipes-gnome/libsecret/libsecret_0.21.0.bb
+++ b/poky/meta/recipes-gnome/libsecret/libsecret_0.21.1.bb
@@ -14,7 +14,7 @@ inherit gnomebase gi-docgen vala gobject-introspection manpages
DEPENDS += "glib-2.0 libgcrypt gettext-native"
-SRC_URI[archive.sha256sum] = "2735b29d1cc0e5b12ba90bee88bd21774ac8db4ae1a4b716f46c409c19a14613"
+SRC_URI[archive.sha256sum] = "674f51323a5f74e4cb7e3277da68b5afddd333eca25bc9fd2d820a92972f90b1"
GTKDOC_MESON_OPTION = 'gtk_doc'
diff --git a/poky/meta/recipes-gnome/libxmlb/libxmlb/0001-xb-selftest.c-hardcode-G_TEST_SRCDIR.patch b/poky/meta/recipes-gnome/libxmlb/libxmlb/0001-xb-selftest.c-hardcode-G_TEST_SRCDIR.patch
new file mode 100644
index 0000000000..da8ce68df9
--- /dev/null
+++ b/poky/meta/recipes-gnome/libxmlb/libxmlb/0001-xb-selftest.c-hardcode-G_TEST_SRCDIR.patch
@@ -0,0 +1,35 @@
+From dc208bafc57c1ccaa0ca260f99c8b4c976271ebc Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Sat, 16 Sep 2023 14:02:57 +0200
+Subject: [PATCH] xb-self-test.c: hardcode G_TEST_SRCDIR
+
+This avoids:
+ libxmlb-0.3.14-r0 do_package_qa: QA Issue: File
+ /usr/libexec/installed-tests/libxmlb/xb-self-test in package libxmlb-ptest
+ contains reference to TMPDIR [buildpaths]
+
+and also fixes the runtime for the ptest.
+
+Upstream-Status: Inappropriate [oe-specific]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ src/xb-self-test.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/xb-self-test.c b/src/xb-self-test.c
+index 47d9728..8b3dd0e 100644
+--- a/src/xb-self-test.c
++++ b/src/xb-self-test.c
+@@ -2870,7 +2870,7 @@ xb_speed_func(void)
+ int
+ main(int argc, char **argv)
+ {
+- g_setenv("G_TEST_SRCDIR", SRCDIR, FALSE);
++ g_setenv("G_TEST_SRCDIR", "/usr/libexec/installed-tests/libxmlb", FALSE);
+
+ g_test_init(&argc, &argv, NULL);
+
+--
+2.41.0
+
diff --git a/meta-openembedded/meta-oe/recipes-gnome/libxmlb/libxmlb/run-ptest b/poky/meta/recipes-gnome/libxmlb/libxmlb/run-ptest
index 6d0bb95d3a..6d0bb95d3a 100644
--- a/meta-openembedded/meta-oe/recipes-gnome/libxmlb/libxmlb/run-ptest
+++ b/poky/meta/recipes-gnome/libxmlb/libxmlb/run-ptest
diff --git a/poky/meta/recipes-gnome/libxmlb/libxmlb_0.3.14.bb b/poky/meta/recipes-gnome/libxmlb/libxmlb_0.3.14.bb
new file mode 100644
index 0000000000..1d3b0de29a
--- /dev/null
+++ b/poky/meta/recipes-gnome/libxmlb/libxmlb_0.3.14.bb
@@ -0,0 +1,25 @@
+SUMMARY = "A library to help create and query binary XML blobs"
+HOMEPAGE = "https://github.com/hughsie/libxmlb"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1803fa9c2c3ce8cb06b4861d75310742"
+
+SRC_URI = " \
+ git://github.com/hughsie/libxmlb.git;branch=main;protocol=https \
+ file://0001-xb-selftest.c-hardcode-G_TEST_SRCDIR.patch \
+ file://run-ptest \
+"
+SRCREV = "aa577b276adc66564f5777f9a522ca3bf0bfa65e"
+S = "${WORKDIR}/git"
+
+DEPENDS = "glib-2.0 xz zstd"
+
+inherit gobject-introspection gtk-doc meson ptest-gnome lib_package pkgconfig
+
+PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
+PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false"
+
+GTKDOC_MESON_OPTION = "gtkdoc"
+
+FILES:${PN} += "${datadir}"
+
+BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-graphics/builder/builder_0.1.bb b/poky/meta/recipes-graphics/builder/builder_0.1.bb
index 1700015ded..52c9351f93 100644
--- a/poky/meta/recipes-graphics/builder/builder_0.1.bb
+++ b/poky/meta/recipes-graphics/builder/builder_0.1.bb
@@ -1,7 +1,6 @@
SUMMARY = "New user to do specific job"
DESCRIPTION = "This recipe create a new user named ${PN}, who is used for specific jobs like building. The task can be auto started via mini X"
SECTION = "x11"
-PR = "r6"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://builder_session.sh;endline=5;md5=84796c3c41785d86100fdabcbdade00e"
diff --git a/poky/meta/recipes-graphics/freetype/freetype_2.13.1.bb b/poky/meta/recipes-graphics/freetype/freetype_2.13.2.bb
index 5b1c520944..4e7a0ad160 100644
--- a/poky/meta/recipes-graphics/freetype/freetype_2.13.1.bb
+++ b/poky/meta/recipes-graphics/freetype/freetype_2.13.2.bb
@@ -14,7 +14,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=843b6efc16f6b1652ec97f89d5a516c0 \
"
SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BP}.tar.xz"
-SRC_URI[sha256sum] = "ea67e3b019b1104d1667aa274f5dc307d8cbd606b399bc32df308a77f1a564bf"
+SRC_URI[sha256sum] = "12991c4e55c506dd7f9b765933e62fd2be2e06d421505d7950a132e4f1bb484d"
UPSTREAM_CHECK_REGEX = "freetype-(?P<pver>\d+(\.\d+)+)"
diff --git a/poky/meta/recipes-graphics/glslang/glslang_1.3.250.0.bb b/poky/meta/recipes-graphics/glslang/glslang_1.3.261.1.bb
index 6e9c666d46..e607045148 100644
--- a/poky/meta/recipes-graphics/glslang/glslang_1.3.250.0.bb
+++ b/poky/meta/recipes-graphics/glslang/glslang_1.3.261.1.bb
@@ -8,7 +8,7 @@ HOMEPAGE = "https://www.khronos.org/opengles/sdk/tools/Reference-Compiler"
LICENSE = "BSD-3-Clause & BSD-2-Clause & MIT & Apache-2.0 & GPL-3-with-bison-exception"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2a2b5acd7bc4844964cfda45fe807dc3"
-SRCREV = "d1517d64cfca91f573af1bf7341dc3a5113349c0"
+SRCREV = "76b52ebf77833908dc4c0dd6c70a9c357ac720bd"
SRC_URI = "git://github.com/KhronosGroup/glslang.git;protocol=https;branch=main \
file://0001-generate-glslang-pkg-config.patch \
"
diff --git a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_8.1.1.bb b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_8.2.1.bb
index 9422db2005..df41af29f9 100644
--- a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_8.1.1.bb
+++ b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_8.2.1.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b98429b8e8e3c2a67cfef01e99e4893d \
"
SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "0305ad702e11906a5fc0c1ba11c270b7f64a8f5390d676aacfd71db129d6565f"
+SRC_URI[sha256sum] = "0fec78f98c9c8faf228957a201c8846f809452c20f8445eb092a1ba6f22dbea5"
DEPENDS += "glib-2.0-native"
diff --git a/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools/0001-Support-procps-4.x.patch b/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools/0001-Support-procps-4.x.patch
deleted file mode 100644
index fe9663b6eb..0000000000
--- a/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools/0001-Support-procps-4.x.patch
+++ /dev/null
@@ -1,502 +0,0 @@
-From 524e58f3b2f9e4702293af66f6768755b300e8d3 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Thu, 2 Mar 2023 13:59:13 +0100
-Subject: [PATCH] Support procps 4.x
-
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/116#note_1785522]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- lib/igt_aux.c | 238 ++++++++++++++++++++++++++++++++++++++++--------
- lib/meson.build | 7 +-
- meson.build | 10 +-
- 3 files changed, 215 insertions(+), 40 deletions(-)
-
-diff --git a/lib/igt_aux.c b/lib/igt_aux.c
-index 15e30440..d23c9a40 100644
---- a/lib/igt_aux.c
-+++ b/lib/igt_aux.c
-@@ -52,8 +52,16 @@
- #include <assert.h>
- #include <grp.h>
-
-+#ifdef HAVE_LIBPROCPS
- #include <proc/readproc.h>
-+#endif
-+#ifdef HAVE_LIBPROC2
-+#include <libproc2/pids.h>
-+#endif
-+
- #include <libudev.h>
-+#include <linux/limits.h>
-+#include <dirent.h>
-
- #include "drmtest.h"
- #include "i915_drm.h"
-@@ -1217,6 +1225,7 @@ void igt_unlock_mem(void)
- */
- int igt_is_process_running(const char *comm)
- {
-+#if HAVE_LIBPROCPS
- PROCTAB *proc;
- proc_t *proc_info;
- bool found = false;
-@@ -1235,6 +1244,26 @@ int igt_is_process_running(const char *comm)
-
- closeproc(proc);
- return found;
-+#endif
-+#ifdef HAVE_LIBPROC2
-+ enum pids_item Item[] = { PIDS_CMD };
-+ struct pids_info *info = NULL;
-+ struct pids_stack *stack;
-+ char *pid_comm;
-+ bool found = false;
-+
-+ if (procps_pids_new(&info, Item, 1) < 0)
-+ return false;
-+ while ((stack = procps_pids_get(info, PIDS_FETCH_TASKS_ONLY))) {
-+ pid_comm = PIDS_VAL(0, str, stack, info);
-+ if (!strncasecmp(pid_comm, comm, strlen(pid_comm))) {
-+ found = true;
-+ break;
-+ }
-+ }
-+ procps_pids_unref(&info);
-+ return found;
-+#endif
- }
-
- /**
-@@ -1251,6 +1280,7 @@ int igt_is_process_running(const char *comm)
- */
- int igt_terminate_process(int sig, const char *comm)
- {
-+#ifdef HAVE_LIBPROCPS
- PROCTAB *proc;
- proc_t *proc_info;
- int err = 0;
-@@ -1272,6 +1302,29 @@ int igt_terminate_process(int sig, const char *comm)
-
- closeproc(proc);
- return err;
-+#endif
-+#ifdef HAVE_LIBPROC2
-+ enum pids_item Items[] = { PIDS_ID_PID, PIDS_CMD };
-+ struct pids_info *info = NULL;
-+ struct pids_stack *stack;
-+ char *pid_comm;
-+ int pid;
-+ int err = 0;
-+
-+ if (procps_pids_new(&info, Items, 2) < 0)
-+ return -errno;
-+ while ((stack = procps_pids_get(info, PIDS_FETCH_TASKS_ONLY))) {
-+ pid = PIDS_VAL(0, s_int, stack, info);
-+ pid_comm = PIDS_VAL(1, str, stack, info);
-+ if (!strncasecmp(pid_comm, comm, strlen(pid_comm))) {
-+ if (kill(pid, sig) < 0)
-+ err = -errno;
-+ break;
-+ }
-+ }
-+ procps_pids_unref(&info);
-+ return err;
-+#endif
- }
-
- struct pinfo {
-@@ -1341,9 +1394,9 @@ igt_show_stat_header(void)
- }
-
- static void
--igt_show_stat(proc_t *info, int *state, const char *fn)
-+igt_show_stat(const pid_t tid, const char *cmd, int *state, const char *fn)
- {
-- struct pinfo p = { .pid = info->tid, .comm = info->cmd, .fn = fn };
-+ struct pinfo p = { .pid = tid, .comm = cmd, .fn = fn };
-
- if (!*state)
- igt_show_stat_header();
-@@ -1353,7 +1406,7 @@ igt_show_stat(proc_t *info, int *state, const char *fn)
- }
-
- static void
--__igt_lsof_fds(proc_t *proc_info, int *state, char *proc_path, const char *dir)
-+__igt_lsof_fds(const pid_t tid, const char *cmd, int *state, char *proc_path, const char *dir)
- {
- struct dirent *d;
- struct stat st;
-@@ -1400,7 +1453,7 @@ again:
- dirn = dirname(copy_fd_lnk);
-
- if (!strncmp(dir, dirn, strlen(dir)))
-- igt_show_stat(proc_info, state, fd_lnk);
-+ igt_show_stat(tid, cmd, state, fd_lnk);
-
- free(copy_fd_lnk);
- free(fd_lnk);
-@@ -1416,13 +1469,14 @@ again:
- static void
- __igt_lsof(const char *dir)
- {
-- PROCTAB *proc;
-- proc_t *proc_info;
--
- char path[30];
- char *name_lnk;
- struct stat st;
- int state = 0;
-+#ifdef HAVE_LIBPROCPS
-+ PROCTAB *proc;
-+ proc_t *proc_info;
-+
-
- proc = openproc(PROC_FILLCOM | PROC_FILLSTAT | PROC_FILLARG);
- igt_assert(proc != NULL);
-@@ -1456,6 +1510,44 @@ __igt_lsof(const char *dir)
- }
-
- closeproc(proc);
-+#endif
-+#ifdef HAVE_LIBPROC2
-+ enum pids_item Items[] = { PIDS_ID_PID, PIDS_CMD };
-+ struct pids_info *info = NULL;
-+ struct pids_stack *stack;
-+
-+ if (procps_pids_new(&info, Items, 2) < 0)
-+ return;
-+ while ((stack = procps_pids_get(info, PIDS_FETCH_TASKS_ONLY))) {
-+ ssize_t read;
-+ int tid = PIDS_VAL(0, s_int, stack, info);
-+ char *pid_comm = PIDS_VAL(1, str, stack, info);
-+
-+ /* check current working directory */
-+ memset(path, 0, sizeof(path));
-+ snprintf(path, sizeof(path), "/proc/%d/cwd", tid);
-+
-+ if (stat(path, &st) == -1)
-+ continue;
-+
-+ name_lnk = malloc(st.st_size + 1);
-+
-+ igt_assert((read = readlink(path, name_lnk, st.st_size + 1)));
-+ name_lnk[read] = '\0';
-+
-+ if (!strncmp(dir, name_lnk, strlen(dir)))
-+ igt_show_stat(tid, pid_comm, &state, name_lnk);
-+
-+ /* check also fd, seems that lsof(8) doesn't look here */
-+ memset(path, 0, sizeof(path));
-+ snprintf(path, sizeof(path), "/proc/%d/fd", tid);
-+
-+ __igt_lsof_fds(tid, pid_comm, &state, path, dir);
-+
-+ free(name_lnk);
-+ }
-+ procps_pids_unref(&info);
-+#endif
- }
-
- /**
-@@ -1490,7 +1582,7 @@ igt_lsof(const char *dpath)
- free(sanitized);
- }
-
--static void pulseaudio_unload_module(proc_t *proc_info)
-+static void pulseaudio_unload_module(const uid_t euid, const gid_t egid)
- {
- struct igt_helper_process pa_proc = {};
- char xdg_dir[PATH_MAX];
-@@ -1498,14 +1590,14 @@ static void pulseaudio_unload_module(proc_t *proc_info)
- struct passwd *pw;
-
- igt_fork_helper(&pa_proc) {
-- pw = getpwuid(proc_info->euid);
-+ pw = getpwuid(euid);
- homedir = pw->pw_dir;
-- snprintf(xdg_dir, sizeof(xdg_dir), "/run/user/%d", proc_info->euid);
-+ snprintf(xdg_dir, sizeof(xdg_dir), "/run/user/%d", euid);
-
- igt_info("Request pulseaudio to stop using audio device\n");
-
-- setgid(proc_info->egid);
-- setuid(proc_info->euid);
-+ setgid(egid);
-+ setuid(euid);
- clearenv();
- setenv("HOME", homedir, 1);
- setenv("XDG_RUNTIME_DIR",xdg_dir, 1);
-@@ -1524,10 +1616,12 @@ static void pipewire_reserve_wait(void)
- char xdg_dir[PATH_MAX];
- const char *homedir;
- struct passwd *pw;
-- proc_t *proc_info;
-- PROCTAB *proc;
-+ int tid=0, euid, egid;
-
-+#ifdef HAVE_LIBPROCPS
- igt_fork_helper(&pw_reserve_proc) {
-+ proc_t *proc_info;
-+ PROCTAB *proc;
- igt_info("Preventing pipewire-pulse to use the audio drivers\n");
-
- proc = openproc(PROC_FILLCOM | PROC_FILLSTAT | PROC_FILLARG);
-@@ -1539,21 +1633,44 @@ static void pipewire_reserve_wait(void)
- freeproc(proc_info);
- }
- closeproc(proc);
-+ tid = proc_info->tid;
-+ euid = proc_info->euid;
-+ egid = proc_info->egid;
-+ freeproc(proc_info);
-+#endif
-+#ifdef HAVE_LIBPROC2
-+ igt_fork(child, 1) {
-+ enum pids_item Items[] = { PIDS_ID_PID, PIDS_ID_EUID, PIDS_ID_EGID };
-+ enum rel_items { EU_PID, EU_EUID, EU_EGID };
-+ struct pids_info *info = NULL;
-+ struct pids_stack *stack;
-+
-+ igt_info("Preventing pipewire-pulse to use the audio drivers\n");
-+
-+ if (procps_pids_new(&info, Items, 3) < 0)
-+ return;
-+ while ((stack = procps_pids_get(info, PIDS_FETCH_TASKS_ONLY))) {
-+ tid = PIDS_VAL(EU_PID, s_int, stack, info);
-+ if (pipewire_pulse_pid == tid)
-+ break;
-+ }
-+ euid = PIDS_VAL(EU_EUID, s_int, stack, info);
-+ egid = PIDS_VAL(EU_EGID, s_int, stack, info);
-+ procps_pids_unref(&info);
-+#endif
-
- /* Sanity check: if it can't find the process, it means it has gone */
-- if (pipewire_pulse_pid != proc_info->tid)
-+ if (pipewire_pulse_pid != tid)
- exit(0);
-
-- pw = getpwuid(proc_info->euid);
-+ pw = getpwuid(euid);
- homedir = pw->pw_dir;
-- snprintf(xdg_dir, sizeof(xdg_dir), "/run/user/%d", proc_info->euid);
-- setgid(proc_info->egid);
-- setuid(proc_info->euid);
-+ snprintf(xdg_dir, sizeof(xdg_dir), "/run/user/%d", euid);
-+ setgid(egid);
-+ setuid(euid);
- clearenv();
- setenv("HOME", homedir, 1);
- setenv("XDG_RUNTIME_DIR",xdg_dir, 1);
-- freeproc(proc_info);
--
- /*
- * pw-reserve will run in background. It will only exit when
- * igt_kill_children() is called later on. So, it shouldn't
-@@ -1570,9 +1687,7 @@ static void pipewire_reserve_wait(void)
- int pipewire_pulse_start_reserve(void)
- {
- bool is_pw_reserve_running = false;
-- proc_t *proc_info;
- int attempts = 0;
-- PROCTAB *proc;
-
- if (!pipewire_pulse_pid)
- return 0;
-@@ -1584,6 +1699,10 @@ int pipewire_pulse_start_reserve(void)
- * pipewire version 0.3.50 or upper.
- */
- for (attempts = 0; attempts < PIPEWIRE_RESERVE_MAX_TIME; attempts++) {
-+#ifdef HAVE_LIBPROCPS
-+ proc_t *proc_info;
-+ PROCTAB *proc;
-+
- usleep(1000);
- proc = openproc(PROC_FILLCOM | PROC_FILLSTAT | PROC_FILLARG);
- igt_assert(proc != NULL);
-@@ -1598,6 +1717,25 @@ int pipewire_pulse_start_reserve(void)
- freeproc(proc_info);
- }
- closeproc(proc);
-+#endif
-+#ifdef HAVE_LIBPROC2
-+ enum pids_item Items[] = { PIDS_ID_PID, PIDS_CMD };
-+ struct pids_info *info = NULL;
-+ struct pids_stack *stack;
-+
-+ usleep(1000);
-+
-+ if (procps_pids_new(&info, Items, 2) < 0)
-+ return 1;
-+ while ((stack = procps_pids_get(info, PIDS_FETCH_TASKS_ONLY))) {
-+ if (!strcmp(PIDS_VAL(1, str, stack, info), "pw-reserve")) {
-+ is_pw_reserve_running = true;
-+ pipewire_pw_reserve_pid = PIDS_VAL(0, s_int, stack, info);
-+ break;
-+ }
-+ }
-+ procps_pids_unref(&info);
-+#endif
- if (is_pw_reserve_running)
- break;
- }
-@@ -1645,7 +1783,7 @@ void pipewire_pulse_stop_reserve(void)
- * If the check fails, it means that the process can simply be killed.
- */
- static int
--__igt_lsof_audio_and_kill_proc(proc_t *proc_info, char *proc_path)
-+__igt_lsof_audio_and_kill_proc(const pid_t tid, const char *cmd, const uid_t euid, const gid_t egid, char *proc_path)
- {
- const char *audio_dev = "/dev/snd/";
- char path[PATH_MAX * 2];
-@@ -1670,10 +1808,10 @@ __igt_lsof_audio_and_kill_proc(proc_t *proc_info, char *proc_path)
- * 2) unload/unbind the the audio driver(s);
- * 3) stop the pw-reserve thread.
- */
-- if (!strcmp(proc_info->cmd, "pipewire-pulse")) {
-+ if (!strcmp(cmd, "pipewire-pulse")) {
- igt_info("process %d (%s) is using audio device. Should be requested to stop using them.\n",
-- proc_info->tid, proc_info->cmd);
-- pipewire_pulse_pid = proc_info->tid;
-+ tid, cmd);
-+ pipewire_pulse_pid = tid;
- return 0;
- }
- /*
-@@ -1685,9 +1823,9 @@ __igt_lsof_audio_and_kill_proc(proc_t *proc_info, char *proc_path)
- * will respawn them. So, just ignore here, they'll honor pw-reserve,
- * when the time comes.
- */
-- if (!strcmp(proc_info->cmd, "pipewire-media-session"))
-+ if (!strcmp(cmd, "pipewire-media-session"))
- return 0;
-- if (!strcmp(proc_info->cmd, "wireplumber"))
-+ if (!strcmp(cmd, "wireplumber"))
- return 0;
-
- dp = opendir(proc_path);
-@@ -1723,22 +1861,22 @@ __igt_lsof_audio_and_kill_proc(proc_t *proc_info, char *proc_path)
- * enough to unbind audio modules and won't cause race issues
- * with systemd trying to reload it.
- */
-- if (!strcmp(proc_info->cmd, "pulseaudio")) {
-- pulseaudio_unload_module(proc_info);
-+ if (!strcmp(cmd, "pulseaudio")) {
-+ pulseaudio_unload_module(euid, egid);
- break;
- }
-
- /* For all other processes, just kill them */
- igt_info("process %d (%s) is using audio device. Should be terminated.\n",
-- proc_info->tid, proc_info->cmd);
-+ tid, cmd);
-
-- if (kill(proc_info->tid, SIGTERM) < 0) {
-+ if (kill(tid, SIGTERM) < 0) {
- igt_info("Fail to terminate %s (pid: %d) with SIGTERM\n",
-- proc_info->cmd, proc_info->tid);
-- if (kill(proc_info->tid, SIGABRT) < 0) {
-+ cmd, tid);
-+ if (kill(tid, SIGABRT) < 0) {
- fail++;
- igt_info("Fail to terminate %s (pid: %d) with SIGABRT\n",
-- proc_info->cmd, proc_info->tid);
-+ cmd, tid);
- }
- }
-
-@@ -1760,9 +1898,10 @@ int
- igt_lsof_kill_audio_processes(void)
- {
- char path[PATH_MAX];
-+ int fail = 0;
-+#ifdef HAVE_LIBPROCPS
- proc_t *proc_info;
- PROCTAB *proc;
-- int fail = 0;
-
- proc = openproc(PROC_FILLCOM | PROC_FILLSTAT | PROC_FILLARG);
- igt_assert(proc != NULL);
-@@ -1772,12 +1911,35 @@ igt_lsof_kill_audio_processes(void)
- if (snprintf(path, sizeof(path), "/proc/%d/fd", proc_info->tid) < 1)
- fail++;
- else
-- fail += __igt_lsof_audio_and_kill_proc(proc_info, path);
-+ fail += __igt_lsof_audio_and_kill_proc(proc_info->pid, proc_info->cmd, proc_info->euid, proc_info->egid, path);
-
- freeproc(proc_info);
- }
- closeproc(proc);
-+#endif
-+#ifdef HAVE_LIBPROC2
-+ enum pids_item Items[] = { PIDS_ID_PID, PIDS_CMD, PIDS_ID_EUID, PIDS_ID_EGID };
-+ enum rel_items { EU_PID, EU_CMD, EU_EUID, EU_EGID };
-+ struct pids_info *info = NULL;
-+ struct pids_stack *stack;
-+ pid_t tid;
-+
-+ if (procps_pids_new(&info, Items, 4) < 0)
-+ return 1;
-+ while ((stack = procps_pids_get(info, PIDS_FETCH_TASKS_ONLY))) {
-+ tid = PIDS_VAL(EU_PID, s_int, stack, info);
-
-+ if (snprintf(path, sizeof(path), "/proc/%d/fd", tid) < 1)
-+ fail++;
-+ else
-+ fail += __igt_lsof_audio_and_kill_proc(tid,
-+ PIDS_VAL(EU_CMD, str, stack, info),
-+ PIDS_VAL(EU_EUID, s_int, stack, info),
-+ PIDS_VAL(EU_EGID, s_int, stack, info),
-+ path);
-+ }
-+ procps_pids_unref(&info);
-+#endif
- return fail;
- }
-
-diff --git a/lib/meson.build b/lib/meson.build
-index cc784686..90591e0e 100644
---- a/lib/meson.build
-+++ b/lib/meson.build
-@@ -105,7 +105,6 @@ lib_deps = [
- libdrm,
- libdw,
- libkmod,
-- libprocps,
- libudev,
- math,
- pciaccess,
-@@ -169,6 +168,12 @@ if chamelium.found()
- lib_sources += 'monitor_edids/monitor_edids_helper.c'
- endif
-
-+if libprocps.found()
-+ lib_deps += libprocps
-+else
-+ lib_deps += libproc2
-+endif
-+
- if get_option('srcdir') != ''
- srcdir = join_paths(get_option('srcdir'), 'tests')
- else
-diff --git a/meson.build b/meson.build
-index e7a68503..309b0af3 100644
---- a/meson.build
-+++ b/meson.build
-@@ -120,7 +120,15 @@ build_info += 'With libdrm: ' + ','.join(libdrm_info)
-
- pciaccess = dependency('pciaccess', version : '>=0.10')
- libkmod = dependency('libkmod')
--libprocps = dependency('libprocps', required : true)
-+libprocps = dependency('libprocps', required : false)
-+libproc2 = dependency('libproc2', required : false)
-+if libprocps.found()
-+ config.set('HAVE_LIBPROCPS', 1)
-+elif libproc2.found()
-+ config.set('HAVE_LIBPROC2', 1)
-+else
-+ error('Either libprocps or libproc2 is required')
-+endif
-
- libunwind = dependency('libunwind', required : get_option('libunwind'))
- build_info += 'With libunwind: @0@'.format(libunwind.found())
diff --git a/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb b/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb
index f4799fbc77..529b374c7d 100644
--- a/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb
+++ b/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb
@@ -9,12 +9,10 @@ LICENSE = "MIT"
inherit meson pkgconfig
-SRCREV = "2b29e8ac07fbcfadc48b9d60e4d736a6e3b289ab"
-PV = "1.27.1"
+SRCREV = "31ec677ca24e7ed86e35f367f40a29d3d9f51c06"
+PV = "1.28"
-SRC_URI = "git://gitlab.freedesktop.org/drm/igt-gpu-tools.git;protocol=https;branch=master \
- file://0001-Support-procps-4.x.patch \
- "
+SRC_URI = "git://gitlab.freedesktop.org/drm/igt-gpu-tools.git;protocol=https;branch=master"
S = "${WORKDIR}/git"
@@ -26,7 +24,7 @@ PACKAGE_BEFORE_PN = "${PN}-benchmarks ${PN}-tests"
PACKAGECONFIG[chamelium] = "-Dchamelium=enabled,-Dchamelium=disabled,gsl xmlrpc-c"
-EXTRA_OEMESON = "-Ddocs=disabled -Drunner=enabled -Dsrcdir=/usr/src/debug/${PN}/${PV}-${PR}/git/"
+EXTRA_OEMESON = "-Ddocs=disabled -Drunner=enabled -Dsrcdir=/usr/src/debug/${PN}/${PV}-${PR}/git/ -Dversion_hash=${PV}"
COMPATIBLE_HOST = "(x86_64.*|i.86.*|arm.*|aarch64).*-linux"
COMPATIBLE_HOST:libc-musl:class-target = "null"
SECURITY_LDFLAGS = "${SECURITY_X_LDFLAGS}"
diff --git a/poky/meta/recipes-graphics/kmscube/kmscube_git.bb b/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
index b385ff7452..4cdc0f06bb 100644
--- a/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
+++ b/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
@@ -10,7 +10,7 @@ DEPENDS = "virtual/libgles3 virtual/libgles2 virtual/egl libdrm virtual/libgbm"
LIC_FILES_CHKSUM = "file://kmscube.c;beginline=1;endline=23;md5=8b309d4ee67b7315ff7381270dd631fb"
-SRCREV = "53ea71efe63470cf698726d983e9da5748a754a1"
+SRCREV = "ea6c5d1eeefbfb0a1c27ab74a6e4621f1d9adf4c"
SRC_URI = "git://gitlab.freedesktop.org/mesa/kmscube;branch=master;protocol=https"
UPSTREAM_CHECK_COMMITS = "1"
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.28.0.bb b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.28.3.bb
index 1228217e8c..f866a3618f 100644
--- a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.28.0.bb
+++ b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.28.3.bb
@@ -25,7 +25,7 @@ SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz"
S = "${WORKDIR}/SDL2-${PV}"
-SRC_URI[sha256sum] = "d215ae4541e69d628953711496cd7b0e8b8d5c8d811d5b0f98fdc7fd1422998a"
+SRC_URI[sha256sum] = "7acb8679652701a2504d734e2ba7543ec1a83e310498ddd22fd44bf965eb5518"
inherit cmake lib_package binconfig-disabled pkgconfig upstream-version-is-even
diff --git a/poky/meta/recipes-graphics/libva/libva-utils_2.19.0.bb b/poky/meta/recipes-graphics/libva/libva-utils_2.20.0.bb
index acb25a3f0d..2e1fd09406 100644
--- a/poky/meta/recipes-graphics/libva/libva-utils_2.19.0.bb
+++ b/poky/meta/recipes-graphics/libva/libva-utils_2.20.0.bb
@@ -14,8 +14,8 @@ SECTION = "x11"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e"
-SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.19-branch;protocol=https"
-SRCREV = "5bf107ec4f7b18a6457d23abf57560dfb382a751"
+SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.20-branch;protocol=https"
+SRCREV = "0c8373e62af3e4d9a3831334c5402ad255797e67"
S = "${WORKDIR}/git"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))$"
diff --git a/poky/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb b/poky/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb
index 1a16ed4374..d1f0a67d84 100644
--- a/poky/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb
+++ b/poky/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb
@@ -12,7 +12,6 @@ RCONFLICTS:${PN} = "matchbox-common"
SRC_URI = "file://matchbox-session"
S = "${WORKDIR}"
-PR = "r4"
inherit update-alternatives
diff --git a/poky/meta/recipes-graphics/mesa/files/0001-gallium-Fix-build-with-llvm-17.patch b/poky/meta/recipes-graphics/mesa/files/0001-gallium-Fix-build-with-llvm-17.patch
index 3631a918b0..165708145a 100644
--- a/poky/meta/recipes-graphics/mesa/files/0001-gallium-Fix-build-with-llvm-17.patch
+++ b/poky/meta/recipes-graphics/mesa/files/0001-gallium-Fix-build-with-llvm-17.patch
@@ -1,4 +1,4 @@
-From 865762e0a767a121206d818bdd58301afbf30104 Mon Sep 17 00:00:00 2001
+From c8e9776abc3dfd3f2411797a90a03e7fa16263ef Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 23 Jun 2023 01:20:38 -0700
Subject: [PATCH] gallium: Fix build with llvm 17
@@ -10,11 +10,9 @@ so add conditions to exclude them for llvm >= 17
Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23827]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- src/gallium/auxiliary/gallivm/lp_bld_init.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
+ src/gallium/auxiliary/gallivm/lp_bld_init.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
-diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c
-index 24d0823..3d4573e 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_init.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c
@@ -42,8 +42,10 @@
@@ -29,6 +27,14 @@ index 24d0823..3d4573e 100644
#include <llvm-c/Transforms/Utils.h>
#endif
#include <llvm-c/BitWriter.h>
---
-2.41.0
-
+@@ -53,8 +55,10 @@
+ #if LLVM_VERSION_MAJOR <= 8 && (DETECT_ARCH_AARCH64 || DETECT_ARCH_ARM || DETECT_ARCH_S390 || DETECT_ARCH_MIPS64)
+ #include <llvm-c/Transforms/IPO.h>
+ #endif
++#if LLVM_VERSION_MAJOR < 17
+ #include <llvm-c/Transforms/Coroutines.h>
+ #endif
++#endif
+
+ unsigned gallivm_perf = 0;
+
diff --git a/poky/meta/recipes-graphics/mesa/files/0001-meson-Disable-cmake-dependency-detector-for-llvm.patch b/poky/meta/recipes-graphics/mesa/files/0001-meson-Disable-cmake-dependency-detector-for-llvm.patch
new file mode 100644
index 0000000000..4cded0546d
--- /dev/null
+++ b/poky/meta/recipes-graphics/mesa/files/0001-meson-Disable-cmake-dependency-detector-for-llvm.patch
@@ -0,0 +1,42 @@
+From 00d41cd5aa3f4b494dc276c9b4ccdc096310c91f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 28 Sep 2023 15:34:22 -0700
+Subject: [PATCH] meson: use llvm-config instead of cmake to fix linking errors with meson 1.2.1
+
+meson dependency auto dependency detection uses cmake and then
+config-tool to process dependencies, in mesa the logic to detect llvm is
+using auto detection which means if it finds cmake then it will try to
+use cmake method. Cmake method works ok except a case when llvm-dev
+package is installed on the build host then it generates its own
+native.meson file and ignores OE supplied meson.native file which has
+correct llvm-config tool specified which is pointing to llvm-config from
+native sysroot. The generated meson.native file points to one found in
+/usr/bin and there onwards detector finds native install of llvm and
+configures that into building native mesa package.
+
+Since cmake detector does not always work, disable it by default and use
+config-tool which works in all cases. This is suggested in below issues
+too
+
+A similar issue is open in meson upstream [1] and mesa [2]
+
+[1] https://github.com/mesonbuild/meson/issues/10483
+[2] https://gitlab.freedesktop.org/mesa/mesa/-/issues/6738
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25438]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ meson.build | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/meson.build
++++ b/meson.build
+@@ -1659,6 +1659,7 @@ with_llvm = false
+ if _llvm.allowed()
+ dep_llvm = dependency(
+ 'llvm',
++ method : host_machine.system() == 'windows' ? 'auto' : 'config-tool',
+ version : _llvm_version,
+ modules : llvm_modules,
+ optional_modules : llvm_optional_modules,
diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_23.1.3.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_23.1.8.bb
index ca160f1bfc..ca160f1bfc 100644
--- a/poky/meta/recipes-graphics/mesa/mesa-gl_23.1.3.bb
+++ b/poky/meta/recipes-graphics/mesa/mesa-gl_23.1.8.bb
diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc
index 83535eb472..4e824500dd 100644
--- a/poky/meta/recipes-graphics/mesa/mesa.inc
+++ b/poky/meta/recipes-graphics/mesa/mesa.inc
@@ -19,9 +19,10 @@ SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \
file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
file://0001-gallium-Fix-build-with-llvm-17.patch \
file://0001-intel-Allow-using-intel_clc-from-the-system.patch \
+ file://0001-meson-Disable-cmake-dependency-detector-for-llvm.patch \
"
-SRC_URI[sha256sum] = "2f6d7381bc10fbd2d6263ad1022785b8b511046c1a904162f8f7da18eea8aed9"
+SRC_URI[sha256sum] = "45434ff91a709844130a3174d9c0ef39c6b50725b2bb0c13e736f36134db14ad"
UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
diff --git a/poky/meta/recipes-graphics/mesa/mesa_23.1.3.bb b/poky/meta/recipes-graphics/mesa/mesa_23.1.8.bb
index 96e8aa38d6..96e8aa38d6 100644
--- a/poky/meta/recipes-graphics/mesa/mesa_23.1.3.bb
+++ b/poky/meta/recipes-graphics/mesa/mesa_23.1.8.bb
diff --git a/poky/meta/recipes-graphics/mini-x-session/mini-x-session_0.1.bb b/poky/meta/recipes-graphics/mini-x-session/mini-x-session_0.1.bb
index 12c72edb79..ba81d0b17a 100644
--- a/poky/meta/recipes-graphics/mini-x-session/mini-x-session_0.1.bb
+++ b/poky/meta/recipes-graphics/mini-x-session/mini-x-session_0.1.bb
@@ -3,7 +3,6 @@ DESCRIPTION = "Simple session manager for X, that provides just the right boiler
HOMEPAGE = "http://www.yoctoproject.org"
BUGTRACKER = "http://bugzilla.pokylinux.org"
-PR = "r4"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://mini-x-session;endline=5;md5=b6430bffbcf05f9760e72938826b7487"
diff --git a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-weston.bb b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-weston.bb
index 0ce91ca940..dd302c89e7 100644
--- a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-weston.bb
+++ b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-weston.bb
@@ -1,6 +1,5 @@
SUMMARY = "Basic Weston compositor setup"
DESCRIPTION = "Packages required to set up a basic working Weston session"
-PR = "r1"
inherit packagegroup features_check
diff --git a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb
index 0185c93354..db6242af33 100644
--- a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb
+++ b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb
@@ -1,6 +1,5 @@
SUMMARY = "Basic X11 session"
DESCRIPTION = "Packages required to set up a basic working X11 session"
-PR = "r1"
inherit packagegroup features_check
# rdepends on matchbox-wm
diff --git a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb
index 3bb308fbba..ebc1330055 100644
--- a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb
+++ b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb
@@ -3,7 +3,6 @@
#
SUMMARY = "X11 display server"
-PR = "r40"
PACKAGE_ARCH = "${MACHINE_ARCH}"
@@ -11,7 +10,10 @@ inherit packagegroup features_check
# rdepends on XSERVER
REQUIRED_DISTRO_FEATURES = "x11"
-XSERVER ?= "xserver-xorg xf86-video-fbdev"
+XSERVER ?= "xserver-xorg \
+ xf86-video-fbdev \
+ xf86-video-modesetting \
+ "
XSERVERCODECS ?= ""
RDEPENDS:${PN} = "\
diff --git a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb
index 9ca058b38b..91db7ed33b 100644
--- a/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb
+++ b/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb
@@ -2,7 +2,6 @@
# Copyright (C) 2011 Intel Corporation
#
-PR = "r40"
inherit packagegroup features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-graphics/piglit/piglit/0001-cmake-install-bash-completions-in-the-right-place.patch b/poky/meta/recipes-graphics/piglit/piglit/0001-cmake-install-bash-completions-in-the-right-place.patch
deleted file mode 100644
index e07e810a73..0000000000
--- a/poky/meta/recipes-graphics/piglit/piglit/0001-cmake-install-bash-completions-in-the-right-place.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 26faa2c157a27a18a9f767976730fe0c115e3af4 Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Wed, 13 Jul 2016 19:19:02 +0300
-Subject: [PATCH] cmake: install bash-completions in the right place
-
-The completionsdir variable is a full path and should not be
-prefixed.
-
-This does mean the files may be installed outside of
-CMAKE_INSTALL_PREFIX -- the alternative is more difficult and
-means that bash completion files may be installed where
-bash-completion can't find them.
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Upstream-Status: Submitted [mailing list]
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 8e2abba..784a8f9 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -532,7 +532,7 @@ install (
- if (BASH_COMPLETION_FOUND)
- install(
- FILES completions/bash/piglit
-- DESTINATION ${CMAKE_INSTALL_PREFIX}/${BASH_COMPLETION_COMPLETIONSDIR}/
-+ DESTINATION ${BASH_COMPLETION_COMPLETIONSDIR}/
- )
- endif (BASH_COMPLETION_FOUND)
-
---
-2.8.1
-
diff --git a/poky/meta/recipes-graphics/piglit/piglit_git.bb b/poky/meta/recipes-graphics/piglit/piglit_git.bb
index 62cada7590..69294c6c94 100644
--- a/poky/meta/recipes-graphics/piglit/piglit_git.bb
+++ b/poky/meta/recipes-graphics/piglit/piglit_git.bb
@@ -7,14 +7,13 @@ LICENSE = "MIT & LGPL-2.0-or-later & GPL-3.0-only & GPL-2.0-or-later & BSD-3-Cla
LIC_FILES_CHKSUM = "file://COPYING;md5=b2beded7103a3d8a442a2a0391d607b0"
SRC_URI = "git://gitlab.freedesktop.org/mesa/piglit.git;protocol=https;branch=main \
- file://0001-cmake-install-bash-completions-in-the-right-place.patch \
file://0002-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch \
file://0003-tests-util-piglit-shader.c-do-not-hardcode-build-pat.patch \
file://0001-tests-Fix-narrowing-errors-seen-with-clang.patch \
"
UPSTREAM_CHECK_COMMITS = "1"
-SRCREV = "5036601c43fff63f7be5cd8ad7b319a5c1f6652c"
+SRCREV = "71c21b1157c4f9a96453bdfcb9f4dda091360afd"
# (when PV goes above 1.0 remove the trailing r)
PV = "1.0+gitr"
diff --git a/poky/meta/recipes-graphics/spir/spirv-headers_1.3.250.0.bb b/poky/meta/recipes-graphics/spir/spirv-headers_1.3.261.1.bb
index d0a2e2e991..945f0879f5 100644
--- a/poky/meta/recipes-graphics/spir/spirv-headers_1.3.250.0.bb
+++ b/poky/meta/recipes-graphics/spir/spirv-headers_1.3.261.1.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "https://www.khronos.org/registry/spir-v"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c938b85bceb8fb26c1a807f28a52ae2d"
-SRCREV = "268a061764ee69f09a477a695bf6a11ffe311b8d"
+SRCREV = "124a9665e464ef98b8b718d572d5f329311061eb"
SRC_URI = "git://github.com/KhronosGroup/SPIRV-Headers;protocol=https;branch=main"
PE = "1"
# These recipes need to be updated in lockstep with each other:
diff --git a/poky/meta/recipes-graphics/spir/spirv-tools_1.3.250.0.bb b/poky/meta/recipes-graphics/spir/spirv-tools_1.3.261.1.bb
index bde6ddd04b..6904288299 100644
--- a/poky/meta/recipes-graphics/spir/spirv-tools_1.3.250.0.bb
+++ b/poky/meta/recipes-graphics/spir/spirv-tools_1.3.261.1.bb
@@ -7,7 +7,7 @@ SECTION = "graphics"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-SRCREV = "e7c6084fd1d6d6f5ac393e842728d8be309688ca"
+SRCREV = "e553b884c7c9febaa4e52334f683641fb5f196a0"
SRC_URI = "git://github.com/KhronosGroup/SPIRV-Tools.git;branch=main;protocol=https"
PE = "1"
# These recipes need to be updated in lockstep with each other:
diff --git a/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb b/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb
index efd426f8c4..aa18881a12 100644
--- a/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb
+++ b/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb
@@ -13,7 +13,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a2ae2cd47d6d2f238410f5364dfbc0f2 \
file://libsn/sn-common.h;endline=23;md5=6d05bc0ebdcf5513a6e77cb26e8cd7e2 \
file://test/test-boilerplate.h;endline=23;md5=923e706b2a70586176eead261cc5bb98"
-PR = "r2"
SECTION = "libs"
diff --git a/poky/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb b/poky/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb
index d3d1cfde60..0fc075a468 100644
--- a/poky/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb
+++ b/poky/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb
@@ -8,7 +8,6 @@ but is visibly different than normal and bold, and reasonably pleasing."
SECTION = "x11/fonts"
LICENSE = "BitstreamVera"
LIC_FILES_CHKSUM = "file://COPYRIGHT.TXT;md5=27d7484b1e18d0ee4ce538644a3f04be"
-PR = "r8"
inherit allarch fontcache
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.3.250.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.3.261.1.bb
index 2970767ff3..01eb14b9fb 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.3.250.0.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.3.261.1.bb
@@ -7,11 +7,11 @@ HOMEPAGE = "https://www.khronos.org/vulkan/"
BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-Headers"
SECTION = "libs"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
+LICENSE = "Apache-2.0 & MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=1bc355d8c4196f774c8b87ed1a8dd625"
SRC_URI = "git://github.com/KhronosGroup/Vulkan-Headers.git;branch=main;protocol=https"
-SRCREV = "9e61870ecbd32514113b467e0a0c46f60ed222c7"
+SRCREV = "85c2334e92e215cce34e8e0ed8b2dce4700f4a50"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.3.250.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.3.261.1.bb
index 456c973406..01cbeafa3e 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.3.250.0.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.3.261.1.bb
@@ -9,8 +9,8 @@ SECTION = "libs"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7dbefed23242760aa3475ee42801c5ac"
-SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git;branch=sdk-1.3.250;protocol=https"
-SRCREV = "f372068d09fc13bcf54b8c81274f37aa5f46aea3"
+SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git;branch=main;protocol=https"
+SRCREV = "afdd025ead2b63b2c73d900ab128a2d3b512cdf0"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-tools/0001-scripts-CMakeLists.txt-do-not-make-special-arrangeme.patch b/poky/meta/recipes-graphics/vulkan/vulkan-tools/0001-scripts-CMakeLists.txt-do-not-make-special-arrangeme.patch
deleted file mode 100644
index 6b70a1e62d..0000000000
--- a/poky/meta/recipes-graphics/vulkan/vulkan-tools/0001-scripts-CMakeLists.txt-do-not-make-special-arrangeme.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 9060e916ca05d34b56c62f2be0b4a77dd104e2aa Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Fri, 2 Jun 2023 14:13:00 +0200
-Subject: [PATCH] scripts/CMakeLists.txt: append to CMAKE_FIND_ROOT_PATH
- instead of replacing it
-
-Resetting CMAKE_FIND_ROOT_PATH in particular breaks builds in Yocto
-(which is a major cross compiling framework).
-
-Upstream-Status: Submitted [https://github.com/KhronosGroup/Vulkan-Tools/pull/808]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
-
----
- scripts/CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
-index 5b979d43..19a58bf9 100644
---- a/scripts/CMakeLists.txt
-+++ b/scripts/CMakeLists.txt
-@@ -114,7 +114,7 @@ if (MOLTENVK_REPO_ROOT)
- endif()
-
- if (CMAKE_CROSSCOMPILING)
-- set(CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
-+ set(CMAKE_FIND_ROOT_PATH ${CMAKE_FIND_ROOT_PATH} ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
- else()
- set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
- endif()
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.3.250.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.3.261.1.bb
index 0346b380ee..7a7edc9ebd 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.3.250.0.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.3.261.1.bb
@@ -6,10 +6,8 @@ SECTION = "libs"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
-SRC_URI = "git://github.com/KhronosGroup/Vulkan-Tools.git;branch=main;protocol=https \
- file://0001-scripts-CMakeLists.txt-do-not-make-special-arrangeme.patch \
- "
-SRCREV = "695887a994ef9cc00a7aa3f9c00b31a56ea79534"
+SRC_URI = "git://github.com/KhronosGroup/Vulkan-Tools.git;branch=main;protocol=https"
+SRCREV = "a7da7027ca9fd0901639f02619c226da9c6036f1"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-validation-layers/0001-scripts-CMakeLists.txt-append-to-CMAKE_FIND_ROOT_PAT.patch b/poky/meta/recipes-graphics/vulkan/vulkan-validation-layers/0001-scripts-CMakeLists.txt-append-to-CMAKE_FIND_ROOT_PAT.patch
deleted file mode 100644
index 4db686fe2f..0000000000
--- a/poky/meta/recipes-graphics/vulkan/vulkan-validation-layers/0001-scripts-CMakeLists.txt-append-to-CMAKE_FIND_ROOT_PAT.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From ea7b9e6fc0b3f45d6032ce624bed85bbde5ec0bf Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Wed, 21 Jun 2023 20:03:03 +0200
-Subject: [PATCH] scripts/CMakeLists.txt: append to CMAKE_FIND_ROOT_PATH
- instead of replacing it
-
-Resetting CMAKE_FIND_ROOT_PATH in particular breaks builds in Yocto
-(which is a major cross compiling framework).
-
-Upstream-Status: Backport [https://github.com/KhronosGroup/Vulkan-ValidationLayers/commit/e1b11dc7856765cf45a283ac805ea5066c81cd9b]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- scripts/CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
-index 94c8528c8..cd86c54eb 100644
---- a/scripts/CMakeLists.txt
-+++ b/scripts/CMakeLists.txt
-@@ -124,7 +124,7 @@ if (MIMALLOC_INSTALL_DIR)
- endif()
-
- if (CMAKE_CROSSCOMPILING)
-- set(CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
-+ set(CMAKE_FIND_ROOT_PATH ${CMAKE_FIND_ROOT_PATH} ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
- else()
- set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
- endif()
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.250.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.261.1.bb
index 62c6343c45..1e2a0acedb 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.250.0.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.261.1.bb
@@ -5,13 +5,11 @@ HOMEPAGE = "https://www.khronos.org/vulkan/"
BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-ValidationLayers"
SECTION = "libs"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8df9e8826734226d08cb412babfa599c"
+LICENSE = "Apache-2.0 & MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cd3c0bc366cd9b6a906e22f0bcb5910f"
-SRC_URI = "git://git@github.com/KhronosGroup/Vulkan-ValidationLayers.git;branch=sdk-1.3.250;protocol=https \
- file://0001-scripts-CMakeLists.txt-append-to-CMAKE_FIND_ROOT_PAT.patch \
- "
-SRCREV = "1541e00a63cd125f15d231d5a8059ebe66503b25"
+SRC_URI = "git://git@github.com/KhronosGroup/Vulkan-ValidationLayers.git;branch=sdk-1.3.261;protocol=https"
+SRCREV = "628cd310bef6d54b4e6b25b5ac2ed013473409d6"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-graphics/wayland/files/0001-wayland-info-Fix-build-without-libdrm.patch b/poky/meta/recipes-graphics/wayland/files/0001-wayland-info-Fix-build-without-libdrm.patch
deleted file mode 100644
index 86c44d4480..0000000000
--- a/poky/meta/recipes-graphics/wayland/files/0001-wayland-info-Fix-build-without-libdrm.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From c79a3fb51718c4286b74edf0f758df9219994844 Mon Sep 17 00:00:00 2001
-From: Olivier Fourdan <ofourdan@redhat.com>
-Date: Wed, 14 Sep 2022 09:07:10 +0200
-Subject: [PATCH] wayland-info: Fix build without libdrm
-
-wayland-info can optionally use libdrm to provide a description of the
-dmabuf format modifiers.
-
-When not using libdrm however, the build fails because "dev_t" is not
-defined.
-
-The definition of "dev_t" comes from <sys/types.h> which is included
-from <libdrm.h>, which is not included without libdrm support, hence the
-build failure.
-
-Simply include <sys/types.h> unconditionally to make sure "dev_t" is
-defined regardless of libdrm support, to fix the build failure.
-
-Closes: https://gitlab.freedesktop.org/wayland/wayland-utils/-/issues/6
-Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
-Fixes: 240cb739 - "Add support for linux_dmabuf version 4"
-Reviewed-by: Simon Ser <contact@emersion.fr>
-Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-
-Upstream-Status: Backport [https://gitlab.freedesktop.org/wayland/wayland-utils/-/commit/baa65ba9f62e6a05c32b9202b524158a21f24245]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- wayland-info/wayland-info.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/wayland-info/wayland-info.c b/wayland-info/wayland-info.c
-index 53cd04b..98ff205 100644
---- a/wayland-info/wayland-info.c
-+++ b/wayland-info/wayland-info.c
-@@ -34,6 +34,7 @@
- #include <ctype.h>
- #include <unistd.h>
- #include <sys/mman.h>
-+#include <sys/types.h>
-
- #include <wayland-client.h>
- #if HAVE_HUMAN_FORMAT_MODIFIER
diff --git a/poky/meta/recipes-graphics/wayland/libinput_1.23.0.bb b/poky/meta/recipes-graphics/wayland/libinput_1.24.0.bb
index b83d5fdb43..49a1da2b22 100644
--- a/poky/meta/recipes-graphics/wayland/libinput_1.23.0.bb
+++ b/poky/meta/recipes-graphics/wayland/libinput_1.24.0.bb
@@ -15,7 +15,7 @@ DEPENDS = "libevdev udev mtdev libcheck"
SRC_URI = "git://gitlab.freedesktop.org/libinput/libinput.git;protocol=https;branch=main \
file://run-ptest \
"
-SRCREV = "0b005eb64b12603e65a620a77c67ec62fd03f413"
+SRCREV = "1680f2fbaa63a91739012c6b57988ab1918ea0b7"
S = "${WORKDIR}/git"
UPSTREAM_CHECK_REGEX = "libinput-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
diff --git a/poky/meta/recipes-graphics/wayland/wayland-utils_1.1.0.bb b/poky/meta/recipes-graphics/wayland/wayland-utils_1.2.0.bb
index 48e1409be8..657f67fb09 100644
--- a/poky/meta/recipes-graphics/wayland/wayland-utils_1.1.0.bb
+++ b/poky/meta/recipes-graphics/wayland/wayland-utils_1.2.0.bb
@@ -9,10 +9,8 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=548a66038a77415e1df51118625e832f \
"
-SRC_URI = "https://gitlab.freedesktop.org/wayland/wayland-utils/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz \
- file://0001-wayland-info-Fix-build-without-libdrm.patch \
- "
-SRC_URI[sha256sum] = "9e685863025b4feade36d53bbc8e31b43e26498be743dea84c7a84912959410a"
+SRC_URI = "https://gitlab.freedesktop.org/wayland/wayland-utils/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "d9278c22554586881802540751bcc42569262bf80cd9ac9b0fd12ff4bd09a9e4"
UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
diff --git a/poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb b/poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb
index 3cc8e9ed4d..671c0a290e 100644
--- a/poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb
+++ b/poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb
@@ -2,7 +2,6 @@ SUMMARY = "Simple Xserver Init Script (no dm)"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
SECTION = "x11"
-PR = "r31"
SRC_URI = "file://xserver-nodm \
file://Xserver \
diff --git a/poky/meta/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb b/poky/meta/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb
index b77c940dde..5c9742fb20 100644
--- a/poky/meta/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb
+++ b/poky/meta/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb
@@ -5,7 +5,6 @@ BUGTRACKER = "https://github.com/tias/xinput_calibrator/issues"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-PR = "r7"
SRC_URI = "file://pointercal.xinput"
S = "${WORKDIR}"
diff --git a/poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb b/poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
index 05f07c190e..7b49668f92 100644
--- a/poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
+++ b/poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
@@ -5,7 +5,6 @@ LIC_FILES_CHKSUM = "file://src/calibrator.cpp;endline=22;md5=1bcba08f67cdb56f340
DEPENDS = "virtual/libx11 libxi libxrandr"
PV = "0.7.5+git"
-PR = "r6"
inherit autotools pkgconfig features_check
# depends on virtual/libx11
diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_1.3.0.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_1.4.0.bb
index 892046e959..92272c3f2a 100644
--- a/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_1.3.0.bb
+++ b/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_1.4.0.bb
@@ -7,6 +7,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a22925127bd3c827c384cedd23ed2309"
DEPENDS += "libinput"
XORG_DRIVER_COMPRESSOR = ".tar.xz"
-SRC_URI[sha256sum] = "1446ba20a22bc968b5a4a0b4dbc3b8e037c50d9c59ac75fa3f7fc506c58c1abb"
+SRC_URI[sha256sum] = "3a3d14cd895dc75b59ae2783b888031956a0bac7a1eff16d240dbb9d5df3e398"
FILES:${PN} += "${datadir}/X11/xorg.conf.d"
diff --git a/poky/meta/recipes-graphics/xorg-font/font-util_1.4.0.bb b/poky/meta/recipes-graphics/xorg-font/font-util_1.4.1.bb
index db82104afe..0c65927fb4 100644
--- a/poky/meta/recipes-graphics/xorg-font/font-util_1.4.0.bb
+++ b/poky/meta/recipes-graphics/xorg-font/font-util_1.4.1.bb
@@ -2,12 +2,12 @@ SUMMARY = "X.Org font package creation/installation utilities"
require xorg-font-common.inc
-#Unicode is MIT
-LICENSE = "MIT & MIT & BSD-4-Clause & BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5df208ec65eb84ce5bb8d82d8f3b9675 \
+LICENSE = "Unicode-TOU & BSD-4-Clause & BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2a9e705c00e463c8d294f90486852e06 \
file://ucs2any.c;endline=28;md5=8357dc567fc628bd12696f15b2a33bcb \
file://bdftruncate.c;endline=26;md5=4f82ffc101a1b165eae9c6998abff937 \
- file://map-ISO8859-1;beginline=9;endline=23;md5=1cecb984063248f29ffe5c46f5c04f34"
+ file://map-ISO8859-1;beginline=1;endline=4;md5=9c9c1d525d29c0e82b5c99edbb8e71c1 \
+ "
DEPENDS = "encodings util-macros"
DEPENDS:class-native = "util-macros-native"
@@ -16,7 +16,7 @@ RDEPENDS:${PN}:class-native = ""
BBCLASSEXTEND = "native"
-SRC_URI[sha256sum] = "9f724bf940128c7e39f7252bd961cd38cfac2359de2100a8bed696bf40d40f7d"
+SRC_URI[sha256sum] = "5c9f64123c194b150fee89049991687386e6ff36ef2af7b80ba53efaf368cc95"
SYSROOT_DIRS_IGNORE:remove = "${datadir}/fonts"
diff --git a/poky/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb b/poky/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb
index babde4b099..d32ef77447 100644
--- a/poky/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb
+++ b/poky/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb
@@ -13,7 +13,6 @@ SRC_URI = "file://misc"
SOURCE_DATE_EPOCH = "1613559011"
PE = "1"
-PR = "r4"
inherit allarch features_check
diff --git a/poky/meta/recipes-graphics/xorg-lib/libxcb_1.15.bb b/poky/meta/recipes-graphics/xorg-lib/libxcb_1.16.bb
index 411f51ac39..04b1eaa910 100644
--- a/poky/meta/recipes-graphics/xorg-lib/libxcb_1.15.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/libxcb_1.16.bb
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d763b081cb10c223435b01e00dc0aba7"
SRC_URI = "http://xcb.freedesktop.org/dist/libxcb-${PV}.tar.xz \
file://0001-use-_Alignof-to-avoid-UB-in-ALIGNOF.patch"
-SRC_URI[sha256sum] = "cc38744f817cf6814c847e2df37fcb8997357d72fa4bcbc228ae0fe47219a059"
+SRC_URI[sha256sum] = "4348566aa0fbf196db5e0a576321c65966189210cb51328ea2bb2be39c711d71"
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/xorg-proto/xcb-proto_1.15.2.bb b/poky/meta/recipes-graphics/xorg-proto/xcb-proto_1.16.0.bb
index e60e7958a7..67c1e8d97d 100644
--- a/poky/meta/recipes-graphics/xorg-proto/xcb-proto_1.15.2.bb
+++ b/poky/meta/recipes-graphics/xorg-proto/xcb-proto_1.16.0.bb
@@ -15,7 +15,7 @@ SRC_URI = "https://xorg.freedesktop.org/archive/individual/proto/${BP}.tar.xz \
file://0001-xcb-proto.pc.in-reinstate-libdir.patch \
file://0001-Fix-install-conflict-when-enable-multilib.patch \
"
-SRC_URI[sha256sum] = "7072beb1f680a2fe3f9e535b797c146d22528990c72f63ddb49d2f350a3653ed"
+SRC_URI[sha256sum] = "a75a1848ad2a89a82d841a51be56ce988ff3c63a8d6bf4383ae3219d8d915119"
inherit autotools pkgconfig python3native
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb b/poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb
index f82a6960e6..03f14cef2b 100644
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb
+++ b/poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb
@@ -3,7 +3,6 @@ HOMEPAGE = "http://www.x.org"
SECTION = "x11/base"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-PR = "r33"
SRC_URI = "file://xorg.conf"
diff --git a/poky/meta/recipes-graphics/xrestop/xrestop_0.4.bb b/poky/meta/recipes-graphics/xrestop/xrestop_0.4.bb
index 0b5ab506e3..a6b6c4238d 100644
--- a/poky/meta/recipes-graphics/xrestop/xrestop_0.4.bb
+++ b/poky/meta/recipes-graphics/xrestop/xrestop_0.4.bb
@@ -10,7 +10,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://xrestop.c;endline=18;md5=730876c30f0d8a928676bcd1242a3b35"
SECTION = "x11/utils"
-PR = "r3"
DEPENDS = "libxres libxext virtual/libx11 ncurses"
diff --git a/poky/meta/recipes-graphics/xwayland/xwayland_23.1.2.bb b/poky/meta/recipes-graphics/xwayland/xwayland_23.2.1.bb
index de516536d1..e97a921a96 100644
--- a/poky/meta/recipes-graphics/xwayland/xwayland_23.1.2.bb
+++ b/poky/meta/recipes-graphics/xwayland/xwayland_23.2.1.bb
@@ -10,7 +10,7 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=5df87950af51ac2c5822094553ea1880"
SRC_URI = "https://www.x.org/archive/individual/xserver/xwayland-${PV}.tar.xz"
-SRC_URI[sha256sum] = "bd25d8498ee4d77874fda125127e2db37fc332531febc966231ea06fae8cf77f"
+SRC_URI[sha256sum] = "eebc2692c3aa80617d78428bc6ec7b91b254a98214d2a70e997098503cd6ef90"
UPSTREAM_CHECK_REGEX = "xwayland-(?P<pver>\d+(\.(?!90\d)\d+)+)\.tar"
diff --git a/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.26.bb b/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.27.bb
index 11a3c4f47e..9b9864da9a 100644
--- a/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.26.bb
+++ b/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.27.bb
@@ -19,7 +19,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz
file://0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch \
"
-SRC_URI[sha256sum] = "89bdd941542c64fec16311858df304ed3a3908c1a60874d69df5d9bf1611e062"
+SRC_URI[sha256sum] = "410f89057d1f4cd2b0477b6c2035ec2c52e21c185e90742bbae8b4f78a7077a5"
inherit autotools update-rc.d systemd
diff --git a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.4.bb b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.5.bb
index c52315499e..fa902741f2 100644
--- a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.4.bb
+++ b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.5.bb
@@ -12,6 +12,6 @@ SRC_URI += "\
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-SRC_URI[sha256sum] = "8fa0588f0c2ceca44cac77a0e39ba48c9f00a6b9dc69761c02a5d3efac8da7f3"
+SRC_URI[sha256sum] = "7a574bbc20802ea76b52ca7faf07267f72045e861b18915c5272a98c27abf884"
diff --git a/poky/meta/recipes-kernel/linux/cve-exclusion_6.1.inc b/poky/meta/recipes-kernel/linux/cve-exclusion_6.1.inc
index 41ee8bcad5..88c7e4589a 100644
--- a/poky/meta/recipes-kernel/linux/cve-exclusion_6.1.inc
+++ b/poky/meta/recipes-kernel/linux/cve-exclusion_6.1.inc
@@ -1,9 +1,9 @@
# Auto-generated CVE metadata, DO NOT EDIT BY HAND.
-# Generated at 2023-09-07 15:29:54.983415+00:00 for version 6.1.51
+# Generated at 2023-09-30 07:26:16.988526+00:00 for version 6.1.55
python check_kernel_cve_status_version() {
- this_version = "6.1.51"
+ this_version = "6.1.55"
kernel_version = d.getVar("LINUX_VERSION")
if kernel_version != this_version:
bb.warn("Kernel CVE status needs updating: generated for %s but kernel is %s" % (this_version, kernel_version))
@@ -3450,6 +3450,8 @@ CVE_STATUS[CVE-2020-36691] = "fixed-version: Fixed from version 5.8rc1"
CVE_STATUS[CVE-2020-36694] = "fixed-version: Fixed from version 5.10"
+CVE_STATUS[CVE-2020-36766] = "fixed-version: Fixed from version 5.9rc1"
+
CVE_STATUS[CVE-2020-3702] = "fixed-version: Fixed from version 5.12rc1"
CVE_STATUS[CVE-2020-4788] = "fixed-version: Fixed from version 5.10rc5"
@@ -4518,9 +4520,9 @@ CVE_STATUS[CVE-2022-4382] = "cpe-stable-backport: Backported in 6.1.8"
CVE_STATUS[CVE-2022-43945] = "fixed-version: Fixed from version 6.1rc1"
-# CVE-2022-44032 has no known resolution
+# CVE-2022-44032 needs backporting (fixed from 6.4rc1)
-# CVE-2022-44033 has no known resolution
+# CVE-2022-44033 needs backporting (fixed from 6.4rc1)
# CVE-2022-44034 has no known resolution
@@ -4532,13 +4534,13 @@ CVE_STATUS[CVE-2022-45869] = "fixed-version: Fixed from version 6.1rc7"
# CVE-2022-45885 has no known resolution
-# CVE-2022-45886 has no known resolution
+CVE_STATUS[CVE-2022-45886] = "cpe-stable-backport: Backported in 6.1.33"
-# CVE-2022-45887 has no known resolution
+CVE_STATUS[CVE-2022-45887] = "cpe-stable-backport: Backported in 6.1.33"
# CVE-2022-45888 needs backporting (fixed from 6.2rc1)
-# CVE-2022-45919 has no known resolution
+CVE_STATUS[CVE-2022-45919] = "cpe-stable-backport: Backported in 6.1.33"
CVE_STATUS[CVE-2022-45934] = "fixed-version: Fixed from version 6.1"
@@ -4644,7 +4646,7 @@ CVE_STATUS[CVE-2023-1192] = "cpe-stable-backport: Backported in 6.1.33"
# CVE-2023-1193 has no known resolution
-# CVE-2023-1194 has no known resolution
+CVE_STATUS[CVE-2023-1194] = "cpe-stable-backport: Backported in 6.1.34"
CVE_STATUS[CVE-2023-1195] = "fixed-version: Fixed from version 6.1rc3"
@@ -4786,7 +4788,7 @@ CVE_STATUS[CVE-2023-23559] = "cpe-stable-backport: Backported in 6.1.9"
CVE_STATUS[CVE-2023-23586] = "fixed-version: Fixed from version 5.12rc1"
-# CVE-2023-2430 needs backporting (fixed from 6.2rc5)
+CVE_STATUS[CVE-2023-2430] = "cpe-stable-backport: Backported in 6.1.50"
CVE_STATUS[CVE-2023-2483] = "cpe-stable-backport: Backported in 6.1.22"
@@ -4794,6 +4796,8 @@ CVE_STATUS[CVE-2023-25012] = "cpe-stable-backport: Backported in 6.1.16"
CVE_STATUS[CVE-2023-2513] = "fixed-version: Fixed from version 6.0rc1"
+CVE_STATUS[CVE-2023-25775] = "cpe-stable-backport: Backported in 6.1.53"
+
CVE_STATUS[CVE-2023-2598] = "fixed-version: only affects 6.3rc1 onwards"
# CVE-2023-26242 has no known resolution
@@ -4848,7 +4852,7 @@ CVE_STATUS[CVE-2023-3106] = "fixed-version: Fixed from version 4.8rc7"
# CVE-2023-31082 has no known resolution
-# CVE-2023-31083 has no known resolution
+# CVE-2023-31083 needs backporting (fixed from 6.6rc1)
# CVE-2023-31084 needs backporting (fixed from 6.4rc3)
@@ -4962,7 +4966,7 @@ CVE_STATUS[CVE-2023-3611] = "cpe-stable-backport: Backported in 6.1.40"
# CVE-2023-3640 has no known resolution
-# CVE-2023-37453 has no known resolution
+CVE_STATUS[CVE-2023-37453] = "fixed-version: only affects 6.3rc1 onwards"
# CVE-2023-37454 has no known resolution
@@ -4972,6 +4976,8 @@ CVE_STATUS[CVE-2023-3773] = "cpe-stable-backport: Backported in 6.1.47"
CVE_STATUS[CVE-2023-3776] = "cpe-stable-backport: Backported in 6.1.40"
+CVE_STATUS[CVE-2023-3777] = "cpe-stable-backport: Backported in 6.1.42"
+
CVE_STATUS[CVE-2023-3812] = "fixed-version: Fixed from version 6.1rc4"
CVE_STATUS[CVE-2023-38409] = "cpe-stable-backport: Backported in 6.1.25"
@@ -4992,10 +4998,18 @@ CVE_STATUS[CVE-2023-38432] = "cpe-stable-backport: Backported in 6.1.36"
CVE_STATUS[CVE-2023-3863] = "cpe-stable-backport: Backported in 6.1.39"
+CVE_STATUS[CVE-2023-3865] = "cpe-stable-backport: Backported in 6.1.36"
+
+CVE_STATUS[CVE-2023-3866] = "cpe-stable-backport: Backported in 6.1.36"
+
+CVE_STATUS[CVE-2023-3867] = "cpe-stable-backport: Backported in 6.1.40"
+
CVE_STATUS[CVE-2023-4004] = "cpe-stable-backport: Backported in 6.1.42"
# CVE-2023-4010 has no known resolution
+CVE_STATUS[CVE-2023-4015] = "cpe-stable-backport: Backported in 6.1.43"
+
CVE_STATUS[CVE-2023-40283] = "cpe-stable-backport: Backported in 6.1.45"
CVE_STATUS[CVE-2023-4128] = "cpe-stable-backport: Backported in 6.1.45"
@@ -5012,8 +5026,22 @@ CVE_STATUS[CVE-2023-4155] = "cpe-stable-backport: Backported in 6.1.46"
CVE_STATUS[CVE-2023-4194] = "fixed-version: only affects 6.3rc1 onwards"
+CVE_STATUS[CVE-2023-4206] = "cpe-stable-backport: Backported in 6.1.45"
+
+CVE_STATUS[CVE-2023-4207] = "cpe-stable-backport: Backported in 6.1.45"
+
+CVE_STATUS[CVE-2023-4208] = "cpe-stable-backport: Backported in 6.1.45"
+
+# CVE-2023-4244 needs backporting (fixed from 6.5rc7)
+
CVE_STATUS[CVE-2023-4273] = "cpe-stable-backport: Backported in 6.1.45"
+CVE_STATUS[CVE-2023-42752] = "cpe-stable-backport: Backported in 6.1.53"
+
+CVE_STATUS[CVE-2023-42753] = "cpe-stable-backport: Backported in 6.1.53"
+
+CVE_STATUS[CVE-2023-42755] = "cpe-stable-backport: Backported in 6.1.55"
+
CVE_STATUS[CVE-2023-4385] = "fixed-version: Fixed from version 5.19rc1"
CVE_STATUS[CVE-2023-4387] = "fixed-version: Fixed from version 5.18"
@@ -5024,3 +5052,21 @@ CVE_STATUS[CVE-2023-4394] = "fixed-version: Fixed from version 6.0rc3"
CVE_STATUS[CVE-2023-4459] = "fixed-version: Fixed from version 5.18"
+# CVE-2023-4563 needs backporting (fixed from 6.5rc6)
+
+CVE_STATUS[CVE-2023-4569] = "cpe-stable-backport: Backported in 6.1.47"
+
+CVE_STATUS[CVE-2023-4611] = "fixed-version: only affects 6.4rc1 onwards"
+
+# CVE-2023-4622 needs backporting (fixed from 6.5rc1)
+
+CVE_STATUS[CVE-2023-4623] = "cpe-stable-backport: Backported in 6.1.53"
+
+CVE_STATUS[CVE-2023-4881] = "cpe-stable-backport: Backported in 6.1.54"
+
+CVE_STATUS[CVE-2023-4921] = "cpe-stable-backport: Backported in 6.1.54"
+
+# CVE-2023-5158 has no known resolution
+
+# CVE-2023-5197 needs backporting (fixed from 6.6rc3)
+
diff --git a/poky/meta/recipes-kernel/linux/cve-exclusion_6.4.inc b/poky/meta/recipes-kernel/linux/cve-exclusion_6.4.inc
index 5a5eb9a755..eacb706a49 100644
--- a/poky/meta/recipes-kernel/linux/cve-exclusion_6.4.inc
+++ b/poky/meta/recipes-kernel/linux/cve-exclusion_6.4.inc
@@ -1,9 +1,9 @@
# Auto-generated CVE metadata, DO NOT EDIT BY HAND.
-# Generated at 2023-09-07 15:30:03.897686+00:00 for version 6.4.14
+# Generated at 2023-09-30 07:24:59.900581+00:00 for version 6.4.16
python check_kernel_cve_status_version() {
- this_version = "6.4.14"
+ this_version = "6.4.16"
kernel_version = d.getVar("LINUX_VERSION")
if kernel_version != this_version:
bb.warn("Kernel CVE status needs updating: generated for %s but kernel is %s" % (this_version, kernel_version))
@@ -3450,6 +3450,8 @@ CVE_STATUS[CVE-2020-36691] = "fixed-version: Fixed from version 5.8rc1"
CVE_STATUS[CVE-2020-36694] = "fixed-version: Fixed from version 5.10"
+CVE_STATUS[CVE-2020-36766] = "fixed-version: Fixed from version 5.9rc1"
+
CVE_STATUS[CVE-2020-3702] = "fixed-version: Fixed from version 5.12rc1"
CVE_STATUS[CVE-2020-4788] = "fixed-version: Fixed from version 5.10rc5"
@@ -4518,9 +4520,9 @@ CVE_STATUS[CVE-2022-4382] = "fixed-version: Fixed from version 6.2rc5"
CVE_STATUS[CVE-2022-43945] = "fixed-version: Fixed from version 6.1rc1"
-# CVE-2022-44032 has no known resolution
+CVE_STATUS[CVE-2022-44032] = "fixed-version: Fixed from version 6.4rc1"
-# CVE-2022-44033 has no known resolution
+CVE_STATUS[CVE-2022-44033] = "fixed-version: Fixed from version 6.4rc1"
# CVE-2022-44034 has no known resolution
@@ -4532,13 +4534,13 @@ CVE_STATUS[CVE-2022-45869] = "fixed-version: Fixed from version 6.1rc7"
# CVE-2022-45885 has no known resolution
-# CVE-2022-45886 has no known resolution
+CVE_STATUS[CVE-2022-45886] = "fixed-version: Fixed from version 6.4rc3"
-# CVE-2022-45887 has no known resolution
+CVE_STATUS[CVE-2022-45887] = "fixed-version: Fixed from version 6.4rc3"
CVE_STATUS[CVE-2022-45888] = "fixed-version: Fixed from version 6.2rc1"
-# CVE-2022-45919 has no known resolution
+CVE_STATUS[CVE-2022-45919] = "fixed-version: Fixed from version 6.4rc3"
CVE_STATUS[CVE-2022-45934] = "fixed-version: Fixed from version 6.1"
@@ -4644,7 +4646,7 @@ CVE_STATUS[CVE-2023-1192] = "fixed-version: Fixed from version 6.4rc1"
# CVE-2023-1193 has no known resolution
-# CVE-2023-1194 has no known resolution
+CVE_STATUS[CVE-2023-1194] = "fixed-version: Fixed from version 6.4rc6"
CVE_STATUS[CVE-2023-1195] = "fixed-version: Fixed from version 6.1rc3"
@@ -4794,6 +4796,8 @@ CVE_STATUS[CVE-2023-25012] = "fixed-version: Fixed from version 6.3rc1"
CVE_STATUS[CVE-2023-2513] = "fixed-version: Fixed from version 6.0rc1"
+CVE_STATUS[CVE-2023-25775] = "cpe-stable-backport: Backported in 6.4.16"
+
CVE_STATUS[CVE-2023-2598] = "fixed-version: Fixed from version 6.4rc1"
# CVE-2023-26242 has no known resolution
@@ -4848,7 +4852,7 @@ CVE_STATUS[CVE-2023-3106] = "fixed-version: Fixed from version 4.8rc7"
# CVE-2023-31082 has no known resolution
-# CVE-2023-31083 has no known resolution
+# CVE-2023-31083 needs backporting (fixed from 6.6rc1)
CVE_STATUS[CVE-2023-31084] = "fixed-version: Fixed from version 6.4rc3"
@@ -4962,7 +4966,7 @@ CVE_STATUS[CVE-2023-3611] = "cpe-stable-backport: Backported in 6.4.5"
# CVE-2023-3640 has no known resolution
-# CVE-2023-37453 has no known resolution
+CVE_STATUS[CVE-2023-37453] = "cpe-stable-backport: Backported in 6.4.16"
# CVE-2023-37454 has no known resolution
@@ -4972,6 +4976,8 @@ CVE_STATUS[CVE-2023-3773] = "cpe-stable-backport: Backported in 6.4.12"
CVE_STATUS[CVE-2023-3776] = "cpe-stable-backport: Backported in 6.4.5"
+CVE_STATUS[CVE-2023-3777] = "cpe-stable-backport: Backported in 6.4.7"
+
CVE_STATUS[CVE-2023-3812] = "fixed-version: Fixed from version 6.1rc4"
CVE_STATUS[CVE-2023-38409] = "fixed-version: Fixed from version 6.3rc7"
@@ -4992,10 +4998,18 @@ CVE_STATUS[CVE-2023-38432] = "fixed-version: Fixed from version 6.4"
CVE_STATUS[CVE-2023-3863] = "cpe-stable-backport: Backported in 6.4.4"
+CVE_STATUS[CVE-2023-3865] = "fixed-version: Fixed from version 6.4"
+
+CVE_STATUS[CVE-2023-3866] = "fixed-version: Fixed from version 6.4"
+
+CVE_STATUS[CVE-2023-3867] = "cpe-stable-backport: Backported in 6.4.5"
+
CVE_STATUS[CVE-2023-4004] = "cpe-stable-backport: Backported in 6.4.7"
# CVE-2023-4010 has no known resolution
+CVE_STATUS[CVE-2023-4015] = "cpe-stable-backport: Backported in 6.4.8"
+
CVE_STATUS[CVE-2023-40283] = "cpe-stable-backport: Backported in 6.4.10"
CVE_STATUS[CVE-2023-4128] = "cpe-stable-backport: Backported in 6.4.10"
@@ -5012,8 +5026,22 @@ CVE_STATUS[CVE-2023-4155] = "cpe-stable-backport: Backported in 6.4.11"
CVE_STATUS[CVE-2023-4194] = "cpe-stable-backport: Backported in 6.4.10"
+CVE_STATUS[CVE-2023-4206] = "cpe-stable-backport: Backported in 6.4.10"
+
+CVE_STATUS[CVE-2023-4207] = "cpe-stable-backport: Backported in 6.4.10"
+
+CVE_STATUS[CVE-2023-4208] = "cpe-stable-backport: Backported in 6.4.10"
+
+CVE_STATUS[CVE-2023-4244] = "cpe-stable-backport: Backported in 6.4.12"
+
CVE_STATUS[CVE-2023-4273] = "cpe-stable-backport: Backported in 6.4.10"
+CVE_STATUS[CVE-2023-42752] = "cpe-stable-backport: Backported in 6.4.16"
+
+CVE_STATUS[CVE-2023-42753] = "cpe-stable-backport: Backported in 6.4.16"
+
+CVE_STATUS[CVE-2023-42755] = "fixed-version: Fixed from version 6.3rc1"
+
CVE_STATUS[CVE-2023-4385] = "fixed-version: Fixed from version 5.19rc1"
CVE_STATUS[CVE-2023-4387] = "fixed-version: Fixed from version 5.18"
@@ -5024,3 +5052,21 @@ CVE_STATUS[CVE-2023-4394] = "fixed-version: Fixed from version 6.0rc3"
CVE_STATUS[CVE-2023-4459] = "fixed-version: Fixed from version 5.18"
+CVE_STATUS[CVE-2023-4563] = "cpe-stable-backport: Backported in 6.4.11"
+
+CVE_STATUS[CVE-2023-4569] = "cpe-stable-backport: Backported in 6.4.12"
+
+CVE_STATUS[CVE-2023-4611] = "cpe-stable-backport: Backported in 6.4.8"
+
+# CVE-2023-4622 needs backporting (fixed from 6.5rc1)
+
+CVE_STATUS[CVE-2023-4623] = "cpe-stable-backport: Backported in 6.4.16"
+
+# CVE-2023-4881 needs backporting (fixed from 6.6rc1)
+
+# CVE-2023-4921 needs backporting (fixed from 6.6rc1)
+
+# CVE-2023-5158 has no known resolution
+
+# CVE-2023-5197 needs backporting (fixed from 6.6rc3)
+
diff --git a/poky/meta/recipes-kernel/linux/cve-exclusion_6.5.inc b/poky/meta/recipes-kernel/linux/cve-exclusion_6.5.inc
new file mode 100644
index 0000000000..c88b6f7c59
--- /dev/null
+++ b/poky/meta/recipes-kernel/linux/cve-exclusion_6.5.inc
@@ -0,0 +1,5072 @@
+
+# Auto-generated CVE metadata, DO NOT EDIT BY HAND.
+# Generated at 2023-09-29 00:20:42.494116+00:00 for version 6.5.5
+
+python check_kernel_cve_status_version() {
+ this_version = "6.5.5"
+ kernel_version = d.getVar("LINUX_VERSION")
+ if kernel_version != this_version:
+ bb.warn("Kernel CVE status needs updating: generated for %s but kernel is %s" % (this_version, kernel_version))
+}
+do_cve_check[prefuncs] += "check_kernel_cve_status_version"
+
+CVE_STATUS[CVE-2003-1604] = "fixed-version: Fixed from version 2.6.12rc2"
+
+CVE_STATUS[CVE-2004-0230] = "fixed-version: Fixed from version 3.6rc1"
+
+# CVE-2005-3660 has no known resolution
+
+CVE_STATUS[CVE-2006-3635] = "fixed-version: Fixed from version 2.6.26rc5"
+
+CVE_STATUS[CVE-2006-5331] = "fixed-version: Fixed from version 2.6.19rc3"
+
+CVE_STATUS[CVE-2006-6128] = "fixed-version: Fixed from version 2.6.19rc2"
+
+# CVE-2007-3719 has no known resolution
+
+CVE_STATUS[CVE-2007-4774] = "fixed-version: Fixed from version 2.6.12rc2"
+
+CVE_STATUS[CVE-2007-6761] = "fixed-version: Fixed from version 2.6.24rc6"
+
+CVE_STATUS[CVE-2007-6762] = "fixed-version: Fixed from version 2.6.20rc5"
+
+# CVE-2008-2544 has no known resolution
+
+# CVE-2008-4609 has no known resolution
+
+CVE_STATUS[CVE-2008-7316] = "fixed-version: Fixed from version 2.6.25rc1"
+
+CVE_STATUS[CVE-2009-2692] = "fixed-version: Fixed from version 2.6.31rc6"
+
+CVE_STATUS[CVE-2010-0008] = "fixed-version: Fixed from version 2.6.23rc9"
+
+CVE_STATUS[CVE-2010-3432] = "fixed-version: Fixed from version 2.6.36rc5"
+
+# CVE-2010-4563 has no known resolution
+
+CVE_STATUS[CVE-2010-4648] = "fixed-version: Fixed from version 2.6.37rc6"
+
+CVE_STATUS[CVE-2010-5313] = "fixed-version: Fixed from version 2.6.38rc1"
+
+# CVE-2010-5321 has no known resolution
+
+CVE_STATUS[CVE-2010-5328] = "fixed-version: Fixed from version 2.6.35rc1"
+
+CVE_STATUS[CVE-2010-5329] = "fixed-version: Fixed from version 2.6.39rc1"
+
+CVE_STATUS[CVE-2010-5331] = "fixed-version: Fixed from version 2.6.34rc7"
+
+CVE_STATUS[CVE-2010-5332] = "fixed-version: Fixed from version 2.6.37rc1"
+
+CVE_STATUS[CVE-2011-4098] = "fixed-version: Fixed from version 3.2rc1"
+
+CVE_STATUS[CVE-2011-4131] = "fixed-version: Fixed from version 3.3rc1"
+
+CVE_STATUS[CVE-2011-4915] = "fixed-version: Fixed from version 3.2rc1"
+
+# CVE-2011-4916 has no known resolution
+
+# CVE-2011-4917 has no known resolution
+
+CVE_STATUS[CVE-2011-5321] = "fixed-version: Fixed from version 3.2rc1"
+
+CVE_STATUS[CVE-2011-5327] = "fixed-version: Fixed from version 3.1rc1"
+
+CVE_STATUS[CVE-2012-0957] = "fixed-version: Fixed from version 3.7rc2"
+
+CVE_STATUS[CVE-2012-2119] = "fixed-version: Fixed from version 3.5rc1"
+
+CVE_STATUS[CVE-2012-2136] = "fixed-version: Fixed from version 3.5rc1"
+
+CVE_STATUS[CVE-2012-2137] = "fixed-version: Fixed from version 3.5rc2"
+
+CVE_STATUS[CVE-2012-2313] = "fixed-version: Fixed from version 3.4rc6"
+
+CVE_STATUS[CVE-2012-2319] = "fixed-version: Fixed from version 3.4rc6"
+
+CVE_STATUS[CVE-2012-2372] = "fixed-version: Fixed from version 3.13rc4"
+
+CVE_STATUS[CVE-2012-2375] = "fixed-version: Fixed from version 3.4rc1"
+
+CVE_STATUS[CVE-2012-2390] = "fixed-version: Fixed from version 3.5rc1"
+
+CVE_STATUS[CVE-2012-2669] = "fixed-version: Fixed from version 3.5rc4"
+
+CVE_STATUS[CVE-2012-2744] = "fixed-version: Fixed from version 2.6.34rc1"
+
+CVE_STATUS[CVE-2012-2745] = "fixed-version: Fixed from version 3.4rc3"
+
+CVE_STATUS[CVE-2012-3364] = "fixed-version: Fixed from version 3.5rc6"
+
+CVE_STATUS[CVE-2012-3375] = "fixed-version: Fixed from version 3.4rc5"
+
+CVE_STATUS[CVE-2012-3400] = "fixed-version: Fixed from version 3.5rc5"
+
+CVE_STATUS[CVE-2012-3412] = "fixed-version: Fixed from version 3.6rc2"
+
+CVE_STATUS[CVE-2012-3430] = "fixed-version: Fixed from version 3.6rc1"
+
+CVE_STATUS[CVE-2012-3510] = "fixed-version: Fixed from version 2.6.19rc4"
+
+CVE_STATUS[CVE-2012-3511] = "fixed-version: Fixed from version 3.5rc6"
+
+CVE_STATUS[CVE-2012-3520] = "fixed-version: Fixed from version 3.6rc3"
+
+CVE_STATUS[CVE-2012-3552] = "fixed-version: Fixed from version 3.0rc1"
+
+# Skipping CVE-2012-4220, no affected_versions
+
+# Skipping CVE-2012-4221, no affected_versions
+
+# Skipping CVE-2012-4222, no affected_versions
+
+CVE_STATUS[CVE-2012-4398] = "fixed-version: Fixed from version 3.4rc1"
+
+CVE_STATUS[CVE-2012-4444] = "fixed-version: Fixed from version 2.6.36rc4"
+
+CVE_STATUS[CVE-2012-4461] = "fixed-version: Fixed from version 3.7rc6"
+
+CVE_STATUS[CVE-2012-4467] = "fixed-version: Fixed from version 3.6rc5"
+
+CVE_STATUS[CVE-2012-4508] = "fixed-version: Fixed from version 3.7rc3"
+
+CVE_STATUS[CVE-2012-4530] = "fixed-version: Fixed from version 3.8rc1"
+
+# CVE-2012-4542 has no known resolution
+
+CVE_STATUS[CVE-2012-4565] = "fixed-version: Fixed from version 3.7rc4"
+
+CVE_STATUS[CVE-2012-5374] = "fixed-version: Fixed from version 3.8rc1"
+
+CVE_STATUS[CVE-2012-5375] = "fixed-version: Fixed from version 3.8rc1"
+
+CVE_STATUS[CVE-2012-5517] = "fixed-version: Fixed from version 3.6rc1"
+
+CVE_STATUS[CVE-2012-6536] = "fixed-version: Fixed from version 3.6rc7"
+
+CVE_STATUS[CVE-2012-6537] = "fixed-version: Fixed from version 3.6rc7"
+
+CVE_STATUS[CVE-2012-6538] = "fixed-version: Fixed from version 3.6rc7"
+
+CVE_STATUS[CVE-2012-6539] = "fixed-version: Fixed from version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6540] = "fixed-version: Fixed from version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6541] = "fixed-version: Fixed from version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6542] = "fixed-version: Fixed from version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6543] = "fixed-version: Fixed from version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6544] = "fixed-version: Fixed from version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6545] = "fixed-version: Fixed from version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6546] = "fixed-version: Fixed from version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6547] = "fixed-version: Fixed from version 3.6rc1"
+
+CVE_STATUS[CVE-2012-6548] = "fixed-version: Fixed from version 3.6rc1"
+
+CVE_STATUS[CVE-2012-6549] = "fixed-version: Fixed from version 3.6rc1"
+
+CVE_STATUS[CVE-2012-6638] = "fixed-version: Fixed from version 3.3rc1"
+
+CVE_STATUS[CVE-2012-6647] = "fixed-version: Fixed from version 3.6rc2"
+
+CVE_STATUS[CVE-2012-6657] = "fixed-version: Fixed from version 3.6"
+
+CVE_STATUS[CVE-2012-6689] = "fixed-version: Fixed from version 3.6rc5"
+
+CVE_STATUS[CVE-2012-6701] = "fixed-version: Fixed from version 3.5rc1"
+
+CVE_STATUS[CVE-2012-6703] = "fixed-version: Fixed from version 3.7rc1"
+
+CVE_STATUS[CVE-2012-6704] = "fixed-version: Fixed from version 3.5rc1"
+
+CVE_STATUS[CVE-2012-6712] = "fixed-version: Fixed from version 3.4rc1"
+
+CVE_STATUS[CVE-2013-0160] = "fixed-version: Fixed from version 3.9rc1"
+
+CVE_STATUS[CVE-2013-0190] = "fixed-version: Fixed from version 3.8rc5"
+
+CVE_STATUS[CVE-2013-0216] = "fixed-version: Fixed from version 3.8rc7"
+
+CVE_STATUS[CVE-2013-0217] = "fixed-version: Fixed from version 3.8rc7"
+
+CVE_STATUS[CVE-2013-0228] = "fixed-version: Fixed from version 3.8"
+
+CVE_STATUS[CVE-2013-0231] = "fixed-version: Fixed from version 3.8rc7"
+
+CVE_STATUS[CVE-2013-0268] = "fixed-version: Fixed from version 3.8rc6"
+
+CVE_STATUS[CVE-2013-0290] = "fixed-version: Fixed from version 3.8"
+
+CVE_STATUS[CVE-2013-0309] = "fixed-version: Fixed from version 3.7rc1"
+
+CVE_STATUS[CVE-2013-0310] = "fixed-version: Fixed from version 3.5"
+
+CVE_STATUS[CVE-2013-0311] = "fixed-version: Fixed from version 3.7rc8"
+
+CVE_STATUS[CVE-2013-0313] = "fixed-version: Fixed from version 3.8rc5"
+
+CVE_STATUS[CVE-2013-0343] = "fixed-version: Fixed from version 3.11rc7"
+
+CVE_STATUS[CVE-2013-0349] = "fixed-version: Fixed from version 3.8rc6"
+
+CVE_STATUS[CVE-2013-0871] = "fixed-version: Fixed from version 3.8rc5"
+
+CVE_STATUS[CVE-2013-0913] = "fixed-version: Fixed from version 3.9rc4"
+
+CVE_STATUS[CVE-2013-0914] = "fixed-version: Fixed from version 3.9rc3"
+
+CVE_STATUS[CVE-2013-1059] = "fixed-version: Fixed from version 3.11rc1"
+
+CVE_STATUS[CVE-2013-1763] = "fixed-version: Fixed from version 3.9rc1"
+
+CVE_STATUS[CVE-2013-1767] = "fixed-version: Fixed from version 3.9rc1"
+
+CVE_STATUS[CVE-2013-1772] = "fixed-version: Fixed from version 3.5rc1"
+
+CVE_STATUS[CVE-2013-1773] = "fixed-version: Fixed from version 3.3rc1"
+
+CVE_STATUS[CVE-2013-1774] = "fixed-version: Fixed from version 3.8rc5"
+
+CVE_STATUS[CVE-2013-1792] = "fixed-version: Fixed from version 3.9rc3"
+
+CVE_STATUS[CVE-2013-1796] = "fixed-version: Fixed from version 3.9rc4"
+
+CVE_STATUS[CVE-2013-1797] = "fixed-version: Fixed from version 3.9rc4"
+
+CVE_STATUS[CVE-2013-1798] = "fixed-version: Fixed from version 3.9rc4"
+
+CVE_STATUS[CVE-2013-1819] = "fixed-version: Fixed from version 3.8rc6"
+
+CVE_STATUS[CVE-2013-1826] = "fixed-version: Fixed from version 3.6rc7"
+
+CVE_STATUS[CVE-2013-1827] = "fixed-version: Fixed from version 3.6rc3"
+
+CVE_STATUS[CVE-2013-1828] = "fixed-version: Fixed from version 3.9rc2"
+
+CVE_STATUS[CVE-2013-1848] = "fixed-version: Fixed from version 3.9rc3"
+
+CVE_STATUS[CVE-2013-1858] = "fixed-version: Fixed from version 3.9rc3"
+
+CVE_STATUS[CVE-2013-1860] = "fixed-version: Fixed from version 3.9rc3"
+
+CVE_STATUS[CVE-2013-1928] = "fixed-version: Fixed from version 3.7rc3"
+
+CVE_STATUS[CVE-2013-1929] = "fixed-version: Fixed from version 3.9rc6"
+
+# Skipping CVE-2013-1935, no affected_versions
+
+CVE_STATUS[CVE-2013-1943] = "fixed-version: Fixed from version 3.0rc1"
+
+CVE_STATUS[CVE-2013-1956] = "fixed-version: Fixed from version 3.9rc5"
+
+CVE_STATUS[CVE-2013-1957] = "fixed-version: Fixed from version 3.9rc5"
+
+CVE_STATUS[CVE-2013-1958] = "fixed-version: Fixed from version 3.9rc5"
+
+CVE_STATUS[CVE-2013-1959] = "fixed-version: Fixed from version 3.9rc7"
+
+CVE_STATUS[CVE-2013-1979] = "fixed-version: Fixed from version 3.9rc8"
+
+CVE_STATUS[CVE-2013-2015] = "fixed-version: Fixed from version 3.8rc2"
+
+CVE_STATUS[CVE-2013-2017] = "fixed-version: Fixed from version 2.6.34"
+
+CVE_STATUS[CVE-2013-2058] = "fixed-version: Fixed from version 3.8rc4"
+
+CVE_STATUS[CVE-2013-2094] = "fixed-version: Fixed from version 3.9rc8"
+
+CVE_STATUS[CVE-2013-2128] = "fixed-version: Fixed from version 2.6.34rc4"
+
+CVE_STATUS[CVE-2013-2140] = "fixed-version: Fixed from version 3.11rc3"
+
+CVE_STATUS[CVE-2013-2141] = "fixed-version: Fixed from version 3.9rc8"
+
+CVE_STATUS[CVE-2013-2146] = "fixed-version: Fixed from version 3.9rc8"
+
+CVE_STATUS[CVE-2013-2147] = "fixed-version: Fixed from version 3.12rc3"
+
+CVE_STATUS[CVE-2013-2148] = "fixed-version: Fixed from version 3.11rc1"
+
+CVE_STATUS[CVE-2013-2164] = "fixed-version: Fixed from version 3.11rc1"
+
+# Skipping CVE-2013-2188, no affected_versions
+
+CVE_STATUS[CVE-2013-2206] = "fixed-version: Fixed from version 3.9rc4"
+
+# Skipping CVE-2013-2224, no affected_versions
+
+CVE_STATUS[CVE-2013-2232] = "fixed-version: Fixed from version 3.10"
+
+CVE_STATUS[CVE-2013-2234] = "fixed-version: Fixed from version 3.10"
+
+CVE_STATUS[CVE-2013-2237] = "fixed-version: Fixed from version 3.9rc6"
+
+# Skipping CVE-2013-2239, no affected_versions
+
+CVE_STATUS[CVE-2013-2546] = "fixed-version: Fixed from version 3.9rc1"
+
+CVE_STATUS[CVE-2013-2547] = "fixed-version: Fixed from version 3.9rc1"
+
+CVE_STATUS[CVE-2013-2548] = "fixed-version: Fixed from version 3.9rc1"
+
+CVE_STATUS[CVE-2013-2596] = "fixed-version: Fixed from version 3.9rc8"
+
+CVE_STATUS[CVE-2013-2634] = "fixed-version: Fixed from version 3.9rc3"
+
+CVE_STATUS[CVE-2013-2635] = "fixed-version: Fixed from version 3.9rc3"
+
+CVE_STATUS[CVE-2013-2636] = "fixed-version: Fixed from version 3.9rc3"
+
+CVE_STATUS[CVE-2013-2850] = "fixed-version: Fixed from version 3.10rc4"
+
+CVE_STATUS[CVE-2013-2851] = "fixed-version: Fixed from version 3.11rc1"
+
+CVE_STATUS[CVE-2013-2852] = "fixed-version: Fixed from version 3.10rc6"
+
+CVE_STATUS[CVE-2013-2888] = "fixed-version: Fixed from version 3.12rc1"
+
+CVE_STATUS[CVE-2013-2889] = "fixed-version: Fixed from version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2890] = "fixed-version: Fixed from version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2891] = "fixed-version: Fixed from version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2892] = "fixed-version: Fixed from version 3.12rc1"
+
+CVE_STATUS[CVE-2013-2893] = "fixed-version: Fixed from version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2894] = "fixed-version: Fixed from version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2895] = "fixed-version: Fixed from version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2896] = "fixed-version: Fixed from version 3.12rc1"
+
+CVE_STATUS[CVE-2013-2897] = "fixed-version: Fixed from version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2898] = "fixed-version: Fixed from version 3.12rc1"
+
+CVE_STATUS[CVE-2013-2899] = "fixed-version: Fixed from version 3.12rc1"
+
+CVE_STATUS[CVE-2013-2929] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-2930] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-3076] = "fixed-version: Fixed from version 3.9"
+
+CVE_STATUS[CVE-2013-3222] = "fixed-version: Fixed from version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3223] = "fixed-version: Fixed from version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3224] = "fixed-version: Fixed from version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3225] = "fixed-version: Fixed from version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3226] = "fixed-version: Fixed from version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3227] = "fixed-version: Fixed from version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3228] = "fixed-version: Fixed from version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3229] = "fixed-version: Fixed from version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3230] = "fixed-version: Fixed from version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3231] = "fixed-version: Fixed from version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3232] = "fixed-version: Fixed from version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3233] = "fixed-version: Fixed from version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3234] = "fixed-version: Fixed from version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3235] = "fixed-version: Fixed from version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3236] = "fixed-version: Fixed from version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3237] = "fixed-version: Fixed from version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3301] = "fixed-version: Fixed from version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3302] = "fixed-version: Fixed from version 3.8rc3"
+
+CVE_STATUS[CVE-2013-4125] = "fixed-version: Fixed from version 3.11rc1"
+
+CVE_STATUS[CVE-2013-4127] = "fixed-version: Fixed from version 3.11rc1"
+
+CVE_STATUS[CVE-2013-4129] = "fixed-version: Fixed from version 3.11rc1"
+
+CVE_STATUS[CVE-2013-4162] = "fixed-version: Fixed from version 3.11rc1"
+
+CVE_STATUS[CVE-2013-4163] = "fixed-version: Fixed from version 3.11rc1"
+
+CVE_STATUS[CVE-2013-4205] = "fixed-version: Fixed from version 3.11rc5"
+
+CVE_STATUS[CVE-2013-4220] = "fixed-version: Fixed from version 3.10rc4"
+
+CVE_STATUS[CVE-2013-4247] = "fixed-version: Fixed from version 3.10rc5"
+
+CVE_STATUS[CVE-2013-4254] = "fixed-version: Fixed from version 3.11rc6"
+
+CVE_STATUS[CVE-2013-4270] = "fixed-version: Fixed from version 3.12rc4"
+
+CVE_STATUS[CVE-2013-4299] = "fixed-version: Fixed from version 3.12rc6"
+
+CVE_STATUS[CVE-2013-4300] = "fixed-version: Fixed from version 3.11"
+
+CVE_STATUS[CVE-2013-4312] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2013-4343] = "fixed-version: Fixed from version 3.12rc2"
+
+CVE_STATUS[CVE-2013-4345] = "fixed-version: Fixed from version 3.13rc2"
+
+CVE_STATUS[CVE-2013-4348] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-4350] = "fixed-version: Fixed from version 3.12rc2"
+
+CVE_STATUS[CVE-2013-4387] = "fixed-version: Fixed from version 3.12rc4"
+
+CVE_STATUS[CVE-2013-4470] = "fixed-version: Fixed from version 3.12rc7"
+
+CVE_STATUS[CVE-2013-4483] = "fixed-version: Fixed from version 3.10rc1"
+
+CVE_STATUS[CVE-2013-4511] = "fixed-version: Fixed from version 3.12"
+
+CVE_STATUS[CVE-2013-4512] = "fixed-version: Fixed from version 3.12"
+
+CVE_STATUS[CVE-2013-4513] = "fixed-version: Fixed from version 3.12"
+
+CVE_STATUS[CVE-2013-4514] = "fixed-version: Fixed from version 3.12"
+
+CVE_STATUS[CVE-2013-4515] = "fixed-version: Fixed from version 3.12"
+
+CVE_STATUS[CVE-2013-4516] = "fixed-version: Fixed from version 3.12"
+
+CVE_STATUS[CVE-2013-4563] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-4579] = "fixed-version: Fixed from version 3.13rc7"
+
+CVE_STATUS[CVE-2013-4587] = "fixed-version: Fixed from version 3.13rc4"
+
+CVE_STATUS[CVE-2013-4588] = "fixed-version: Fixed from version 2.6.33rc4"
+
+CVE_STATUS[CVE-2013-4591] = "fixed-version: Fixed from version 3.8rc1"
+
+CVE_STATUS[CVE-2013-4592] = "fixed-version: Fixed from version 3.7rc1"
+
+# Skipping CVE-2013-4737, no affected_versions
+
+# Skipping CVE-2013-4738, no affected_versions
+
+# Skipping CVE-2013-4739, no affected_versions
+
+CVE_STATUS[CVE-2013-5634] = "fixed-version: Fixed from version 3.10rc5"
+
+CVE_STATUS[CVE-2013-6282] = "fixed-version: Fixed from version 3.6rc6"
+
+CVE_STATUS[CVE-2013-6367] = "fixed-version: Fixed from version 3.13rc4"
+
+CVE_STATUS[CVE-2013-6368] = "fixed-version: Fixed from version 3.13rc4"
+
+CVE_STATUS[CVE-2013-6376] = "fixed-version: Fixed from version 3.13rc4"
+
+CVE_STATUS[CVE-2013-6378] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-6380] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-6381] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-6382] = "fixed-version: Fixed from version 3.13rc4"
+
+CVE_STATUS[CVE-2013-6383] = "fixed-version: Fixed from version 3.12"
+
+# Skipping CVE-2013-6392, no affected_versions
+
+CVE_STATUS[CVE-2013-6431] = "fixed-version: Fixed from version 3.12rc1"
+
+CVE_STATUS[CVE-2013-6432] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-6885] = "fixed-version: Fixed from version 3.14rc1"
+
+CVE_STATUS[CVE-2013-7026] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7027] = "fixed-version: Fixed from version 3.12rc7"
+
+CVE_STATUS[CVE-2013-7263] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7264] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7265] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7266] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7267] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7268] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7269] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7270] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7271] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7281] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7339] = "fixed-version: Fixed from version 3.13rc7"
+
+CVE_STATUS[CVE-2013-7348] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7421] = "fixed-version: Fixed from version 3.19rc1"
+
+# CVE-2013-7445 has no known resolution
+
+CVE_STATUS[CVE-2013-7446] = "fixed-version: Fixed from version 4.4rc4"
+
+CVE_STATUS[CVE-2013-7470] = "fixed-version: Fixed from version 3.12rc7"
+
+CVE_STATUS[CVE-2014-0038] = "fixed-version: Fixed from version 3.14rc1"
+
+CVE_STATUS[CVE-2014-0049] = "fixed-version: Fixed from version 3.14rc5"
+
+CVE_STATUS[CVE-2014-0055] = "fixed-version: Fixed from version 3.14"
+
+CVE_STATUS[CVE-2014-0069] = "fixed-version: Fixed from version 3.14rc4"
+
+CVE_STATUS[CVE-2014-0077] = "fixed-version: Fixed from version 3.14"
+
+CVE_STATUS[CVE-2014-0100] = "fixed-version: Fixed from version 3.14rc7"
+
+CVE_STATUS[CVE-2014-0101] = "fixed-version: Fixed from version 3.14rc6"
+
+CVE_STATUS[CVE-2014-0102] = "fixed-version: Fixed from version 3.14rc6"
+
+CVE_STATUS[CVE-2014-0131] = "fixed-version: Fixed from version 3.14rc7"
+
+CVE_STATUS[CVE-2014-0155] = "fixed-version: Fixed from version 3.15rc2"
+
+CVE_STATUS[CVE-2014-0181] = "fixed-version: Fixed from version 3.15rc5"
+
+CVE_STATUS[CVE-2014-0196] = "fixed-version: Fixed from version 3.15rc5"
+
+CVE_STATUS[CVE-2014-0203] = "fixed-version: Fixed from version 2.6.33rc5"
+
+CVE_STATUS[CVE-2014-0205] = "fixed-version: Fixed from version 2.6.37rc1"
+
+CVE_STATUS[CVE-2014-0206] = "fixed-version: Fixed from version 3.16rc3"
+
+# Skipping CVE-2014-0972, no affected_versions
+
+CVE_STATUS[CVE-2014-1438] = "fixed-version: Fixed from version 3.13"
+
+CVE_STATUS[CVE-2014-1444] = "fixed-version: Fixed from version 3.12rc7"
+
+CVE_STATUS[CVE-2014-1445] = "fixed-version: Fixed from version 3.12rc7"
+
+CVE_STATUS[CVE-2014-1446] = "fixed-version: Fixed from version 3.13rc7"
+
+CVE_STATUS[CVE-2014-1690] = "fixed-version: Fixed from version 3.13rc8"
+
+CVE_STATUS[CVE-2014-1737] = "fixed-version: Fixed from version 3.15rc5"
+
+CVE_STATUS[CVE-2014-1738] = "fixed-version: Fixed from version 3.15rc5"
+
+CVE_STATUS[CVE-2014-1739] = "fixed-version: Fixed from version 3.15rc6"
+
+CVE_STATUS[CVE-2014-1874] = "fixed-version: Fixed from version 3.14rc2"
+
+CVE_STATUS[CVE-2014-2038] = "fixed-version: Fixed from version 3.14rc1"
+
+CVE_STATUS[CVE-2014-2039] = "fixed-version: Fixed from version 3.14rc3"
+
+CVE_STATUS[CVE-2014-2309] = "fixed-version: Fixed from version 3.14rc7"
+
+CVE_STATUS[CVE-2014-2523] = "fixed-version: Fixed from version 3.14rc1"
+
+CVE_STATUS[CVE-2014-2568] = "fixed-version: Fixed from version 3.14"
+
+CVE_STATUS[CVE-2014-2580] = "fixed-version: Fixed from version 3.15rc1"
+
+CVE_STATUS[CVE-2014-2672] = "fixed-version: Fixed from version 3.14rc6"
+
+CVE_STATUS[CVE-2014-2673] = "fixed-version: Fixed from version 3.14rc6"
+
+CVE_STATUS[CVE-2014-2678] = "fixed-version: Fixed from version 3.15rc1"
+
+CVE_STATUS[CVE-2014-2706] = "fixed-version: Fixed from version 3.14rc6"
+
+CVE_STATUS[CVE-2014-2739] = "fixed-version: Fixed from version 3.15rc1"
+
+CVE_STATUS[CVE-2014-2851] = "fixed-version: Fixed from version 3.15rc2"
+
+CVE_STATUS[CVE-2014-2889] = "fixed-version: Fixed from version 3.2rc7"
+
+CVE_STATUS[CVE-2014-3122] = "fixed-version: Fixed from version 3.15rc1"
+
+CVE_STATUS[CVE-2014-3144] = "fixed-version: Fixed from version 3.15rc2"
+
+CVE_STATUS[CVE-2014-3145] = "fixed-version: Fixed from version 3.15rc2"
+
+CVE_STATUS[CVE-2014-3153] = "fixed-version: Fixed from version 3.15"
+
+CVE_STATUS[CVE-2014-3180] = "fixed-version: Fixed from version 3.17rc4"
+
+CVE_STATUS[CVE-2014-3181] = "fixed-version: Fixed from version 3.17rc3"
+
+CVE_STATUS[CVE-2014-3182] = "fixed-version: Fixed from version 3.17rc2"
+
+CVE_STATUS[CVE-2014-3183] = "fixed-version: Fixed from version 3.17rc2"
+
+CVE_STATUS[CVE-2014-3184] = "fixed-version: Fixed from version 3.17rc2"
+
+CVE_STATUS[CVE-2014-3185] = "fixed-version: Fixed from version 3.17rc3"
+
+CVE_STATUS[CVE-2014-3186] = "fixed-version: Fixed from version 3.17rc3"
+
+# Skipping CVE-2014-3519, no affected_versions
+
+CVE_STATUS[CVE-2014-3534] = "fixed-version: Fixed from version 3.16rc7"
+
+CVE_STATUS[CVE-2014-3535] = "fixed-version: Fixed from version 2.6.36rc1"
+
+CVE_STATUS[CVE-2014-3601] = "fixed-version: Fixed from version 3.17rc2"
+
+CVE_STATUS[CVE-2014-3610] = "fixed-version: Fixed from version 3.18rc2"
+
+CVE_STATUS[CVE-2014-3611] = "fixed-version: Fixed from version 3.18rc2"
+
+CVE_STATUS[CVE-2014-3631] = "fixed-version: Fixed from version 3.17rc5"
+
+CVE_STATUS[CVE-2014-3645] = "fixed-version: Fixed from version 3.12rc1"
+
+CVE_STATUS[CVE-2014-3646] = "fixed-version: Fixed from version 3.18rc2"
+
+CVE_STATUS[CVE-2014-3647] = "fixed-version: Fixed from version 3.18rc2"
+
+CVE_STATUS[CVE-2014-3673] = "fixed-version: Fixed from version 3.18rc1"
+
+CVE_STATUS[CVE-2014-3687] = "fixed-version: Fixed from version 3.18rc1"
+
+CVE_STATUS[CVE-2014-3688] = "fixed-version: Fixed from version 3.18rc1"
+
+CVE_STATUS[CVE-2014-3690] = "fixed-version: Fixed from version 3.18rc1"
+
+CVE_STATUS[CVE-2014-3917] = "fixed-version: Fixed from version 3.16rc1"
+
+CVE_STATUS[CVE-2014-3940] = "fixed-version: Fixed from version 3.15"
+
+CVE_STATUS[CVE-2014-4014] = "fixed-version: Fixed from version 3.16rc1"
+
+CVE_STATUS[CVE-2014-4027] = "fixed-version: Fixed from version 3.14rc1"
+
+CVE_STATUS[CVE-2014-4157] = "fixed-version: Fixed from version 3.15rc1"
+
+CVE_STATUS[CVE-2014-4171] = "fixed-version: Fixed from version 3.16rc3"
+
+# Skipping CVE-2014-4322, no affected_versions
+
+# Skipping CVE-2014-4323, no affected_versions
+
+CVE_STATUS[CVE-2014-4508] = "fixed-version: Fixed from version 3.16rc3"
+
+CVE_STATUS[CVE-2014-4608] = "fixed-version: Fixed from version 3.18rc1"
+
+CVE_STATUS[CVE-2014-4611] = "fixed-version: Fixed from version 3.16rc3"
+
+CVE_STATUS[CVE-2014-4652] = "fixed-version: Fixed from version 3.16rc2"
+
+CVE_STATUS[CVE-2014-4653] = "fixed-version: Fixed from version 3.16rc2"
+
+CVE_STATUS[CVE-2014-4654] = "fixed-version: Fixed from version 3.16rc2"
+
+CVE_STATUS[CVE-2014-4655] = "fixed-version: Fixed from version 3.16rc2"
+
+CVE_STATUS[CVE-2014-4656] = "fixed-version: Fixed from version 3.16rc2"
+
+CVE_STATUS[CVE-2014-4667] = "fixed-version: Fixed from version 3.16rc1"
+
+CVE_STATUS[CVE-2014-4699] = "fixed-version: Fixed from version 3.16rc4"
+
+CVE_STATUS[CVE-2014-4943] = "fixed-version: Fixed from version 3.16rc6"
+
+CVE_STATUS[CVE-2014-5045] = "fixed-version: Fixed from version 3.16rc7"
+
+CVE_STATUS[CVE-2014-5077] = "fixed-version: Fixed from version 3.16"
+
+CVE_STATUS[CVE-2014-5206] = "fixed-version: Fixed from version 3.17rc1"
+
+CVE_STATUS[CVE-2014-5207] = "fixed-version: Fixed from version 3.17rc1"
+
+# Skipping CVE-2014-5332, no affected_versions
+
+CVE_STATUS[CVE-2014-5471] = "fixed-version: Fixed from version 3.17rc2"
+
+CVE_STATUS[CVE-2014-5472] = "fixed-version: Fixed from version 3.17rc2"
+
+CVE_STATUS[CVE-2014-6410] = "fixed-version: Fixed from version 3.17rc5"
+
+CVE_STATUS[CVE-2014-6416] = "fixed-version: Fixed from version 3.17rc5"
+
+CVE_STATUS[CVE-2014-6417] = "fixed-version: Fixed from version 3.17rc5"
+
+CVE_STATUS[CVE-2014-6418] = "fixed-version: Fixed from version 3.17rc5"
+
+CVE_STATUS[CVE-2014-7145] = "fixed-version: Fixed from version 3.17rc2"
+
+# Skipping CVE-2014-7207, no affected_versions
+
+CVE_STATUS[CVE-2014-7283] = "fixed-version: Fixed from version 3.15rc1"
+
+CVE_STATUS[CVE-2014-7284] = "fixed-version: Fixed from version 3.15rc7"
+
+CVE_STATUS[CVE-2014-7822] = "fixed-version: Fixed from version 3.16rc1"
+
+CVE_STATUS[CVE-2014-7825] = "fixed-version: Fixed from version 3.18rc3"
+
+CVE_STATUS[CVE-2014-7826] = "fixed-version: Fixed from version 3.18rc3"
+
+CVE_STATUS[CVE-2014-7841] = "fixed-version: Fixed from version 3.18rc5"
+
+CVE_STATUS[CVE-2014-7842] = "fixed-version: Fixed from version 3.18rc1"
+
+CVE_STATUS[CVE-2014-7843] = "fixed-version: Fixed from version 3.18rc5"
+
+CVE_STATUS[CVE-2014-7970] = "fixed-version: Fixed from version 3.18rc1"
+
+CVE_STATUS[CVE-2014-7975] = "fixed-version: Fixed from version 3.18rc1"
+
+CVE_STATUS[CVE-2014-8086] = "fixed-version: Fixed from version 3.18rc3"
+
+CVE_STATUS[CVE-2014-8133] = "fixed-version: Fixed from version 3.19rc1"
+
+CVE_STATUS[CVE-2014-8134] = "fixed-version: Fixed from version 3.19rc1"
+
+CVE_STATUS[CVE-2014-8159] = "fixed-version: Fixed from version 4.0rc7"
+
+CVE_STATUS[CVE-2014-8160] = "fixed-version: Fixed from version 3.18rc1"
+
+CVE_STATUS[CVE-2014-8171] = "fixed-version: Fixed from version 3.12rc1"
+
+CVE_STATUS[CVE-2014-8172] = "fixed-version: Fixed from version 3.13rc1"
+
+CVE_STATUS[CVE-2014-8173] = "fixed-version: Fixed from version 3.13rc5"
+
+# Skipping CVE-2014-8181, no affected_versions
+
+CVE_STATUS[CVE-2014-8369] = "fixed-version: Fixed from version 3.18rc2"
+
+CVE_STATUS[CVE-2014-8480] = "fixed-version: Fixed from version 3.18rc2"
+
+CVE_STATUS[CVE-2014-8481] = "fixed-version: Fixed from version 3.18rc2"
+
+CVE_STATUS[CVE-2014-8559] = "fixed-version: Fixed from version 3.19rc1"
+
+CVE_STATUS[CVE-2014-8709] = "fixed-version: Fixed from version 3.14rc3"
+
+CVE_STATUS[CVE-2014-8884] = "fixed-version: Fixed from version 3.18rc1"
+
+CVE_STATUS[CVE-2014-8989] = "fixed-version: Fixed from version 3.19rc1"
+
+CVE_STATUS[CVE-2014-9090] = "fixed-version: Fixed from version 3.18rc6"
+
+CVE_STATUS[CVE-2014-9322] = "fixed-version: Fixed from version 3.18rc6"
+
+CVE_STATUS[CVE-2014-9419] = "fixed-version: Fixed from version 3.19rc1"
+
+CVE_STATUS[CVE-2014-9420] = "fixed-version: Fixed from version 3.19rc1"
+
+CVE_STATUS[CVE-2014-9428] = "fixed-version: Fixed from version 3.19rc3"
+
+CVE_STATUS[CVE-2014-9529] = "fixed-version: Fixed from version 3.19rc4"
+
+CVE_STATUS[CVE-2014-9584] = "fixed-version: Fixed from version 3.19rc3"
+
+CVE_STATUS[CVE-2014-9585] = "fixed-version: Fixed from version 3.19rc4"
+
+CVE_STATUS[CVE-2014-9644] = "fixed-version: Fixed from version 3.19rc1"
+
+CVE_STATUS[CVE-2014-9683] = "fixed-version: Fixed from version 3.19rc1"
+
+CVE_STATUS[CVE-2014-9710] = "fixed-version: Fixed from version 3.19rc1"
+
+CVE_STATUS[CVE-2014-9715] = "fixed-version: Fixed from version 3.15rc1"
+
+CVE_STATUS[CVE-2014-9717] = "fixed-version: Fixed from version 4.1rc1"
+
+CVE_STATUS[CVE-2014-9728] = "fixed-version: Fixed from version 3.19rc3"
+
+CVE_STATUS[CVE-2014-9729] = "fixed-version: Fixed from version 3.19rc3"
+
+CVE_STATUS[CVE-2014-9730] = "fixed-version: Fixed from version 3.19rc3"
+
+CVE_STATUS[CVE-2014-9731] = "fixed-version: Fixed from version 3.19rc3"
+
+# Skipping CVE-2014-9777, no affected_versions
+
+# Skipping CVE-2014-9778, no affected_versions
+
+# Skipping CVE-2014-9779, no affected_versions
+
+# Skipping CVE-2014-9780, no affected_versions
+
+# Skipping CVE-2014-9781, no affected_versions
+
+# Skipping CVE-2014-9782, no affected_versions
+
+# Skipping CVE-2014-9783, no affected_versions
+
+# Skipping CVE-2014-9784, no affected_versions
+
+# Skipping CVE-2014-9785, no affected_versions
+
+# Skipping CVE-2014-9786, no affected_versions
+
+# Skipping CVE-2014-9787, no affected_versions
+
+# Skipping CVE-2014-9788, no affected_versions
+
+# Skipping CVE-2014-9789, no affected_versions
+
+CVE_STATUS[CVE-2014-9803] = "fixed-version: Fixed from version 3.16rc1"
+
+# Skipping CVE-2014-9863, no affected_versions
+
+# Skipping CVE-2014-9864, no affected_versions
+
+# Skipping CVE-2014-9865, no affected_versions
+
+# Skipping CVE-2014-9866, no affected_versions
+
+# Skipping CVE-2014-9867, no affected_versions
+
+# Skipping CVE-2014-9868, no affected_versions
+
+# Skipping CVE-2014-9869, no affected_versions
+
+CVE_STATUS[CVE-2014-9870] = "fixed-version: Fixed from version 3.11rc1"
+
+# Skipping CVE-2014-9871, no affected_versions
+
+# Skipping CVE-2014-9872, no affected_versions
+
+# Skipping CVE-2014-9873, no affected_versions
+
+# Skipping CVE-2014-9874, no affected_versions
+
+# Skipping CVE-2014-9875, no affected_versions
+
+# Skipping CVE-2014-9876, no affected_versions
+
+# Skipping CVE-2014-9877, no affected_versions
+
+# Skipping CVE-2014-9878, no affected_versions
+
+# Skipping CVE-2014-9879, no affected_versions
+
+# Skipping CVE-2014-9880, no affected_versions
+
+# Skipping CVE-2014-9881, no affected_versions
+
+# Skipping CVE-2014-9882, no affected_versions
+
+# Skipping CVE-2014-9883, no affected_versions
+
+# Skipping CVE-2014-9884, no affected_versions
+
+# Skipping CVE-2014-9885, no affected_versions
+
+# Skipping CVE-2014-9886, no affected_versions
+
+# Skipping CVE-2014-9887, no affected_versions
+
+CVE_STATUS[CVE-2014-9888] = "fixed-version: Fixed from version 3.13rc1"
+
+# Skipping CVE-2014-9889, no affected_versions
+
+# Skipping CVE-2014-9890, no affected_versions
+
+# Skipping CVE-2014-9891, no affected_versions
+
+# Skipping CVE-2014-9892, no affected_versions
+
+# Skipping CVE-2014-9893, no affected_versions
+
+# Skipping CVE-2014-9894, no affected_versions
+
+CVE_STATUS[CVE-2014-9895] = "fixed-version: Fixed from version 3.11rc1"
+
+# Skipping CVE-2014-9896, no affected_versions
+
+# Skipping CVE-2014-9897, no affected_versions
+
+# Skipping CVE-2014-9898, no affected_versions
+
+# Skipping CVE-2014-9899, no affected_versions
+
+# Skipping CVE-2014-9900, no affected_versions
+
+CVE_STATUS[CVE-2014-9903] = "fixed-version: Fixed from version 3.14rc4"
+
+CVE_STATUS[CVE-2014-9904] = "fixed-version: Fixed from version 3.17rc1"
+
+CVE_STATUS[CVE-2014-9914] = "fixed-version: Fixed from version 3.16rc1"
+
+CVE_STATUS[CVE-2014-9922] = "fixed-version: Fixed from version 3.18rc2"
+
+CVE_STATUS[CVE-2014-9940] = "fixed-version: Fixed from version 3.19rc1"
+
+CVE_STATUS[CVE-2015-0239] = "fixed-version: Fixed from version 3.19rc6"
+
+CVE_STATUS[CVE-2015-0274] = "fixed-version: Fixed from version 3.15rc5"
+
+CVE_STATUS[CVE-2015-0275] = "fixed-version: Fixed from version 4.1rc1"
+
+# Skipping CVE-2015-0777, no affected_versions
+
+# Skipping CVE-2015-1328, no affected_versions
+
+CVE_STATUS[CVE-2015-1333] = "fixed-version: Fixed from version 4.2rc5"
+
+CVE_STATUS[CVE-2015-1339] = "fixed-version: Fixed from version 4.4rc5"
+
+CVE_STATUS[CVE-2015-1350] = "fixed-version: Fixed from version 4.9rc1"
+
+CVE_STATUS[CVE-2015-1420] = "fixed-version: Fixed from version 4.1rc7"
+
+CVE_STATUS[CVE-2015-1421] = "fixed-version: Fixed from version 3.19rc7"
+
+CVE_STATUS[CVE-2015-1465] = "fixed-version: Fixed from version 3.19rc7"
+
+CVE_STATUS[CVE-2015-1573] = "fixed-version: Fixed from version 3.19rc5"
+
+CVE_STATUS[CVE-2015-1593] = "fixed-version: Fixed from version 4.0rc1"
+
+CVE_STATUS[CVE-2015-1805] = "fixed-version: Fixed from version 3.16rc1"
+
+CVE_STATUS[CVE-2015-2041] = "fixed-version: Fixed from version 3.19rc7"
+
+CVE_STATUS[CVE-2015-2042] = "fixed-version: Fixed from version 3.19"
+
+CVE_STATUS[CVE-2015-2150] = "fixed-version: Fixed from version 4.0rc4"
+
+CVE_STATUS[CVE-2015-2666] = "fixed-version: Fixed from version 4.0rc1"
+
+CVE_STATUS[CVE-2015-2672] = "fixed-version: Fixed from version 4.0rc3"
+
+CVE_STATUS[CVE-2015-2686] = "fixed-version: Fixed from version 4.0rc6"
+
+CVE_STATUS[CVE-2015-2830] = "fixed-version: Fixed from version 4.0rc3"
+
+# CVE-2015-2877 has no known resolution
+
+CVE_STATUS[CVE-2015-2922] = "fixed-version: Fixed from version 4.0rc7"
+
+CVE_STATUS[CVE-2015-2925] = "fixed-version: Fixed from version 4.3rc1"
+
+CVE_STATUS[CVE-2015-3212] = "fixed-version: Fixed from version 4.2rc1"
+
+CVE_STATUS[CVE-2015-3214] = "fixed-version: Fixed from version 2.6.33rc8"
+
+CVE_STATUS[CVE-2015-3288] = "fixed-version: Fixed from version 4.2rc2"
+
+CVE_STATUS[CVE-2015-3290] = "fixed-version: Fixed from version 4.2rc3"
+
+CVE_STATUS[CVE-2015-3291] = "fixed-version: Fixed from version 4.2rc3"
+
+CVE_STATUS[CVE-2015-3331] = "fixed-version: Fixed from version 4.0rc5"
+
+# Skipping CVE-2015-3332, no affected_versions
+
+CVE_STATUS[CVE-2015-3339] = "fixed-version: Fixed from version 4.1rc1"
+
+CVE_STATUS[CVE-2015-3636] = "fixed-version: Fixed from version 4.1rc2"
+
+CVE_STATUS[CVE-2015-4001] = "fixed-version: Fixed from version 4.1rc7"
+
+CVE_STATUS[CVE-2015-4002] = "fixed-version: Fixed from version 4.1rc7"
+
+CVE_STATUS[CVE-2015-4003] = "fixed-version: Fixed from version 4.1rc7"
+
+CVE_STATUS[CVE-2015-4004] = "fixed-version: Fixed from version 4.3rc1"
+
+CVE_STATUS[CVE-2015-4036] = "fixed-version: Fixed from version 4.0rc1"
+
+CVE_STATUS[CVE-2015-4167] = "fixed-version: Fixed from version 4.0rc1"
+
+CVE_STATUS[CVE-2015-4170] = "fixed-version: Fixed from version 3.13rc5"
+
+CVE_STATUS[CVE-2015-4176] = "fixed-version: Fixed from version 4.1rc1"
+
+CVE_STATUS[CVE-2015-4177] = "fixed-version: Fixed from version 4.1rc1"
+
+CVE_STATUS[CVE-2015-4178] = "fixed-version: Fixed from version 4.1rc1"
+
+CVE_STATUS[CVE-2015-4692] = "fixed-version: Fixed from version 4.2rc1"
+
+CVE_STATUS[CVE-2015-4700] = "fixed-version: Fixed from version 4.1rc6"
+
+CVE_STATUS[CVE-2015-5156] = "fixed-version: Fixed from version 4.2rc7"
+
+CVE_STATUS[CVE-2015-5157] = "fixed-version: Fixed from version 4.2rc3"
+
+CVE_STATUS[CVE-2015-5257] = "fixed-version: Fixed from version 4.3rc3"
+
+CVE_STATUS[CVE-2015-5283] = "fixed-version: Fixed from version 4.3rc3"
+
+CVE_STATUS[CVE-2015-5307] = "fixed-version: Fixed from version 4.4rc1"
+
+CVE_STATUS[CVE-2015-5327] = "fixed-version: Fixed from version 4.4rc1"
+
+CVE_STATUS[CVE-2015-5364] = "fixed-version: Fixed from version 4.1rc7"
+
+CVE_STATUS[CVE-2015-5366] = "fixed-version: Fixed from version 4.1rc7"
+
+CVE_STATUS[CVE-2015-5697] = "fixed-version: Fixed from version 4.2rc6"
+
+CVE_STATUS[CVE-2015-5706] = "fixed-version: Fixed from version 4.1rc3"
+
+CVE_STATUS[CVE-2015-5707] = "fixed-version: Fixed from version 4.1rc1"
+
+CVE_STATUS[CVE-2015-6252] = "fixed-version: Fixed from version 4.2rc5"
+
+CVE_STATUS[CVE-2015-6526] = "fixed-version: Fixed from version 4.1rc1"
+
+# CVE-2015-6619 has no known resolution
+
+# CVE-2015-6646 has no known resolution
+
+CVE_STATUS[CVE-2015-6937] = "fixed-version: Fixed from version 4.3rc1"
+
+# Skipping CVE-2015-7312, no affected_versions
+
+CVE_STATUS[CVE-2015-7509] = "fixed-version: Fixed from version 3.7rc1"
+
+CVE_STATUS[CVE-2015-7513] = "fixed-version: Fixed from version 4.4rc7"
+
+CVE_STATUS[CVE-2015-7515] = "fixed-version: Fixed from version 4.4rc6"
+
+CVE_STATUS[CVE-2015-7550] = "fixed-version: Fixed from version 4.4rc8"
+
+# Skipping CVE-2015-7553, no affected_versions
+
+CVE_STATUS[CVE-2015-7566] = "fixed-version: Fixed from version 4.5rc2"
+
+CVE_STATUS[CVE-2015-7613] = "fixed-version: Fixed from version 4.3rc4"
+
+CVE_STATUS[CVE-2015-7799] = "fixed-version: Fixed from version 4.4rc1"
+
+CVE_STATUS[CVE-2015-7833] = "fixed-version: Fixed from version 4.6rc6"
+
+# Skipping CVE-2015-7837, no affected_versions
+
+CVE_STATUS[CVE-2015-7872] = "fixed-version: Fixed from version 4.3rc7"
+
+CVE_STATUS[CVE-2015-7884] = "fixed-version: Fixed from version 4.4rc1"
+
+CVE_STATUS[CVE-2015-7885] = "fixed-version: Fixed from version 4.4rc1"
+
+CVE_STATUS[CVE-2015-7990] = "fixed-version: Fixed from version 4.4rc4"
+
+# Skipping CVE-2015-8019, no affected_versions
+
+CVE_STATUS[CVE-2015-8104] = "fixed-version: Fixed from version 4.4rc1"
+
+CVE_STATUS[CVE-2015-8215] = "fixed-version: Fixed from version 4.0rc3"
+
+CVE_STATUS[CVE-2015-8324] = "fixed-version: Fixed from version 2.6.34rc1"
+
+CVE_STATUS[CVE-2015-8374] = "fixed-version: Fixed from version 4.4rc1"
+
+CVE_STATUS[CVE-2015-8539] = "fixed-version: Fixed from version 4.4rc3"
+
+CVE_STATUS[CVE-2015-8543] = "fixed-version: Fixed from version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8550] = "fixed-version: Fixed from version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8551] = "fixed-version: Fixed from version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8552] = "fixed-version: Fixed from version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8553] = "fixed-version: Fixed from version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8569] = "fixed-version: Fixed from version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8575] = "fixed-version: Fixed from version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8660] = "fixed-version: Fixed from version 4.4rc4"
+
+CVE_STATUS[CVE-2015-8709] = "fixed-version: Fixed from version 4.10rc1"
+
+CVE_STATUS[CVE-2015-8746] = "fixed-version: Fixed from version 4.3rc1"
+
+CVE_STATUS[CVE-2015-8767] = "fixed-version: Fixed from version 4.3rc4"
+
+CVE_STATUS[CVE-2015-8785] = "fixed-version: Fixed from version 4.4rc5"
+
+CVE_STATUS[CVE-2015-8787] = "fixed-version: Fixed from version 4.4rc1"
+
+CVE_STATUS[CVE-2015-8812] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2015-8816] = "fixed-version: Fixed from version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8830] = "fixed-version: Fixed from version 4.1rc1"
+
+CVE_STATUS[CVE-2015-8839] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2015-8844] = "fixed-version: Fixed from version 4.4rc3"
+
+CVE_STATUS[CVE-2015-8845] = "fixed-version: Fixed from version 4.4rc3"
+
+# Skipping CVE-2015-8937, no affected_versions
+
+# Skipping CVE-2015-8938, no affected_versions
+
+# Skipping CVE-2015-8939, no affected_versions
+
+# Skipping CVE-2015-8940, no affected_versions
+
+# Skipping CVE-2015-8941, no affected_versions
+
+# Skipping CVE-2015-8942, no affected_versions
+
+# Skipping CVE-2015-8943, no affected_versions
+
+# Skipping CVE-2015-8944, no affected_versions
+
+CVE_STATUS[CVE-2015-8950] = "fixed-version: Fixed from version 4.1rc2"
+
+CVE_STATUS[CVE-2015-8952] = "fixed-version: Fixed from version 4.6rc1"
+
+CVE_STATUS[CVE-2015-8953] = "fixed-version: Fixed from version 4.3"
+
+CVE_STATUS[CVE-2015-8955] = "fixed-version: Fixed from version 4.1rc1"
+
+CVE_STATUS[CVE-2015-8956] = "fixed-version: Fixed from version 4.2rc1"
+
+CVE_STATUS[CVE-2015-8961] = "fixed-version: Fixed from version 4.4rc1"
+
+CVE_STATUS[CVE-2015-8962] = "fixed-version: Fixed from version 4.4rc1"
+
+CVE_STATUS[CVE-2015-8963] = "fixed-version: Fixed from version 4.4"
+
+CVE_STATUS[CVE-2015-8964] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2015-8966] = "fixed-version: Fixed from version 4.4rc8"
+
+CVE_STATUS[CVE-2015-8967] = "fixed-version: Fixed from version 4.0rc1"
+
+CVE_STATUS[CVE-2015-8970] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2015-9004] = "fixed-version: Fixed from version 3.19rc7"
+
+CVE_STATUS[CVE-2015-9016] = "fixed-version: Fixed from version 4.3rc1"
+
+CVE_STATUS[CVE-2015-9289] = "fixed-version: Fixed from version 4.2rc1"
+
+CVE_STATUS[CVE-2016-0617] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2016-0723] = "fixed-version: Fixed from version 4.5rc2"
+
+CVE_STATUS[CVE-2016-0728] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2016-0758] = "fixed-version: Fixed from version 4.6"
+
+# Skipping CVE-2016-0774, no affected_versions
+
+CVE_STATUS[CVE-2016-0821] = "fixed-version: Fixed from version 4.3rc1"
+
+CVE_STATUS[CVE-2016-0823] = "fixed-version: Fixed from version 4.0rc5"
+
+CVE_STATUS[CVE-2016-10044] = "fixed-version: Fixed from version 4.8rc7"
+
+CVE_STATUS[CVE-2016-10088] = "fixed-version: Fixed from version 4.10rc1"
+
+CVE_STATUS[CVE-2016-10147] = "fixed-version: Fixed from version 4.9"
+
+CVE_STATUS[CVE-2016-10150] = "fixed-version: Fixed from version 4.9rc8"
+
+CVE_STATUS[CVE-2016-10153] = "fixed-version: Fixed from version 4.10rc1"
+
+CVE_STATUS[CVE-2016-10154] = "fixed-version: Fixed from version 4.10rc1"
+
+CVE_STATUS[CVE-2016-10200] = "fixed-version: Fixed from version 4.9rc7"
+
+CVE_STATUS[CVE-2016-10208] = "fixed-version: Fixed from version 4.10rc1"
+
+CVE_STATUS[CVE-2016-10229] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2016-10318] = "fixed-version: Fixed from version 4.8rc6"
+
+CVE_STATUS[CVE-2016-10723] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2016-10741] = "fixed-version: Fixed from version 4.10rc1"
+
+CVE_STATUS[CVE-2016-10764] = "fixed-version: Fixed from version 4.10rc1"
+
+CVE_STATUS[CVE-2016-10905] = "fixed-version: Fixed from version 4.8rc1"
+
+CVE_STATUS[CVE-2016-10906] = "fixed-version: Fixed from version 4.5rc6"
+
+CVE_STATUS[CVE-2016-10907] = "fixed-version: Fixed from version 4.9rc1"
+
+CVE_STATUS[CVE-2016-1237] = "fixed-version: Fixed from version 4.7rc5"
+
+CVE_STATUS[CVE-2016-1575] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2016-1576] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2016-1583] = "fixed-version: Fixed from version 4.7rc3"
+
+CVE_STATUS[CVE-2016-2053] = "fixed-version: Fixed from version 4.3rc1"
+
+CVE_STATUS[CVE-2016-2069] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2070] = "fixed-version: Fixed from version 4.4"
+
+CVE_STATUS[CVE-2016-2085] = "fixed-version: Fixed from version 4.5rc4"
+
+CVE_STATUS[CVE-2016-2117] = "fixed-version: Fixed from version 4.6rc5"
+
+CVE_STATUS[CVE-2016-2143] = "fixed-version: Fixed from version 4.5"
+
+CVE_STATUS[CVE-2016-2184] = "fixed-version: Fixed from version 4.6rc1"
+
+CVE_STATUS[CVE-2016-2185] = "fixed-version: Fixed from version 4.6rc1"
+
+CVE_STATUS[CVE-2016-2186] = "fixed-version: Fixed from version 4.6rc1"
+
+CVE_STATUS[CVE-2016-2187] = "fixed-version: Fixed from version 4.6rc5"
+
+CVE_STATUS[CVE-2016-2188] = "fixed-version: Fixed from version 4.11rc2"
+
+CVE_STATUS[CVE-2016-2383] = "fixed-version: Fixed from version 4.5rc4"
+
+CVE_STATUS[CVE-2016-2384] = "fixed-version: Fixed from version 4.5rc4"
+
+CVE_STATUS[CVE-2016-2543] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2544] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2545] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2546] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2547] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2548] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2549] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2550] = "fixed-version: Fixed from version 4.5rc4"
+
+CVE_STATUS[CVE-2016-2782] = "fixed-version: Fixed from version 4.5rc2"
+
+CVE_STATUS[CVE-2016-2847] = "fixed-version: Fixed from version 4.5rc1"
+
+# Skipping CVE-2016-2853, no affected_versions
+
+# Skipping CVE-2016-2854, no affected_versions
+
+CVE_STATUS[CVE-2016-3044] = "fixed-version: Fixed from version 4.5"
+
+CVE_STATUS[CVE-2016-3070] = "fixed-version: Fixed from version 4.4rc1"
+
+CVE_STATUS[CVE-2016-3134] = "fixed-version: Fixed from version 4.6rc2"
+
+CVE_STATUS[CVE-2016-3135] = "fixed-version: Fixed from version 4.6rc1"
+
+CVE_STATUS[CVE-2016-3136] = "fixed-version: Fixed from version 4.6rc3"
+
+CVE_STATUS[CVE-2016-3137] = "fixed-version: Fixed from version 4.6rc3"
+
+CVE_STATUS[CVE-2016-3138] = "fixed-version: Fixed from version 4.6rc1"
+
+CVE_STATUS[CVE-2016-3139] = "fixed-version: Fixed from version 3.17rc1"
+
+CVE_STATUS[CVE-2016-3140] = "fixed-version: Fixed from version 4.6rc3"
+
+CVE_STATUS[CVE-2016-3156] = "fixed-version: Fixed from version 4.6rc1"
+
+CVE_STATUS[CVE-2016-3157] = "fixed-version: Fixed from version 4.6rc1"
+
+CVE_STATUS[CVE-2016-3672] = "fixed-version: Fixed from version 4.6rc1"
+
+CVE_STATUS[CVE-2016-3689] = "fixed-version: Fixed from version 4.6rc1"
+
+# Skipping CVE-2016-3695, no affected_versions
+
+# Skipping CVE-2016-3699, no affected_versions
+
+# Skipping CVE-2016-3707, no affected_versions
+
+CVE_STATUS[CVE-2016-3713] = "fixed-version: Fixed from version 4.7rc1"
+
+# CVE-2016-3775 has no known resolution
+
+# CVE-2016-3802 has no known resolution
+
+# CVE-2016-3803 has no known resolution
+
+CVE_STATUS[CVE-2016-3841] = "fixed-version: Fixed from version 4.4rc4"
+
+CVE_STATUS[CVE-2016-3857] = "fixed-version: Fixed from version 4.8rc2"
+
+CVE_STATUS[CVE-2016-3951] = "fixed-version: Fixed from version 4.5"
+
+CVE_STATUS[CVE-2016-3955] = "fixed-version: Fixed from version 4.6rc3"
+
+CVE_STATUS[CVE-2016-3961] = "fixed-version: Fixed from version 4.6rc5"
+
+CVE_STATUS[CVE-2016-4440] = "fixed-version: Fixed from version 4.7rc1"
+
+CVE_STATUS[CVE-2016-4470] = "fixed-version: Fixed from version 4.7rc4"
+
+CVE_STATUS[CVE-2016-4482] = "fixed-version: Fixed from version 4.7rc1"
+
+CVE_STATUS[CVE-2016-4485] = "fixed-version: Fixed from version 4.6"
+
+CVE_STATUS[CVE-2016-4486] = "fixed-version: Fixed from version 4.6"
+
+CVE_STATUS[CVE-2016-4557] = "fixed-version: Fixed from version 4.6rc6"
+
+CVE_STATUS[CVE-2016-4558] = "fixed-version: Fixed from version 4.6rc7"
+
+CVE_STATUS[CVE-2016-4565] = "fixed-version: Fixed from version 4.6rc6"
+
+CVE_STATUS[CVE-2016-4568] = "fixed-version: Fixed from version 4.6rc6"
+
+CVE_STATUS[CVE-2016-4569] = "fixed-version: Fixed from version 4.7rc1"
+
+CVE_STATUS[CVE-2016-4578] = "fixed-version: Fixed from version 4.7rc1"
+
+CVE_STATUS[CVE-2016-4580] = "fixed-version: Fixed from version 4.6"
+
+CVE_STATUS[CVE-2016-4581] = "fixed-version: Fixed from version 4.6rc7"
+
+CVE_STATUS[CVE-2016-4794] = "fixed-version: Fixed from version 4.7rc4"
+
+CVE_STATUS[CVE-2016-4805] = "fixed-version: Fixed from version 4.6rc1"
+
+CVE_STATUS[CVE-2016-4913] = "fixed-version: Fixed from version 4.6"
+
+CVE_STATUS[CVE-2016-4951] = "fixed-version: Fixed from version 4.7rc1"
+
+CVE_STATUS[CVE-2016-4997] = "fixed-version: Fixed from version 4.7rc1"
+
+CVE_STATUS[CVE-2016-4998] = "fixed-version: Fixed from version 4.7rc1"
+
+CVE_STATUS[CVE-2016-5195] = "fixed-version: Fixed from version 4.9rc2"
+
+CVE_STATUS[CVE-2016-5243] = "fixed-version: Fixed from version 4.7rc3"
+
+CVE_STATUS[CVE-2016-5244] = "fixed-version: Fixed from version 4.7rc3"
+
+# Skipping CVE-2016-5340, no affected_versions
+
+# Skipping CVE-2016-5342, no affected_versions
+
+# Skipping CVE-2016-5343, no affected_versions
+
+# Skipping CVE-2016-5344, no affected_versions
+
+CVE_STATUS[CVE-2016-5400] = "fixed-version: Fixed from version 4.7"
+
+CVE_STATUS[CVE-2016-5412] = "fixed-version: Fixed from version 4.8rc1"
+
+CVE_STATUS[CVE-2016-5696] = "fixed-version: Fixed from version 4.7"
+
+CVE_STATUS[CVE-2016-5728] = "fixed-version: Fixed from version 4.7rc1"
+
+CVE_STATUS[CVE-2016-5828] = "fixed-version: Fixed from version 4.7rc6"
+
+CVE_STATUS[CVE-2016-5829] = "fixed-version: Fixed from version 4.7rc5"
+
+# CVE-2016-5870 has no known resolution
+
+CVE_STATUS[CVE-2016-6130] = "fixed-version: Fixed from version 4.6rc6"
+
+CVE_STATUS[CVE-2016-6136] = "fixed-version: Fixed from version 4.8rc1"
+
+CVE_STATUS[CVE-2016-6156] = "fixed-version: Fixed from version 4.7rc7"
+
+CVE_STATUS[CVE-2016-6162] = "fixed-version: Fixed from version 4.7"
+
+CVE_STATUS[CVE-2016-6187] = "fixed-version: Fixed from version 4.7rc7"
+
+CVE_STATUS[CVE-2016-6197] = "fixed-version: Fixed from version 4.6rc1"
+
+CVE_STATUS[CVE-2016-6198] = "fixed-version: Fixed from version 4.6"
+
+CVE_STATUS[CVE-2016-6213] = "fixed-version: Fixed from version 4.9rc1"
+
+CVE_STATUS[CVE-2016-6327] = "fixed-version: Fixed from version 4.6rc1"
+
+CVE_STATUS[CVE-2016-6480] = "fixed-version: Fixed from version 4.8rc3"
+
+CVE_STATUS[CVE-2016-6516] = "fixed-version: Fixed from version 4.8rc1"
+
+# Skipping CVE-2016-6753, no affected_versions
+
+CVE_STATUS[CVE-2016-6786] = "fixed-version: Fixed from version 4.0rc1"
+
+CVE_STATUS[CVE-2016-6787] = "fixed-version: Fixed from version 4.0rc1"
+
+CVE_STATUS[CVE-2016-6828] = "fixed-version: Fixed from version 4.8rc5"
+
+CVE_STATUS[CVE-2016-7039] = "fixed-version: Fixed from version 4.9rc4"
+
+CVE_STATUS[CVE-2016-7042] = "fixed-version: Fixed from version 4.9rc3"
+
+CVE_STATUS[CVE-2016-7097] = "fixed-version: Fixed from version 4.9rc1"
+
+CVE_STATUS[CVE-2016-7117] = "fixed-version: Fixed from version 4.6rc1"
+
+# Skipping CVE-2016-7118, no affected_versions
+
+CVE_STATUS[CVE-2016-7425] = "fixed-version: Fixed from version 4.9rc1"
+
+CVE_STATUS[CVE-2016-7910] = "fixed-version: Fixed from version 4.8rc1"
+
+CVE_STATUS[CVE-2016-7911] = "fixed-version: Fixed from version 4.7rc7"
+
+CVE_STATUS[CVE-2016-7912] = "fixed-version: Fixed from version 4.6rc5"
+
+CVE_STATUS[CVE-2016-7913] = "fixed-version: Fixed from version 4.6rc1"
+
+CVE_STATUS[CVE-2016-7914] = "fixed-version: Fixed from version 4.6rc4"
+
+CVE_STATUS[CVE-2016-7915] = "fixed-version: Fixed from version 4.6rc1"
+
+CVE_STATUS[CVE-2016-7916] = "fixed-version: Fixed from version 4.6rc7"
+
+CVE_STATUS[CVE-2016-7917] = "fixed-version: Fixed from version 4.5rc6"
+
+CVE_STATUS[CVE-2016-8399] = "fixed-version: Fixed from version 4.9"
+
+# Skipping CVE-2016-8401, no affected_versions
+
+# Skipping CVE-2016-8402, no affected_versions
+
+# Skipping CVE-2016-8403, no affected_versions
+
+# Skipping CVE-2016-8404, no affected_versions
+
+CVE_STATUS[CVE-2016-8405] = "fixed-version: Fixed from version 4.10rc6"
+
+# Skipping CVE-2016-8406, no affected_versions
+
+# Skipping CVE-2016-8407, no affected_versions
+
+CVE_STATUS[CVE-2016-8630] = "fixed-version: Fixed from version 4.9rc4"
+
+CVE_STATUS[CVE-2016-8632] = "fixed-version: Fixed from version 4.9rc8"
+
+CVE_STATUS[CVE-2016-8633] = "fixed-version: Fixed from version 4.9rc4"
+
+CVE_STATUS[CVE-2016-8636] = "fixed-version: Fixed from version 4.10rc8"
+
+CVE_STATUS[CVE-2016-8645] = "fixed-version: Fixed from version 4.9rc6"
+
+CVE_STATUS[CVE-2016-8646] = "fixed-version: Fixed from version 4.4rc1"
+
+CVE_STATUS[CVE-2016-8650] = "fixed-version: Fixed from version 4.9rc7"
+
+CVE_STATUS[CVE-2016-8655] = "fixed-version: Fixed from version 4.9rc8"
+
+CVE_STATUS[CVE-2016-8658] = "fixed-version: Fixed from version 4.8rc7"
+
+# CVE-2016-8660 has no known resolution
+
+CVE_STATUS[CVE-2016-8666] = "fixed-version: Fixed from version 4.6rc1"
+
+CVE_STATUS[CVE-2016-9083] = "fixed-version: Fixed from version 4.9rc4"
+
+CVE_STATUS[CVE-2016-9084] = "fixed-version: Fixed from version 4.9rc4"
+
+CVE_STATUS[CVE-2016-9120] = "fixed-version: Fixed from version 4.6rc1"
+
+CVE_STATUS[CVE-2016-9178] = "fixed-version: Fixed from version 4.8rc7"
+
+CVE_STATUS[CVE-2016-9191] = "fixed-version: Fixed from version 4.10rc4"
+
+CVE_STATUS[CVE-2016-9313] = "fixed-version: Fixed from version 4.9rc3"
+
+CVE_STATUS[CVE-2016-9555] = "fixed-version: Fixed from version 4.9rc4"
+
+CVE_STATUS[CVE-2016-9576] = "fixed-version: Fixed from version 4.9"
+
+CVE_STATUS[CVE-2016-9588] = "fixed-version: Fixed from version 4.10rc1"
+
+CVE_STATUS[CVE-2016-9604] = "fixed-version: Fixed from version 4.11rc8"
+
+# Skipping CVE-2016-9644, no affected_versions
+
+CVE_STATUS[CVE-2016-9685] = "fixed-version: Fixed from version 4.6rc1"
+
+CVE_STATUS[CVE-2016-9754] = "fixed-version: Fixed from version 4.7rc1"
+
+CVE_STATUS[CVE-2016-9755] = "fixed-version: Fixed from version 4.9rc8"
+
+CVE_STATUS[CVE-2016-9756] = "fixed-version: Fixed from version 4.9rc7"
+
+CVE_STATUS[CVE-2016-9777] = "fixed-version: Fixed from version 4.9rc7"
+
+CVE_STATUS[CVE-2016-9793] = "fixed-version: Fixed from version 4.9rc8"
+
+CVE_STATUS[CVE-2016-9794] = "fixed-version: Fixed from version 4.7rc1"
+
+CVE_STATUS[CVE-2016-9806] = "fixed-version: Fixed from version 4.7rc1"
+
+CVE_STATUS[CVE-2016-9919] = "fixed-version: Fixed from version 4.9rc8"
+
+# Skipping CVE-2017-0403, no affected_versions
+
+# Skipping CVE-2017-0404, no affected_versions
+
+# Skipping CVE-2017-0426, no affected_versions
+
+# Skipping CVE-2017-0427, no affected_versions
+
+# CVE-2017-0507 has no known resolution
+
+# CVE-2017-0508 has no known resolution
+
+# Skipping CVE-2017-0510, no affected_versions
+
+# Skipping CVE-2017-0528, no affected_versions
+
+# Skipping CVE-2017-0537, no affected_versions
+
+# CVE-2017-0564 has no known resolution
+
+CVE_STATUS[CVE-2017-0605] = "fixed-version: Fixed from version 4.12rc1"
+
+CVE_STATUS[CVE-2017-0627] = "fixed-version: Fixed from version 4.14rc1"
+
+# CVE-2017-0630 has no known resolution
+
+# CVE-2017-0749 has no known resolution
+
+CVE_STATUS[CVE-2017-0750] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2017-0786] = "fixed-version: Fixed from version 4.14rc4"
+
+CVE_STATUS[CVE-2017-0861] = "fixed-version: Fixed from version 4.15rc3"
+
+CVE_STATUS[CVE-2017-1000] = "fixed-version: Fixed from version 4.13rc5"
+
+CVE_STATUS[CVE-2017-1000111] = "fixed-version: Fixed from version 4.13rc5"
+
+CVE_STATUS[CVE-2017-1000112] = "fixed-version: Fixed from version 4.13rc5"
+
+CVE_STATUS[CVE-2017-1000251] = "fixed-version: Fixed from version 4.14rc1"
+
+CVE_STATUS[CVE-2017-1000252] = "fixed-version: Fixed from version 4.14rc1"
+
+CVE_STATUS[CVE-2017-1000253] = "fixed-version: Fixed from version 4.1rc1"
+
+CVE_STATUS[CVE-2017-1000255] = "fixed-version: Fixed from version 4.14rc5"
+
+CVE_STATUS[CVE-2017-1000363] = "fixed-version: Fixed from version 4.12rc2"
+
+CVE_STATUS[CVE-2017-1000364] = "fixed-version: Fixed from version 4.12rc6"
+
+CVE_STATUS[CVE-2017-1000365] = "fixed-version: Fixed from version 4.12rc7"
+
+CVE_STATUS[CVE-2017-1000370] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2017-1000371] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2017-1000379] = "fixed-version: Fixed from version 4.12rc6"
+
+CVE_STATUS[CVE-2017-1000380] = "fixed-version: Fixed from version 4.12rc5"
+
+CVE_STATUS[CVE-2017-1000405] = "fixed-version: Fixed from version 4.15rc2"
+
+CVE_STATUS[CVE-2017-1000407] = "fixed-version: Fixed from version 4.15rc3"
+
+CVE_STATUS[CVE-2017-1000410] = "fixed-version: Fixed from version 4.15rc8"
+
+CVE_STATUS[CVE-2017-10661] = "fixed-version: Fixed from version 4.11rc1"
+
+CVE_STATUS[CVE-2017-10662] = "fixed-version: Fixed from version 4.12rc1"
+
+CVE_STATUS[CVE-2017-10663] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2017-10810] = "fixed-version: Fixed from version 4.12rc1"
+
+CVE_STATUS[CVE-2017-10911] = "fixed-version: Fixed from version 4.12rc7"
+
+CVE_STATUS[CVE-2017-11089] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2017-11176] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2017-11472] = "fixed-version: Fixed from version 4.12rc1"
+
+CVE_STATUS[CVE-2017-11473] = "fixed-version: Fixed from version 4.13rc2"
+
+CVE_STATUS[CVE-2017-11600] = "fixed-version: Fixed from version 4.13"
+
+CVE_STATUS[CVE-2017-12134] = "fixed-version: Fixed from version 4.13rc6"
+
+CVE_STATUS[CVE-2017-12146] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2017-12153] = "fixed-version: Fixed from version 4.14rc2"
+
+CVE_STATUS[CVE-2017-12154] = "fixed-version: Fixed from version 4.14rc1"
+
+CVE_STATUS[CVE-2017-12168] = "fixed-version: Fixed from version 4.9rc6"
+
+CVE_STATUS[CVE-2017-12188] = "fixed-version: Fixed from version 4.14rc5"
+
+CVE_STATUS[CVE-2017-12190] = "fixed-version: Fixed from version 4.14rc5"
+
+CVE_STATUS[CVE-2017-12192] = "fixed-version: Fixed from version 4.14rc3"
+
+CVE_STATUS[CVE-2017-12193] = "fixed-version: Fixed from version 4.14rc7"
+
+CVE_STATUS[CVE-2017-12762] = "fixed-version: Fixed from version 4.13rc4"
+
+CVE_STATUS[CVE-2017-13080] = "fixed-version: Fixed from version 4.14rc6"
+
+CVE_STATUS[CVE-2017-13166] = "fixed-version: Fixed from version 4.16rc1"
+
+CVE_STATUS[CVE-2017-13167] = "fixed-version: Fixed from version 4.5rc4"
+
+CVE_STATUS[CVE-2017-13168] = "fixed-version: Fixed from version 4.18rc4"
+
+CVE_STATUS[CVE-2017-13215] = "fixed-version: Fixed from version 4.5rc1"
+
+CVE_STATUS[CVE-2017-13216] = "fixed-version: Fixed from version 4.15rc8"
+
+CVE_STATUS[CVE-2017-13220] = "fixed-version: Fixed from version 3.19rc3"
+
+# CVE-2017-13221 has no known resolution
+
+# CVE-2017-13222 has no known resolution
+
+CVE_STATUS[CVE-2017-13305] = "fixed-version: Fixed from version 4.12rc5"
+
+CVE_STATUS[CVE-2017-13686] = "fixed-version: Fixed from version 4.13rc7"
+
+# CVE-2017-13693 has no known resolution
+
+# CVE-2017-13694 has no known resolution
+
+CVE_STATUS[CVE-2017-13695] = "fixed-version: Fixed from version 4.17rc1"
+
+CVE_STATUS[CVE-2017-13715] = "fixed-version: Fixed from version 4.3rc1"
+
+CVE_STATUS[CVE-2017-14051] = "fixed-version: Fixed from version 4.14rc1"
+
+CVE_STATUS[CVE-2017-14106] = "fixed-version: Fixed from version 4.12rc3"
+
+CVE_STATUS[CVE-2017-14140] = "fixed-version: Fixed from version 4.13rc6"
+
+CVE_STATUS[CVE-2017-14156] = "fixed-version: Fixed from version 4.14rc1"
+
+CVE_STATUS[CVE-2017-14340] = "fixed-version: Fixed from version 4.14rc1"
+
+CVE_STATUS[CVE-2017-14489] = "fixed-version: Fixed from version 4.14rc3"
+
+CVE_STATUS[CVE-2017-14497] = "fixed-version: Fixed from version 4.13"
+
+CVE_STATUS[CVE-2017-14954] = "fixed-version: Fixed from version 4.14rc3"
+
+CVE_STATUS[CVE-2017-14991] = "fixed-version: Fixed from version 4.14rc2"
+
+CVE_STATUS[CVE-2017-15102] = "fixed-version: Fixed from version 4.9rc1"
+
+CVE_STATUS[CVE-2017-15115] = "fixed-version: Fixed from version 4.14rc6"
+
+CVE_STATUS[CVE-2017-15116] = "fixed-version: Fixed from version 4.2rc1"
+
+CVE_STATUS[CVE-2017-15121] = "fixed-version: Fixed from version 3.11rc1"
+
+CVE_STATUS[CVE-2017-15126] = "fixed-version: Fixed from version 4.14rc4"
+
+CVE_STATUS[CVE-2017-15127] = "fixed-version: Fixed from version 4.13rc5"
+
+CVE_STATUS[CVE-2017-15128] = "fixed-version: Fixed from version 4.14rc8"
+
+CVE_STATUS[CVE-2017-15129] = "fixed-version: Fixed from version 4.15rc5"
+
+CVE_STATUS[CVE-2017-15265] = "fixed-version: Fixed from version 4.14rc5"
+
+CVE_STATUS[CVE-2017-15274] = "fixed-version: Fixed from version 4.12rc5"
+
+CVE_STATUS[CVE-2017-15299] = "fixed-version: Fixed from version 4.14rc6"
+
+CVE_STATUS[CVE-2017-15306] = "fixed-version: Fixed from version 4.14rc7"
+
+CVE_STATUS[CVE-2017-15537] = "fixed-version: Fixed from version 4.14rc3"
+
+CVE_STATUS[CVE-2017-15649] = "fixed-version: Fixed from version 4.14rc4"
+
+CVE_STATUS[CVE-2017-15868] = "fixed-version: Fixed from version 3.19rc3"
+
+CVE_STATUS[CVE-2017-15951] = "fixed-version: Fixed from version 4.14rc6"
+
+CVE_STATUS[CVE-2017-16525] = "fixed-version: Fixed from version 4.14rc5"
+
+CVE_STATUS[CVE-2017-16526] = "fixed-version: Fixed from version 4.14rc4"
+
+CVE_STATUS[CVE-2017-16527] = "fixed-version: Fixed from version 4.14rc5"
+
+CVE_STATUS[CVE-2017-16528] = "fixed-version: Fixed from version 4.14rc1"
+
+CVE_STATUS[CVE-2017-16529] = "fixed-version: Fixed from version 4.14rc4"
+
+CVE_STATUS[CVE-2017-16530] = "fixed-version: Fixed from version 4.14rc4"
+
+CVE_STATUS[CVE-2017-16531] = "fixed-version: Fixed from version 4.14rc4"
+
+CVE_STATUS[CVE-2017-16532] = "fixed-version: Fixed from version 4.14rc5"
+
+CVE_STATUS[CVE-2017-16533] = "fixed-version: Fixed from version 4.14rc5"
+
+CVE_STATUS[CVE-2017-16534] = "fixed-version: Fixed from version 4.14rc4"
+
+CVE_STATUS[CVE-2017-16535] = "fixed-version: Fixed from version 4.14rc6"
+
+CVE_STATUS[CVE-2017-16536] = "fixed-version: Fixed from version 4.15rc1"
+
+CVE_STATUS[CVE-2017-16537] = "fixed-version: Fixed from version 4.15rc1"
+
+CVE_STATUS[CVE-2017-16538] = "fixed-version: Fixed from version 4.16rc1"
+
+CVE_STATUS[CVE-2017-16643] = "fixed-version: Fixed from version 4.14rc7"
+
+CVE_STATUS[CVE-2017-16644] = "fixed-version: Fixed from version 4.16rc1"
+
+CVE_STATUS[CVE-2017-16645] = "fixed-version: Fixed from version 4.14rc6"
+
+CVE_STATUS[CVE-2017-16646] = "fixed-version: Fixed from version 4.15rc1"
+
+CVE_STATUS[CVE-2017-16647] = "fixed-version: Fixed from version 4.14"
+
+CVE_STATUS[CVE-2017-16648] = "fixed-version: Fixed from version 4.15rc1"
+
+CVE_STATUS[CVE-2017-16649] = "fixed-version: Fixed from version 4.14"
+
+CVE_STATUS[CVE-2017-16650] = "fixed-version: Fixed from version 4.14"
+
+CVE_STATUS[CVE-2017-16911] = "fixed-version: Fixed from version 4.15rc4"
+
+CVE_STATUS[CVE-2017-16912] = "fixed-version: Fixed from version 4.15rc4"
+
+CVE_STATUS[CVE-2017-16913] = "fixed-version: Fixed from version 4.15rc4"
+
+CVE_STATUS[CVE-2017-16914] = "fixed-version: Fixed from version 4.15rc4"
+
+CVE_STATUS[CVE-2017-16939] = "fixed-version: Fixed from version 4.14rc7"
+
+CVE_STATUS[CVE-2017-16994] = "fixed-version: Fixed from version 4.15rc1"
+
+CVE_STATUS[CVE-2017-16995] = "fixed-version: Fixed from version 4.15rc5"
+
+CVE_STATUS[CVE-2017-16996] = "fixed-version: Fixed from version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17052] = "fixed-version: Fixed from version 4.13rc7"
+
+CVE_STATUS[CVE-2017-17053] = "fixed-version: Fixed from version 4.13rc7"
+
+CVE_STATUS[CVE-2017-17448] = "fixed-version: Fixed from version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17449] = "fixed-version: Fixed from version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17450] = "fixed-version: Fixed from version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17558] = "fixed-version: Fixed from version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17712] = "fixed-version: Fixed from version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17741] = "fixed-version: Fixed from version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17805] = "fixed-version: Fixed from version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17806] = "fixed-version: Fixed from version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17807] = "fixed-version: Fixed from version 4.15rc3"
+
+CVE_STATUS[CVE-2017-17852] = "fixed-version: Fixed from version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17853] = "fixed-version: Fixed from version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17854] = "fixed-version: Fixed from version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17855] = "fixed-version: Fixed from version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17856] = "fixed-version: Fixed from version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17857] = "fixed-version: Fixed from version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17862] = "fixed-version: Fixed from version 4.15rc1"
+
+CVE_STATUS[CVE-2017-17863] = "fixed-version: Fixed from version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17864] = "fixed-version: Fixed from version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17975] = "fixed-version: Fixed from version 4.17rc1"
+
+CVE_STATUS[CVE-2017-18017] = "fixed-version: Fixed from version 4.11rc7"
+
+CVE_STATUS[CVE-2017-18075] = "fixed-version: Fixed from version 4.15rc7"
+
+CVE_STATUS[CVE-2017-18079] = "fixed-version: Fixed from version 4.13rc1"
+
+# CVE-2017-18169 has no known resolution
+
+CVE_STATUS[CVE-2017-18174] = "fixed-version: Fixed from version 4.7rc1"
+
+CVE_STATUS[CVE-2017-18193] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2017-18200] = "fixed-version: Fixed from version 4.14rc5"
+
+CVE_STATUS[CVE-2017-18202] = "fixed-version: Fixed from version 4.15rc2"
+
+CVE_STATUS[CVE-2017-18203] = "fixed-version: Fixed from version 4.15rc1"
+
+CVE_STATUS[CVE-2017-18204] = "fixed-version: Fixed from version 4.15rc1"
+
+CVE_STATUS[CVE-2017-18208] = "fixed-version: Fixed from version 4.15rc2"
+
+CVE_STATUS[CVE-2017-18216] = "fixed-version: Fixed from version 4.15rc1"
+
+CVE_STATUS[CVE-2017-18218] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2017-18221] = "fixed-version: Fixed from version 4.12rc4"
+
+CVE_STATUS[CVE-2017-18222] = "fixed-version: Fixed from version 4.12rc1"
+
+CVE_STATUS[CVE-2017-18224] = "fixed-version: Fixed from version 4.15rc1"
+
+CVE_STATUS[CVE-2017-18232] = "fixed-version: Fixed from version 4.16rc1"
+
+CVE_STATUS[CVE-2017-18241] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2017-18249] = "fixed-version: Fixed from version 4.12rc1"
+
+CVE_STATUS[CVE-2017-18255] = "fixed-version: Fixed from version 4.11rc1"
+
+CVE_STATUS[CVE-2017-18257] = "fixed-version: Fixed from version 4.11rc1"
+
+CVE_STATUS[CVE-2017-18261] = "fixed-version: Fixed from version 4.13rc6"
+
+CVE_STATUS[CVE-2017-18270] = "fixed-version: Fixed from version 4.14rc3"
+
+CVE_STATUS[CVE-2017-18344] = "fixed-version: Fixed from version 4.15rc4"
+
+CVE_STATUS[CVE-2017-18360] = "fixed-version: Fixed from version 4.12rc2"
+
+CVE_STATUS[CVE-2017-18379] = "fixed-version: Fixed from version 4.14rc3"
+
+CVE_STATUS[CVE-2017-18509] = "fixed-version: Fixed from version 4.11rc1"
+
+CVE_STATUS[CVE-2017-18549] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2017-18550] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2017-18551] = "fixed-version: Fixed from version 4.15rc9"
+
+CVE_STATUS[CVE-2017-18552] = "fixed-version: Fixed from version 4.11rc1"
+
+CVE_STATUS[CVE-2017-18595] = "fixed-version: Fixed from version 4.15rc6"
+
+CVE_STATUS[CVE-2017-2583] = "fixed-version: Fixed from version 4.10rc4"
+
+CVE_STATUS[CVE-2017-2584] = "fixed-version: Fixed from version 4.10rc4"
+
+CVE_STATUS[CVE-2017-2596] = "fixed-version: Fixed from version 4.11rc1"
+
+CVE_STATUS[CVE-2017-2618] = "fixed-version: Fixed from version 4.10rc8"
+
+CVE_STATUS[CVE-2017-2634] = "fixed-version: Fixed from version 2.6.25rc1"
+
+CVE_STATUS[CVE-2017-2636] = "fixed-version: Fixed from version 4.11rc2"
+
+CVE_STATUS[CVE-2017-2647] = "fixed-version: Fixed from version 3.18rc1"
+
+CVE_STATUS[CVE-2017-2671] = "fixed-version: Fixed from version 4.11rc6"
+
+CVE_STATUS[CVE-2017-5123] = "fixed-version: Fixed from version 4.14rc5"
+
+CVE_STATUS[CVE-2017-5546] = "fixed-version: Fixed from version 4.10rc4"
+
+CVE_STATUS[CVE-2017-5547] = "fixed-version: Fixed from version 4.10rc5"
+
+CVE_STATUS[CVE-2017-5548] = "fixed-version: Fixed from version 4.10rc5"
+
+CVE_STATUS[CVE-2017-5549] = "fixed-version: Fixed from version 4.10rc4"
+
+CVE_STATUS[CVE-2017-5550] = "fixed-version: Fixed from version 4.10rc4"
+
+CVE_STATUS[CVE-2017-5551] = "fixed-version: Fixed from version 4.10rc4"
+
+CVE_STATUS[CVE-2017-5576] = "fixed-version: Fixed from version 4.10rc6"
+
+CVE_STATUS[CVE-2017-5577] = "fixed-version: Fixed from version 4.10rc6"
+
+CVE_STATUS[CVE-2017-5669] = "fixed-version: Fixed from version 4.11rc1"
+
+CVE_STATUS[CVE-2017-5715] = "fixed-version: Fixed from version 4.15rc8"
+
+CVE_STATUS[CVE-2017-5753] = "fixed-version: Fixed from version 4.15rc8"
+
+CVE_STATUS[CVE-2017-5754] = "fixed-version: Fixed from version 4.16rc1"
+
+CVE_STATUS[CVE-2017-5897] = "fixed-version: Fixed from version 4.10rc8"
+
+CVE_STATUS[CVE-2017-5967] = "fixed-version: Fixed from version 4.11rc1"
+
+CVE_STATUS[CVE-2017-5970] = "fixed-version: Fixed from version 4.10rc8"
+
+CVE_STATUS[CVE-2017-5972] = "fixed-version: Fixed from version 4.4rc1"
+
+CVE_STATUS[CVE-2017-5986] = "fixed-version: Fixed from version 4.10rc8"
+
+CVE_STATUS[CVE-2017-6001] = "fixed-version: Fixed from version 4.10rc4"
+
+CVE_STATUS[CVE-2017-6074] = "fixed-version: Fixed from version 4.10"
+
+CVE_STATUS[CVE-2017-6214] = "fixed-version: Fixed from version 4.10rc8"
+
+CVE_STATUS[CVE-2017-6345] = "fixed-version: Fixed from version 4.10"
+
+CVE_STATUS[CVE-2017-6346] = "fixed-version: Fixed from version 4.10"
+
+CVE_STATUS[CVE-2017-6347] = "fixed-version: Fixed from version 4.11rc1"
+
+CVE_STATUS[CVE-2017-6348] = "fixed-version: Fixed from version 4.10"
+
+CVE_STATUS[CVE-2017-6353] = "fixed-version: Fixed from version 4.11rc1"
+
+CVE_STATUS[CVE-2017-6874] = "fixed-version: Fixed from version 4.11rc2"
+
+CVE_STATUS[CVE-2017-6951] = "fixed-version: Fixed from version 3.18rc1"
+
+CVE_STATUS[CVE-2017-7184] = "fixed-version: Fixed from version 4.11rc5"
+
+CVE_STATUS[CVE-2017-7187] = "fixed-version: Fixed from version 4.11rc5"
+
+CVE_STATUS[CVE-2017-7261] = "fixed-version: Fixed from version 4.11rc6"
+
+CVE_STATUS[CVE-2017-7273] = "fixed-version: Fixed from version 4.10rc4"
+
+CVE_STATUS[CVE-2017-7277] = "fixed-version: Fixed from version 4.11rc4"
+
+CVE_STATUS[CVE-2017-7294] = "fixed-version: Fixed from version 4.11rc6"
+
+CVE_STATUS[CVE-2017-7308] = "fixed-version: Fixed from version 4.11rc6"
+
+CVE_STATUS[CVE-2017-7346] = "fixed-version: Fixed from version 4.12rc5"
+
+# CVE-2017-7369 has no known resolution
+
+CVE_STATUS[CVE-2017-7374] = "fixed-version: Fixed from version 4.11rc4"
+
+CVE_STATUS[CVE-2017-7472] = "fixed-version: Fixed from version 4.11rc8"
+
+CVE_STATUS[CVE-2017-7477] = "fixed-version: Fixed from version 4.11"
+
+CVE_STATUS[CVE-2017-7482] = "fixed-version: Fixed from version 4.12rc7"
+
+CVE_STATUS[CVE-2017-7487] = "fixed-version: Fixed from version 4.12rc1"
+
+CVE_STATUS[CVE-2017-7495] = "fixed-version: Fixed from version 4.7rc1"
+
+CVE_STATUS[CVE-2017-7518] = "fixed-version: Fixed from version 4.12rc7"
+
+CVE_STATUS[CVE-2017-7533] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2017-7541] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2017-7542] = "fixed-version: Fixed from version 4.13rc2"
+
+CVE_STATUS[CVE-2017-7558] = "fixed-version: Fixed from version 4.13"
+
+CVE_STATUS[CVE-2017-7616] = "fixed-version: Fixed from version 4.11rc6"
+
+CVE_STATUS[CVE-2017-7618] = "fixed-version: Fixed from version 4.11rc8"
+
+CVE_STATUS[CVE-2017-7645] = "fixed-version: Fixed from version 4.11"
+
+CVE_STATUS[CVE-2017-7889] = "fixed-version: Fixed from version 4.11rc7"
+
+CVE_STATUS[CVE-2017-7895] = "fixed-version: Fixed from version 4.11"
+
+CVE_STATUS[CVE-2017-7979] = "fixed-version: Fixed from version 4.11rc8"
+
+CVE_STATUS[CVE-2017-8061] = "fixed-version: Fixed from version 4.11rc4"
+
+CVE_STATUS[CVE-2017-8062] = "fixed-version: Fixed from version 4.11rc2"
+
+CVE_STATUS[CVE-2017-8063] = "fixed-version: Fixed from version 4.11rc1"
+
+CVE_STATUS[CVE-2017-8064] = "fixed-version: Fixed from version 4.11rc1"
+
+CVE_STATUS[CVE-2017-8065] = "fixed-version: Fixed from version 4.11rc1"
+
+CVE_STATUS[CVE-2017-8066] = "fixed-version: Fixed from version 4.11rc1"
+
+CVE_STATUS[CVE-2017-8067] = "fixed-version: Fixed from version 4.11rc1"
+
+CVE_STATUS[CVE-2017-8068] = "fixed-version: Fixed from version 4.10rc8"
+
+CVE_STATUS[CVE-2017-8069] = "fixed-version: Fixed from version 4.10rc8"
+
+CVE_STATUS[CVE-2017-8070] = "fixed-version: Fixed from version 4.10rc8"
+
+CVE_STATUS[CVE-2017-8071] = "fixed-version: Fixed from version 4.10rc7"
+
+CVE_STATUS[CVE-2017-8072] = "fixed-version: Fixed from version 4.10rc7"
+
+CVE_STATUS[CVE-2017-8106] = "fixed-version: Fixed from version 3.16rc1"
+
+CVE_STATUS[CVE-2017-8240] = "fixed-version: Fixed from version 3.19rc6"
+
+# CVE-2017-8242 has no known resolution
+
+# CVE-2017-8244 has no known resolution
+
+# CVE-2017-8245 has no known resolution
+
+# CVE-2017-8246 has no known resolution
+
+CVE_STATUS[CVE-2017-8797] = "fixed-version: Fixed from version 4.12rc1"
+
+CVE_STATUS[CVE-2017-8824] = "fixed-version: Fixed from version 4.15rc3"
+
+CVE_STATUS[CVE-2017-8831] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2017-8890] = "fixed-version: Fixed from version 4.12rc1"
+
+CVE_STATUS[CVE-2017-8924] = "fixed-version: Fixed from version 4.11rc2"
+
+CVE_STATUS[CVE-2017-8925] = "fixed-version: Fixed from version 4.11rc2"
+
+CVE_STATUS[CVE-2017-9059] = "fixed-version: Fixed from version 4.12rc1"
+
+CVE_STATUS[CVE-2017-9074] = "fixed-version: Fixed from version 4.12rc2"
+
+CVE_STATUS[CVE-2017-9075] = "fixed-version: Fixed from version 4.12rc2"
+
+CVE_STATUS[CVE-2017-9076] = "fixed-version: Fixed from version 4.12rc2"
+
+CVE_STATUS[CVE-2017-9077] = "fixed-version: Fixed from version 4.12rc2"
+
+CVE_STATUS[CVE-2017-9150] = "fixed-version: Fixed from version 4.12rc1"
+
+CVE_STATUS[CVE-2017-9211] = "fixed-version: Fixed from version 4.12rc3"
+
+CVE_STATUS[CVE-2017-9242] = "fixed-version: Fixed from version 4.12rc3"
+
+CVE_STATUS[CVE-2017-9605] = "fixed-version: Fixed from version 4.12rc5"
+
+CVE_STATUS[CVE-2017-9725] = "fixed-version: Fixed from version 4.3rc7"
+
+CVE_STATUS[CVE-2017-9984] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2017-9985] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2017-9986] = "fixed-version: Fixed from version 4.15rc1"
+
+CVE_STATUS[CVE-2018-1000004] = "fixed-version: Fixed from version 4.15rc9"
+
+CVE_STATUS[CVE-2018-1000026] = "fixed-version: Fixed from version 4.16rc1"
+
+CVE_STATUS[CVE-2018-1000028] = "fixed-version: Fixed from version 4.15"
+
+CVE_STATUS[CVE-2018-1000199] = "fixed-version: Fixed from version 4.16"
+
+CVE_STATUS[CVE-2018-1000200] = "fixed-version: Fixed from version 4.17rc5"
+
+CVE_STATUS[CVE-2018-1000204] = "fixed-version: Fixed from version 4.17rc7"
+
+CVE_STATUS[CVE-2018-10021] = "fixed-version: Fixed from version 4.16rc7"
+
+CVE_STATUS[CVE-2018-10074] = "fixed-version: Fixed from version 4.16rc7"
+
+CVE_STATUS[CVE-2018-10087] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2018-10124] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2018-10322] = "fixed-version: Fixed from version 4.17rc4"
+
+CVE_STATUS[CVE-2018-10323] = "fixed-version: Fixed from version 4.17rc4"
+
+CVE_STATUS[CVE-2018-1065] = "fixed-version: Fixed from version 4.16rc3"
+
+CVE_STATUS[CVE-2018-1066] = "fixed-version: Fixed from version 4.11rc1"
+
+CVE_STATUS[CVE-2018-10675] = "fixed-version: Fixed from version 4.13rc6"
+
+CVE_STATUS[CVE-2018-1068] = "fixed-version: Fixed from version 4.16rc5"
+
+CVE_STATUS[CVE-2018-10840] = "fixed-version: Fixed from version 4.18rc1"
+
+CVE_STATUS[CVE-2018-10853] = "fixed-version: Fixed from version 4.18rc1"
+
+CVE_STATUS[CVE-2018-1087] = "fixed-version: Fixed from version 4.16rc7"
+
+# CVE-2018-10872 has no known resolution
+
+CVE_STATUS[CVE-2018-10876] = "fixed-version: Fixed from version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10877] = "fixed-version: Fixed from version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10878] = "fixed-version: Fixed from version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10879] = "fixed-version: Fixed from version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10880] = "fixed-version: Fixed from version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10881] = "fixed-version: Fixed from version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10882] = "fixed-version: Fixed from version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10883] = "fixed-version: Fixed from version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10901] = "fixed-version: Fixed from version 2.6.36rc1"
+
+CVE_STATUS[CVE-2018-10902] = "fixed-version: Fixed from version 4.18rc6"
+
+CVE_STATUS[CVE-2018-1091] = "fixed-version: Fixed from version 4.14rc2"
+
+CVE_STATUS[CVE-2018-1092] = "fixed-version: Fixed from version 4.17rc1"
+
+CVE_STATUS[CVE-2018-1093] = "fixed-version: Fixed from version 4.17rc1"
+
+CVE_STATUS[CVE-2018-10938] = "fixed-version: Fixed from version 4.13rc5"
+
+CVE_STATUS[CVE-2018-1094] = "fixed-version: Fixed from version 4.17rc1"
+
+CVE_STATUS[CVE-2018-10940] = "fixed-version: Fixed from version 4.17rc3"
+
+CVE_STATUS[CVE-2018-1095] = "fixed-version: Fixed from version 4.17rc1"
+
+CVE_STATUS[CVE-2018-1108] = "fixed-version: Fixed from version 4.17rc2"
+
+CVE_STATUS[CVE-2018-1118] = "fixed-version: Fixed from version 4.18rc1"
+
+CVE_STATUS[CVE-2018-1120] = "fixed-version: Fixed from version 4.17rc6"
+
+# CVE-2018-1121 has no known resolution
+
+CVE_STATUS[CVE-2018-11232] = "fixed-version: Fixed from version 4.11rc1"
+
+CVE_STATUS[CVE-2018-1128] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-1129] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-1130] = "fixed-version: Fixed from version 4.16rc7"
+
+CVE_STATUS[CVE-2018-11412] = "fixed-version: Fixed from version 4.18rc1"
+
+CVE_STATUS[CVE-2018-11506] = "fixed-version: Fixed from version 4.17rc7"
+
+CVE_STATUS[CVE-2018-11508] = "fixed-version: Fixed from version 4.17rc5"
+
+# CVE-2018-11987 has no known resolution
+
+CVE_STATUS[CVE-2018-12126] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2018-12127] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2018-12130] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2018-12207] = "fixed-version: Fixed from version 5.4rc2"
+
+CVE_STATUS[CVE-2018-12232] = "fixed-version: Fixed from version 4.18rc1"
+
+CVE_STATUS[CVE-2018-12233] = "fixed-version: Fixed from version 4.18rc2"
+
+CVE_STATUS[CVE-2018-12633] = "fixed-version: Fixed from version 4.18rc1"
+
+CVE_STATUS[CVE-2018-12714] = "fixed-version: Fixed from version 4.18rc2"
+
+CVE_STATUS[CVE-2018-12896] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-12904] = "fixed-version: Fixed from version 4.18rc1"
+
+# CVE-2018-12928 has no known resolution
+
+# CVE-2018-12929 has no known resolution
+
+# CVE-2018-12930 has no known resolution
+
+# CVE-2018-12931 has no known resolution
+
+CVE_STATUS[CVE-2018-13053] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-13093] = "fixed-version: Fixed from version 4.18rc1"
+
+CVE_STATUS[CVE-2018-13094] = "fixed-version: Fixed from version 4.18rc1"
+
+CVE_STATUS[CVE-2018-13095] = "fixed-version: Fixed from version 4.18rc3"
+
+CVE_STATUS[CVE-2018-13096] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-13097] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-13098] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-13099] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-13100] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-13405] = "fixed-version: Fixed from version 4.18rc4"
+
+CVE_STATUS[CVE-2018-13406] = "fixed-version: Fixed from version 4.18rc1"
+
+CVE_STATUS[CVE-2018-14609] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14610] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14611] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14612] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14613] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14614] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14615] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14616] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14617] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14619] = "fixed-version: Fixed from version 4.15rc4"
+
+CVE_STATUS[CVE-2018-14625] = "fixed-version: Fixed from version 4.20rc6"
+
+CVE_STATUS[CVE-2018-14633] = "fixed-version: Fixed from version 4.19rc6"
+
+CVE_STATUS[CVE-2018-14634] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2018-14641] = "fixed-version: Fixed from version 4.19rc4"
+
+CVE_STATUS[CVE-2018-14646] = "fixed-version: Fixed from version 4.15rc8"
+
+CVE_STATUS[CVE-2018-14656] = "fixed-version: Fixed from version 4.19rc2"
+
+CVE_STATUS[CVE-2018-14678] = "fixed-version: Fixed from version 4.18rc8"
+
+CVE_STATUS[CVE-2018-14734] = "fixed-version: Fixed from version 4.18rc1"
+
+CVE_STATUS[CVE-2018-15471] = "fixed-version: Fixed from version 4.19rc7"
+
+CVE_STATUS[CVE-2018-15572] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-15594] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-16276] = "fixed-version: Fixed from version 4.18rc5"
+
+CVE_STATUS[CVE-2018-16597] = "fixed-version: Fixed from version 4.8rc1"
+
+CVE_STATUS[CVE-2018-16658] = "fixed-version: Fixed from version 4.19rc2"
+
+CVE_STATUS[CVE-2018-16862] = "fixed-version: Fixed from version 4.20rc5"
+
+CVE_STATUS[CVE-2018-16871] = "fixed-version: Fixed from version 4.20rc3"
+
+CVE_STATUS[CVE-2018-16880] = "fixed-version: Fixed from version 5.0rc5"
+
+CVE_STATUS[CVE-2018-16882] = "fixed-version: Fixed from version 4.20"
+
+CVE_STATUS[CVE-2018-16884] = "fixed-version: Fixed from version 5.0rc1"
+
+# CVE-2018-16885 has no known resolution
+
+CVE_STATUS[CVE-2018-17182] = "fixed-version: Fixed from version 4.19rc4"
+
+CVE_STATUS[CVE-2018-17972] = "fixed-version: Fixed from version 4.19rc7"
+
+# CVE-2018-17977 has no known resolution
+
+CVE_STATUS[CVE-2018-18021] = "fixed-version: Fixed from version 4.19rc7"
+
+CVE_STATUS[CVE-2018-18281] = "fixed-version: Fixed from version 4.19"
+
+CVE_STATUS[CVE-2018-18386] = "fixed-version: Fixed from version 4.15rc6"
+
+CVE_STATUS[CVE-2018-18397] = "fixed-version: Fixed from version 4.20rc5"
+
+CVE_STATUS[CVE-2018-18445] = "fixed-version: Fixed from version 4.19rc7"
+
+CVE_STATUS[CVE-2018-18559] = "fixed-version: Fixed from version 4.15rc2"
+
+# CVE-2018-18653 has no known resolution
+
+CVE_STATUS[CVE-2018-18690] = "fixed-version: Fixed from version 4.17rc4"
+
+CVE_STATUS[CVE-2018-18710] = "fixed-version: Fixed from version 4.20rc1"
+
+CVE_STATUS[CVE-2018-18955] = "fixed-version: Fixed from version 4.20rc2"
+
+CVE_STATUS[CVE-2018-19406] = "fixed-version: Fixed from version 4.20rc5"
+
+CVE_STATUS[CVE-2018-19407] = "fixed-version: Fixed from version 4.20rc5"
+
+CVE_STATUS[CVE-2018-19824] = "fixed-version: Fixed from version 4.20rc6"
+
+CVE_STATUS[CVE-2018-19854] = "fixed-version: Fixed from version 4.20rc3"
+
+CVE_STATUS[CVE-2018-19985] = "fixed-version: Fixed from version 4.20"
+
+CVE_STATUS[CVE-2018-20169] = "fixed-version: Fixed from version 4.20rc6"
+
+CVE_STATUS[CVE-2018-20449] = "fixed-version: Fixed from version 4.15rc2"
+
+CVE_STATUS[CVE-2018-20509] = "fixed-version: Fixed from version 4.14rc1"
+
+CVE_STATUS[CVE-2018-20510] = "fixed-version: Fixed from version 4.16rc3"
+
+CVE_STATUS[CVE-2018-20511] = "fixed-version: Fixed from version 4.19rc5"
+
+CVE_STATUS[CVE-2018-20669] = "fixed-version: Fixed from version 5.0rc1"
+
+CVE_STATUS[CVE-2018-20784] = "fixed-version: Fixed from version 5.0rc1"
+
+CVE_STATUS[CVE-2018-20836] = "fixed-version: Fixed from version 4.20rc1"
+
+CVE_STATUS[CVE-2018-20854] = "fixed-version: Fixed from version 4.20rc1"
+
+CVE_STATUS[CVE-2018-20855] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-20856] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-20961] = "fixed-version: Fixed from version 4.17rc1"
+
+CVE_STATUS[CVE-2018-20976] = "fixed-version: Fixed from version 4.18rc1"
+
+CVE_STATUS[CVE-2018-21008] = "fixed-version: Fixed from version 4.18rc1"
+
+CVE_STATUS[CVE-2018-25015] = "fixed-version: Fixed from version 4.15rc9"
+
+CVE_STATUS[CVE-2018-25020] = "fixed-version: Fixed from version 4.17rc7"
+
+# CVE-2018-3574 has no known resolution
+
+CVE_STATUS[CVE-2018-3620] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-3639] = "fixed-version: Fixed from version 4.17rc7"
+
+CVE_STATUS[CVE-2018-3646] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-3665] = "fixed-version: Fixed from version 3.7rc1"
+
+CVE_STATUS[CVE-2018-3693] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-5332] = "fixed-version: Fixed from version 4.15rc8"
+
+CVE_STATUS[CVE-2018-5333] = "fixed-version: Fixed from version 4.15rc8"
+
+CVE_STATUS[CVE-2018-5344] = "fixed-version: Fixed from version 4.15rc8"
+
+CVE_STATUS[CVE-2018-5390] = "fixed-version: Fixed from version 4.18rc7"
+
+CVE_STATUS[CVE-2018-5391] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-5703] = "fixed-version: Fixed from version 4.16rc5"
+
+CVE_STATUS[CVE-2018-5750] = "fixed-version: Fixed from version 4.16rc1"
+
+CVE_STATUS[CVE-2018-5803] = "fixed-version: Fixed from version 4.16rc1"
+
+CVE_STATUS[CVE-2018-5814] = "fixed-version: Fixed from version 4.17rc6"
+
+CVE_STATUS[CVE-2018-5848] = "fixed-version: Fixed from version 4.16rc1"
+
+# Skipping CVE-2018-5856, no affected_versions
+
+CVE_STATUS[CVE-2018-5873] = "fixed-version: Fixed from version 4.11rc8"
+
+CVE_STATUS[CVE-2018-5953] = "fixed-version: Fixed from version 4.15rc2"
+
+CVE_STATUS[CVE-2018-5995] = "fixed-version: Fixed from version 4.15rc2"
+
+CVE_STATUS[CVE-2018-6412] = "fixed-version: Fixed from version 4.16rc5"
+
+CVE_STATUS[CVE-2018-6554] = "fixed-version: Fixed from version 4.17rc1"
+
+CVE_STATUS[CVE-2018-6555] = "fixed-version: Fixed from version 4.17rc1"
+
+# CVE-2018-6559 has no known resolution
+
+CVE_STATUS[CVE-2018-6927] = "fixed-version: Fixed from version 4.15rc9"
+
+CVE_STATUS[CVE-2018-7191] = "fixed-version: Fixed from version 4.14rc6"
+
+CVE_STATUS[CVE-2018-7273] = "fixed-version: Fixed from version 4.15rc2"
+
+CVE_STATUS[CVE-2018-7480] = "fixed-version: Fixed from version 4.11rc1"
+
+CVE_STATUS[CVE-2018-7492] = "fixed-version: Fixed from version 4.15rc3"
+
+CVE_STATUS[CVE-2018-7566] = "fixed-version: Fixed from version 4.16rc2"
+
+CVE_STATUS[CVE-2018-7740] = "fixed-version: Fixed from version 4.16rc7"
+
+CVE_STATUS[CVE-2018-7754] = "fixed-version: Fixed from version 4.15rc2"
+
+CVE_STATUS[CVE-2018-7755] = "fixed-version: Fixed from version 4.19rc5"
+
+CVE_STATUS[CVE-2018-7757] = "fixed-version: Fixed from version 4.16rc1"
+
+CVE_STATUS[CVE-2018-7995] = "fixed-version: Fixed from version 4.16rc5"
+
+CVE_STATUS[CVE-2018-8043] = "fixed-version: Fixed from version 4.16rc1"
+
+CVE_STATUS[CVE-2018-8087] = "fixed-version: Fixed from version 4.16rc1"
+
+CVE_STATUS[CVE-2018-8781] = "fixed-version: Fixed from version 4.16rc7"
+
+CVE_STATUS[CVE-2018-8822] = "fixed-version: Fixed from version 4.16rc7"
+
+CVE_STATUS[CVE-2018-8897] = "fixed-version: Fixed from version 4.16rc7"
+
+CVE_STATUS[CVE-2018-9363] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2018-9385] = "fixed-version: Fixed from version 4.17rc3"
+
+CVE_STATUS[CVE-2018-9415] = "fixed-version: Fixed from version 4.17rc3"
+
+CVE_STATUS[CVE-2018-9422] = "fixed-version: Fixed from version 4.6rc1"
+
+CVE_STATUS[CVE-2018-9465] = "fixed-version: Fixed from version 4.15rc6"
+
+CVE_STATUS[CVE-2018-9516] = "fixed-version: Fixed from version 4.18rc5"
+
+CVE_STATUS[CVE-2018-9517] = "fixed-version: Fixed from version 4.14rc1"
+
+CVE_STATUS[CVE-2018-9518] = "fixed-version: Fixed from version 4.16rc3"
+
+CVE_STATUS[CVE-2018-9568] = "fixed-version: Fixed from version 4.14rc4"
+
+CVE_STATUS[CVE-2019-0136] = "fixed-version: Fixed from version 5.2rc6"
+
+CVE_STATUS[CVE-2019-0145] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2019-0146] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2019-0147] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2019-0148] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2019-0149] = "fixed-version: Fixed from version 5.3rc1"
+
+CVE_STATUS[CVE-2019-0154] = "fixed-version: Fixed from version 5.4rc8"
+
+CVE_STATUS[CVE-2019-0155] = "fixed-version: Fixed from version 5.4rc8"
+
+CVE_STATUS[CVE-2019-10124] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-10125] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-10126] = "fixed-version: Fixed from version 5.2rc6"
+
+# CVE-2019-10140 has no known resolution
+
+CVE_STATUS[CVE-2019-10142] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2019-10207] = "fixed-version: Fixed from version 5.3rc3"
+
+CVE_STATUS[CVE-2019-10220] = "fixed-version: Fixed from version 5.4rc2"
+
+CVE_STATUS[CVE-2019-10638] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2019-10639] = "fixed-version: Fixed from version 5.1rc4"
+
+CVE_STATUS[CVE-2019-11085] = "fixed-version: Fixed from version 5.0rc3"
+
+CVE_STATUS[CVE-2019-11091] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2019-11135] = "fixed-version: Fixed from version 5.4rc8"
+
+CVE_STATUS[CVE-2019-11190] = "fixed-version: Fixed from version 4.8rc5"
+
+CVE_STATUS[CVE-2019-11191] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-1125] = "fixed-version: Fixed from version 5.3rc4"
+
+CVE_STATUS[CVE-2019-11477] = "fixed-version: Fixed from version 5.2rc6"
+
+CVE_STATUS[CVE-2019-11478] = "fixed-version: Fixed from version 5.2rc6"
+
+CVE_STATUS[CVE-2019-11479] = "fixed-version: Fixed from version 5.2rc6"
+
+CVE_STATUS[CVE-2019-11486] = "fixed-version: Fixed from version 5.1rc4"
+
+CVE_STATUS[CVE-2019-11487] = "fixed-version: Fixed from version 5.1rc5"
+
+CVE_STATUS[CVE-2019-11599] = "fixed-version: Fixed from version 5.1rc6"
+
+CVE_STATUS[CVE-2019-11683] = "fixed-version: Fixed from version 5.1"
+
+CVE_STATUS[CVE-2019-11810] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-11811] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-11815] = "fixed-version: Fixed from version 5.1rc4"
+
+CVE_STATUS[CVE-2019-11833] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2019-11884] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2019-12378] = "fixed-version: Fixed from version 5.2rc3"
+
+CVE_STATUS[CVE-2019-12379] = "fixed-version: Fixed from version 5.3rc1"
+
+CVE_STATUS[CVE-2019-12380] = "fixed-version: Fixed from version 5.2rc3"
+
+CVE_STATUS[CVE-2019-12381] = "fixed-version: Fixed from version 5.2rc3"
+
+CVE_STATUS[CVE-2019-12382] = "fixed-version: Fixed from version 5.3rc1"
+
+CVE_STATUS[CVE-2019-12454] = "fixed-version: Fixed from version 5.3rc1"
+
+CVE_STATUS[CVE-2019-12455] = "fixed-version: Fixed from version 5.3rc1"
+
+# CVE-2019-12456 has no known resolution
+
+CVE_STATUS[CVE-2019-12614] = "fixed-version: Fixed from version 5.3rc1"
+
+CVE_STATUS[CVE-2019-12615] = "fixed-version: Fixed from version 5.2rc4"
+
+CVE_STATUS[CVE-2019-12817] = "fixed-version: Fixed from version 5.2rc7"
+
+CVE_STATUS[CVE-2019-12818] = "fixed-version: Fixed from version 5.0"
+
+CVE_STATUS[CVE-2019-12819] = "fixed-version: Fixed from version 5.0rc8"
+
+CVE_STATUS[CVE-2019-12881] = "fixed-version: Fixed from version 4.18rc1"
+
+CVE_STATUS[CVE-2019-12984] = "fixed-version: Fixed from version 5.2rc6"
+
+CVE_STATUS[CVE-2019-13233] = "fixed-version: Fixed from version 5.2rc4"
+
+CVE_STATUS[CVE-2019-13272] = "fixed-version: Fixed from version 5.2"
+
+CVE_STATUS[CVE-2019-13631] = "fixed-version: Fixed from version 5.3rc1"
+
+CVE_STATUS[CVE-2019-13648] = "fixed-version: Fixed from version 5.3rc2"
+
+CVE_STATUS[CVE-2019-14283] = "fixed-version: Fixed from version 5.3rc1"
+
+CVE_STATUS[CVE-2019-14284] = "fixed-version: Fixed from version 5.3rc1"
+
+CVE_STATUS[CVE-2019-14615] = "fixed-version: Fixed from version 5.5rc7"
+
+CVE_STATUS[CVE-2019-14763] = "fixed-version: Fixed from version 4.17rc1"
+
+CVE_STATUS[CVE-2019-14814] = "fixed-version: Fixed from version 5.3"
+
+CVE_STATUS[CVE-2019-14815] = "fixed-version: Fixed from version 5.3"
+
+CVE_STATUS[CVE-2019-14816] = "fixed-version: Fixed from version 5.3"
+
+CVE_STATUS[CVE-2019-14821] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-14835] = "fixed-version: Fixed from version 5.3"
+
+CVE_STATUS[CVE-2019-14895] = "fixed-version: Fixed from version 5.5rc3"
+
+CVE_STATUS[CVE-2019-14896] = "fixed-version: Fixed from version 5.5"
+
+CVE_STATUS[CVE-2019-14897] = "fixed-version: Fixed from version 5.5"
+
+# CVE-2019-14898 has no known resolution
+
+CVE_STATUS[CVE-2019-14901] = "fixed-version: Fixed from version 5.5rc3"
+
+CVE_STATUS[CVE-2019-15030] = "fixed-version: Fixed from version 5.3rc8"
+
+CVE_STATUS[CVE-2019-15031] = "fixed-version: Fixed from version 5.3rc8"
+
+CVE_STATUS[CVE-2019-15090] = "fixed-version: Fixed from version 5.2rc2"
+
+CVE_STATUS[CVE-2019-15098] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-15099] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-15117] = "fixed-version: Fixed from version 5.3rc5"
+
+CVE_STATUS[CVE-2019-15118] = "fixed-version: Fixed from version 5.3rc5"
+
+CVE_STATUS[CVE-2019-15211] = "fixed-version: Fixed from version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15212] = "fixed-version: Fixed from version 5.2rc3"
+
+CVE_STATUS[CVE-2019-15213] = "fixed-version: Fixed from version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15214] = "fixed-version: Fixed from version 5.1rc6"
+
+CVE_STATUS[CVE-2019-15215] = "fixed-version: Fixed from version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15216] = "fixed-version: Fixed from version 5.1"
+
+CVE_STATUS[CVE-2019-15217] = "fixed-version: Fixed from version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15218] = "fixed-version: Fixed from version 5.2rc3"
+
+CVE_STATUS[CVE-2019-15219] = "fixed-version: Fixed from version 5.2rc3"
+
+CVE_STATUS[CVE-2019-15220] = "fixed-version: Fixed from version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15221] = "fixed-version: Fixed from version 5.2"
+
+CVE_STATUS[CVE-2019-15222] = "fixed-version: Fixed from version 5.3rc3"
+
+CVE_STATUS[CVE-2019-15223] = "fixed-version: Fixed from version 5.2rc3"
+
+# CVE-2019-15239 has no known resolution
+
+# CVE-2019-15290 has no known resolution
+
+CVE_STATUS[CVE-2019-15291] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-15292] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-15504] = "fixed-version: Fixed from version 5.3"
+
+CVE_STATUS[CVE-2019-15505] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-15538] = "fixed-version: Fixed from version 5.3rc6"
+
+CVE_STATUS[CVE-2019-15666] = "fixed-version: Fixed from version 5.1"
+
+# CVE-2019-15791 has no known resolution
+
+# CVE-2019-15792 has no known resolution
+
+# CVE-2019-15793 has no known resolution
+
+CVE_STATUS[CVE-2019-15794] = "fixed-version: Fixed from version 5.12"
+
+CVE_STATUS[CVE-2019-15807] = "fixed-version: Fixed from version 5.2rc3"
+
+# CVE-2019-15902 has no known resolution
+
+CVE_STATUS[CVE-2019-15916] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-15917] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-15918] = "fixed-version: Fixed from version 5.1rc6"
+
+CVE_STATUS[CVE-2019-15919] = "fixed-version: Fixed from version 5.1rc6"
+
+CVE_STATUS[CVE-2019-15920] = "fixed-version: Fixed from version 5.1rc6"
+
+CVE_STATUS[CVE-2019-15921] = "fixed-version: Fixed from version 5.1rc3"
+
+CVE_STATUS[CVE-2019-15922] = "fixed-version: Fixed from version 5.1rc4"
+
+CVE_STATUS[CVE-2019-15923] = "fixed-version: Fixed from version 5.1rc4"
+
+CVE_STATUS[CVE-2019-15924] = "fixed-version: Fixed from version 5.1rc4"
+
+CVE_STATUS[CVE-2019-15925] = "fixed-version: Fixed from version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15926] = "fixed-version: Fixed from version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15927] = "fixed-version: Fixed from version 5.0rc2"
+
+# CVE-2019-16089 has no known resolution
+
+CVE_STATUS[CVE-2019-16229] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-16230] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-16231] = "fixed-version: Fixed from version 5.4rc6"
+
+CVE_STATUS[CVE-2019-16232] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-16233] = "fixed-version: Fixed from version 5.4rc5"
+
+CVE_STATUS[CVE-2019-16234] = "fixed-version: Fixed from version 5.4rc4"
+
+CVE_STATUS[CVE-2019-16413] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-16714] = "fixed-version: Fixed from version 5.3rc7"
+
+CVE_STATUS[CVE-2019-16746] = "fixed-version: Fixed from version 5.4rc2"
+
+CVE_STATUS[CVE-2019-16921] = "fixed-version: Fixed from version 4.17rc1"
+
+CVE_STATUS[CVE-2019-16994] = "fixed-version: Fixed from version 5.0"
+
+CVE_STATUS[CVE-2019-16995] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-17052] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-17053] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-17054] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-17055] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-17056] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-17075] = "fixed-version: Fixed from version 5.4rc3"
+
+CVE_STATUS[CVE-2019-17133] = "fixed-version: Fixed from version 5.4rc4"
+
+CVE_STATUS[CVE-2019-17351] = "fixed-version: Fixed from version 5.3rc1"
+
+CVE_STATUS[CVE-2019-17666] = "fixed-version: Fixed from version 5.4rc6"
+
+CVE_STATUS[CVE-2019-18198] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-18282] = "fixed-version: Fixed from version 5.4rc6"
+
+CVE_STATUS[CVE-2019-18660] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-18675] = "fixed-version: Fixed from version 4.17rc5"
+
+# CVE-2019-18680 has no known resolution
+
+CVE_STATUS[CVE-2019-18683] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-18786] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-18805] = "fixed-version: Fixed from version 5.1rc7"
+
+CVE_STATUS[CVE-2019-18806] = "fixed-version: Fixed from version 5.4rc2"
+
+CVE_STATUS[CVE-2019-18807] = "fixed-version: Fixed from version 5.4rc2"
+
+CVE_STATUS[CVE-2019-18808] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-18809] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-18810] = "fixed-version: Fixed from version 5.4rc2"
+
+CVE_STATUS[CVE-2019-18811] = "fixed-version: Fixed from version 5.4rc7"
+
+CVE_STATUS[CVE-2019-18812] = "fixed-version: Fixed from version 5.4rc7"
+
+CVE_STATUS[CVE-2019-18813] = "fixed-version: Fixed from version 5.4rc6"
+
+CVE_STATUS[CVE-2019-18814] = "fixed-version: Fixed from version 5.7rc7"
+
+CVE_STATUS[CVE-2019-18885] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-19036] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19037] = "fixed-version: Fixed from version 5.5rc3"
+
+CVE_STATUS[CVE-2019-19039] = "fixed-version: Fixed from version 5.7rc1"
+
+CVE_STATUS[CVE-2019-19043] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19044] = "fixed-version: Fixed from version 5.4rc6"
+
+CVE_STATUS[CVE-2019-19045] = "fixed-version: Fixed from version 5.4rc6"
+
+CVE_STATUS[CVE-2019-19046] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19047] = "fixed-version: Fixed from version 5.4rc6"
+
+CVE_STATUS[CVE-2019-19048] = "fixed-version: Fixed from version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19049] = "fixed-version: Fixed from version 5.4rc5"
+
+CVE_STATUS[CVE-2019-19050] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19051] = "fixed-version: Fixed from version 5.4rc6"
+
+CVE_STATUS[CVE-2019-19052] = "fixed-version: Fixed from version 5.4rc7"
+
+CVE_STATUS[CVE-2019-19053] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19054] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19055] = "fixed-version: Fixed from version 5.4rc4"
+
+CVE_STATUS[CVE-2019-19056] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19057] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19058] = "fixed-version: Fixed from version 5.4rc4"
+
+CVE_STATUS[CVE-2019-19059] = "fixed-version: Fixed from version 5.4rc4"
+
+CVE_STATUS[CVE-2019-19060] = "fixed-version: Fixed from version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19061] = "fixed-version: Fixed from version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19062] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19063] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19064] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19065] = "fixed-version: Fixed from version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19066] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19067] = "fixed-version: Fixed from version 5.4rc2"
+
+CVE_STATUS[CVE-2019-19068] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19069] = "fixed-version: Fixed from version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19070] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19071] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19072] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19073] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19074] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19075] = "fixed-version: Fixed from version 5.4rc2"
+
+CVE_STATUS[CVE-2019-19076] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19077] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19078] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19079] = "fixed-version: Fixed from version 5.3"
+
+CVE_STATUS[CVE-2019-19080] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19081] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19082] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19083] = "fixed-version: Fixed from version 5.4rc2"
+
+CVE_STATUS[CVE-2019-19227] = "fixed-version: Fixed from version 5.1rc3"
+
+CVE_STATUS[CVE-2019-19241] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19252] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19318] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19319] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2019-19332] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19338] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19377] = "fixed-version: Fixed from version 5.7rc1"
+
+# CVE-2019-19378 has no known resolution
+
+CVE_STATUS[CVE-2019-19447] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19448] = "fixed-version: Fixed from version 5.9rc1"
+
+CVE_STATUS[CVE-2019-19449] = "fixed-version: Fixed from version 5.10rc1"
+
+CVE_STATUS[CVE-2019-19462] = "fixed-version: Fixed from version 5.8rc1"
+
+CVE_STATUS[CVE-2019-19523] = "fixed-version: Fixed from version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19524] = "fixed-version: Fixed from version 5.4rc8"
+
+CVE_STATUS[CVE-2019-19525] = "fixed-version: Fixed from version 5.4rc2"
+
+CVE_STATUS[CVE-2019-19526] = "fixed-version: Fixed from version 5.4rc4"
+
+CVE_STATUS[CVE-2019-19527] = "fixed-version: Fixed from version 5.3rc4"
+
+CVE_STATUS[CVE-2019-19528] = "fixed-version: Fixed from version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19529] = "fixed-version: Fixed from version 5.4rc7"
+
+CVE_STATUS[CVE-2019-19530] = "fixed-version: Fixed from version 5.3rc5"
+
+CVE_STATUS[CVE-2019-19531] = "fixed-version: Fixed from version 5.3rc4"
+
+CVE_STATUS[CVE-2019-19532] = "fixed-version: Fixed from version 5.4rc6"
+
+CVE_STATUS[CVE-2019-19533] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19534] = "fixed-version: Fixed from version 5.4rc7"
+
+CVE_STATUS[CVE-2019-19535] = "fixed-version: Fixed from version 5.3rc4"
+
+CVE_STATUS[CVE-2019-19536] = "fixed-version: Fixed from version 5.3rc4"
+
+CVE_STATUS[CVE-2019-19537] = "fixed-version: Fixed from version 5.3rc5"
+
+CVE_STATUS[CVE-2019-19543] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2019-19602] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19767] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19768] = "fixed-version: Fixed from version 5.6rc4"
+
+CVE_STATUS[CVE-2019-19769] = "fixed-version: Fixed from version 5.6rc5"
+
+CVE_STATUS[CVE-2019-19770] = "fixed-version: Fixed from version 5.9rc1"
+
+CVE_STATUS[CVE-2019-19807] = "fixed-version: Fixed from version 5.4rc7"
+
+CVE_STATUS[CVE-2019-19813] = "fixed-version: Fixed from version 5.2rc1"
+
+# CVE-2019-19814 has no known resolution
+
+CVE_STATUS[CVE-2019-19815] = "fixed-version: Fixed from version 5.3rc1"
+
+CVE_STATUS[CVE-2019-19816] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2019-19922] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19927] = "fixed-version: Fixed from version 5.1rc6"
+
+CVE_STATUS[CVE-2019-19947] = "fixed-version: Fixed from version 5.5rc3"
+
+CVE_STATUS[CVE-2019-19965] = "fixed-version: Fixed from version 5.5rc2"
+
+CVE_STATUS[CVE-2019-19966] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2019-1999] = "fixed-version: Fixed from version 5.1rc3"
+
+CVE_STATUS[CVE-2019-20054] = "fixed-version: Fixed from version 5.1rc3"
+
+CVE_STATUS[CVE-2019-20095] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2019-20096] = "fixed-version: Fixed from version 5.1rc4"
+
+CVE_STATUS[CVE-2019-2024] = "fixed-version: Fixed from version 4.16rc1"
+
+CVE_STATUS[CVE-2019-2025] = "fixed-version: Fixed from version 4.20rc5"
+
+CVE_STATUS[CVE-2019-20422] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-2054] = "fixed-version: Fixed from version 4.8rc1"
+
+CVE_STATUS[CVE-2019-20636] = "fixed-version: Fixed from version 5.5rc6"
+
+# CVE-2019-20794 has no known resolution
+
+CVE_STATUS[CVE-2019-20806] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2019-20810] = "fixed-version: Fixed from version 5.6rc1"
+
+CVE_STATUS[CVE-2019-20811] = "fixed-version: Fixed from version 5.1rc3"
+
+CVE_STATUS[CVE-2019-20812] = "fixed-version: Fixed from version 5.5rc3"
+
+CVE_STATUS[CVE-2019-20908] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2019-20934] = "fixed-version: Fixed from version 5.3rc2"
+
+CVE_STATUS[CVE-2019-2101] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-2181] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2019-2182] = "fixed-version: Fixed from version 4.16rc3"
+
+CVE_STATUS[CVE-2019-2213] = "fixed-version: Fixed from version 5.2rc6"
+
+CVE_STATUS[CVE-2019-2214] = "fixed-version: Fixed from version 5.3rc2"
+
+CVE_STATUS[CVE-2019-2215] = "fixed-version: Fixed from version 4.16rc1"
+
+CVE_STATUS[CVE-2019-25044] = "fixed-version: Fixed from version 5.2rc4"
+
+CVE_STATUS[CVE-2019-25045] = "fixed-version: Fixed from version 5.1"
+
+CVE_STATUS[CVE-2019-3016] = "fixed-version: Fixed from version 5.6rc1"
+
+CVE_STATUS[CVE-2019-3459] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-3460] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-3701] = "fixed-version: Fixed from version 5.0rc3"
+
+CVE_STATUS[CVE-2019-3819] = "fixed-version: Fixed from version 5.0rc6"
+
+CVE_STATUS[CVE-2019-3837] = "fixed-version: Fixed from version 3.18rc1"
+
+CVE_STATUS[CVE-2019-3846] = "fixed-version: Fixed from version 5.2rc6"
+
+CVE_STATUS[CVE-2019-3874] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2019-3882] = "fixed-version: Fixed from version 5.1rc4"
+
+CVE_STATUS[CVE-2019-3887] = "fixed-version: Fixed from version 5.1rc4"
+
+CVE_STATUS[CVE-2019-3892] = "fixed-version: Fixed from version 5.1rc6"
+
+CVE_STATUS[CVE-2019-3896] = "fixed-version: Fixed from version 2.6.35rc1"
+
+CVE_STATUS[CVE-2019-3900] = "fixed-version: Fixed from version 5.2rc4"
+
+CVE_STATUS[CVE-2019-3901] = "fixed-version: Fixed from version 4.6rc6"
+
+CVE_STATUS[CVE-2019-5108] = "fixed-version: Fixed from version 5.3"
+
+# Skipping CVE-2019-5489, no affected_versions
+
+CVE_STATUS[CVE-2019-6133] = "fixed-version: Fixed from version 5.0rc2"
+
+CVE_STATUS[CVE-2019-6974] = "fixed-version: Fixed from version 5.0rc6"
+
+CVE_STATUS[CVE-2019-7221] = "fixed-version: Fixed from version 5.0rc6"
+
+CVE_STATUS[CVE-2019-7222] = "fixed-version: Fixed from version 5.0rc6"
+
+CVE_STATUS[CVE-2019-7308] = "fixed-version: Fixed from version 5.0rc3"
+
+CVE_STATUS[CVE-2019-8912] = "fixed-version: Fixed from version 5.0rc8"
+
+CVE_STATUS[CVE-2019-8956] = "fixed-version: Fixed from version 5.0rc6"
+
+CVE_STATUS[CVE-2019-8980] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-9003] = "fixed-version: Fixed from version 5.0rc4"
+
+CVE_STATUS[CVE-2019-9162] = "fixed-version: Fixed from version 5.0rc7"
+
+CVE_STATUS[CVE-2019-9213] = "fixed-version: Fixed from version 5.0"
+
+CVE_STATUS[CVE-2019-9245] = "fixed-version: Fixed from version 5.0rc1"
+
+CVE_STATUS[CVE-2019-9444] = "fixed-version: Fixed from version 4.15rc2"
+
+CVE_STATUS[CVE-2019-9445] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-9453] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2019-9454] = "fixed-version: Fixed from version 4.15rc9"
+
+CVE_STATUS[CVE-2019-9455] = "fixed-version: Fixed from version 5.0rc1"
+
+CVE_STATUS[CVE-2019-9456] = "fixed-version: Fixed from version 4.16rc6"
+
+CVE_STATUS[CVE-2019-9457] = "fixed-version: Fixed from version 4.13rc1"
+
+CVE_STATUS[CVE-2019-9458] = "fixed-version: Fixed from version 4.19rc7"
+
+CVE_STATUS[CVE-2019-9466] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-9500] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-9503] = "fixed-version: Fixed from version 5.1rc1"
+
+CVE_STATUS[CVE-2019-9506] = "fixed-version: Fixed from version 5.2"
+
+CVE_STATUS[CVE-2019-9857] = "fixed-version: Fixed from version 5.1rc2"
+
+CVE_STATUS[CVE-2020-0009] = "fixed-version: Fixed from version 5.6rc3"
+
+CVE_STATUS[CVE-2020-0030] = "fixed-version: Fixed from version 4.16rc3"
+
+CVE_STATUS[CVE-2020-0041] = "fixed-version: Fixed from version 5.5rc2"
+
+CVE_STATUS[CVE-2020-0066] = "fixed-version: Fixed from version 4.3rc7"
+
+CVE_STATUS[CVE-2020-0067] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2020-0110] = "fixed-version: Fixed from version 5.6rc2"
+
+CVE_STATUS[CVE-2020-0255] = "fixed-version: Fixed from version 5.7rc4"
+
+CVE_STATUS[CVE-2020-0305] = "fixed-version: Fixed from version 5.5rc6"
+
+# CVE-2020-0347 has no known resolution
+
+CVE_STATUS[CVE-2020-0404] = "fixed-version: Fixed from version 5.6rc1"
+
+CVE_STATUS[CVE-2020-0423] = "fixed-version: Fixed from version 5.10rc1"
+
+CVE_STATUS[CVE-2020-0427] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2020-0429] = "fixed-version: Fixed from version 4.14rc4"
+
+CVE_STATUS[CVE-2020-0430] = "fixed-version: Fixed from version 4.18rc1"
+
+CVE_STATUS[CVE-2020-0431] = "fixed-version: Fixed from version 5.5rc6"
+
+CVE_STATUS[CVE-2020-0432] = "fixed-version: Fixed from version 5.6rc1"
+
+CVE_STATUS[CVE-2020-0433] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2020-0435] = "fixed-version: Fixed from version 4.19rc1"
+
+CVE_STATUS[CVE-2020-0444] = "fixed-version: Fixed from version 5.6rc4"
+
+CVE_STATUS[CVE-2020-0465] = "fixed-version: Fixed from version 5.9rc4"
+
+CVE_STATUS[CVE-2020-0466] = "fixed-version: Fixed from version 5.9rc2"
+
+CVE_STATUS[CVE-2020-0543] = "fixed-version: Fixed from version 5.8rc1"
+
+CVE_STATUS[CVE-2020-10135] = "fixed-version: Fixed from version 5.8rc1"
+
+CVE_STATUS[CVE-2020-10690] = "fixed-version: Fixed from version 5.5rc5"
+
+# CVE-2020-10708 has no known resolution
+
+CVE_STATUS[CVE-2020-10711] = "fixed-version: Fixed from version 5.7rc6"
+
+CVE_STATUS[CVE-2020-10720] = "fixed-version: Fixed from version 5.2rc3"
+
+CVE_STATUS[CVE-2020-10732] = "fixed-version: Fixed from version 5.7"
+
+CVE_STATUS[CVE-2020-10742] = "fixed-version: Fixed from version 3.16rc1"
+
+CVE_STATUS[CVE-2020-10751] = "fixed-version: Fixed from version 5.7rc4"
+
+CVE_STATUS[CVE-2020-10757] = "fixed-version: Fixed from version 5.8rc1"
+
+CVE_STATUS[CVE-2020-10766] = "fixed-version: Fixed from version 5.8rc1"
+
+CVE_STATUS[CVE-2020-10767] = "fixed-version: Fixed from version 5.8rc1"
+
+CVE_STATUS[CVE-2020-10768] = "fixed-version: Fixed from version 5.8rc1"
+
+CVE_STATUS[CVE-2020-10769] = "fixed-version: Fixed from version 5.0rc3"
+
+CVE_STATUS[CVE-2020-10773] = "fixed-version: Fixed from version 5.4rc6"
+
+# CVE-2020-10774 has no known resolution
+
+CVE_STATUS[CVE-2020-10781] = "fixed-version: Fixed from version 5.8rc6"
+
+CVE_STATUS[CVE-2020-10942] = "fixed-version: Fixed from version 5.6rc4"
+
+CVE_STATUS[CVE-2020-11494] = "fixed-version: Fixed from version 5.7rc1"
+
+CVE_STATUS[CVE-2020-11565] = "fixed-version: Fixed from version 5.7rc1"
+
+CVE_STATUS[CVE-2020-11608] = "fixed-version: Fixed from version 5.7rc1"
+
+CVE_STATUS[CVE-2020-11609] = "fixed-version: Fixed from version 5.7rc1"
+
+CVE_STATUS[CVE-2020-11668] = "fixed-version: Fixed from version 5.7rc1"
+
+CVE_STATUS[CVE-2020-11669] = "fixed-version: Fixed from version 5.2rc1"
+
+# CVE-2020-11725 has no known resolution
+
+CVE_STATUS[CVE-2020-11884] = "fixed-version: Fixed from version 5.7rc4"
+
+# CVE-2020-11935 has no known resolution
+
+CVE_STATUS[CVE-2020-12114] = "fixed-version: Fixed from version 5.3rc1"
+
+CVE_STATUS[CVE-2020-12351] = "fixed-version: Fixed from version 5.10rc1"
+
+CVE_STATUS[CVE-2020-12352] = "fixed-version: Fixed from version 5.10rc1"
+
+CVE_STATUS[CVE-2020-12362] = "fixed-version: Fixed from version 5.11rc1"
+
+CVE_STATUS[CVE-2020-12363] = "fixed-version: Fixed from version 5.11rc1"
+
+CVE_STATUS[CVE-2020-12364] = "fixed-version: Fixed from version 5.11rc1"
+
+CVE_STATUS[CVE-2020-12464] = "fixed-version: Fixed from version 5.7rc3"
+
+CVE_STATUS[CVE-2020-12465] = "fixed-version: Fixed from version 5.6rc6"
+
+CVE_STATUS[CVE-2020-12652] = "fixed-version: Fixed from version 5.5rc7"
+
+CVE_STATUS[CVE-2020-12653] = "fixed-version: Fixed from version 5.6rc1"
+
+CVE_STATUS[CVE-2020-12654] = "fixed-version: Fixed from version 5.6rc1"
+
+CVE_STATUS[CVE-2020-12655] = "fixed-version: Fixed from version 5.7rc1"
+
+CVE_STATUS[CVE-2020-12656] = "fixed-version: Fixed from version 5.8rc1"
+
+CVE_STATUS[CVE-2020-12657] = "fixed-version: Fixed from version 5.7rc1"
+
+CVE_STATUS[CVE-2020-12659] = "fixed-version: Fixed from version 5.7rc2"
+
+CVE_STATUS[CVE-2020-12768] = "fixed-version: Fixed from version 5.6rc4"
+
+CVE_STATUS[CVE-2020-12769] = "fixed-version: Fixed from version 5.5rc6"
+
+CVE_STATUS[CVE-2020-12770] = "fixed-version: Fixed from version 5.7rc3"
+
+CVE_STATUS[CVE-2020-12771] = "fixed-version: Fixed from version 5.8rc2"
+
+CVE_STATUS[CVE-2020-12826] = "fixed-version: Fixed from version 5.7rc1"
+
+CVE_STATUS[CVE-2020-12888] = "fixed-version: Fixed from version 5.8rc1"
+
+CVE_STATUS[CVE-2020-12912] = "fixed-version: Fixed from version 5.10rc4"
+
+CVE_STATUS[CVE-2020-13143] = "fixed-version: Fixed from version 5.7rc6"
+
+CVE_STATUS[CVE-2020-13974] = "fixed-version: Fixed from version 5.8rc1"
+
+# CVE-2020-14304 has no known resolution
+
+CVE_STATUS[CVE-2020-14305] = "fixed-version: Fixed from version 4.12rc1"
+
+CVE_STATUS[CVE-2020-14314] = "fixed-version: Fixed from version 5.9rc2"
+
+CVE_STATUS[CVE-2020-14331] = "fixed-version: Fixed from version 5.9rc1"
+
+CVE_STATUS[CVE-2020-14351] = "fixed-version: Fixed from version 5.10rc1"
+
+CVE_STATUS[CVE-2020-14353] = "fixed-version: Fixed from version 4.14rc3"
+
+CVE_STATUS[CVE-2020-14356] = "fixed-version: Fixed from version 5.8rc5"
+
+CVE_STATUS[CVE-2020-14381] = "fixed-version: Fixed from version 5.6rc6"
+
+CVE_STATUS[CVE-2020-14385] = "fixed-version: Fixed from version 5.9rc4"
+
+CVE_STATUS[CVE-2020-14386] = "fixed-version: Fixed from version 5.9rc4"
+
+CVE_STATUS[CVE-2020-14390] = "fixed-version: Fixed from version 5.9rc6"
+
+CVE_STATUS[CVE-2020-14416] = "fixed-version: Fixed from version 5.5"
+
+CVE_STATUS[CVE-2020-15393] = "fixed-version: Fixed from version 5.8rc3"
+
+CVE_STATUS[CVE-2020-15436] = "fixed-version: Fixed from version 5.8rc2"
+
+CVE_STATUS[CVE-2020-15437] = "fixed-version: Fixed from version 5.8rc7"
+
+CVE_STATUS[CVE-2020-15780] = "fixed-version: Fixed from version 5.8rc3"
+
+# CVE-2020-15802 has no known resolution
+
+CVE_STATUS[CVE-2020-15852] = "fixed-version: Fixed from version 5.8rc6"
+
+CVE_STATUS[CVE-2020-16119] = "fixed-version: Fixed from version 5.15rc2"
+
+CVE_STATUS[CVE-2020-16120] = "fixed-version: Fixed from version 5.8rc1"
+
+CVE_STATUS[CVE-2020-16166] = "fixed-version: Fixed from version 5.8"
+
+CVE_STATUS[CVE-2020-1749] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2020-24394] = "fixed-version: Fixed from version 5.8rc4"
+
+CVE_STATUS[CVE-2020-24490] = "fixed-version: Fixed from version 5.8"
+
+# CVE-2020-24502 has no known resolution
+
+# CVE-2020-24503 has no known resolution
+
+CVE_STATUS[CVE-2020-24504] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2020-24586] = "fixed-version: Fixed from version 5.13rc4"
+
+CVE_STATUS[CVE-2020-24587] = "fixed-version: Fixed from version 5.13rc4"
+
+CVE_STATUS[CVE-2020-24588] = "fixed-version: Fixed from version 5.13rc4"
+
+CVE_STATUS[CVE-2020-25211] = "fixed-version: Fixed from version 5.9rc7"
+
+CVE_STATUS[CVE-2020-25212] = "fixed-version: Fixed from version 5.9rc1"
+
+# CVE-2020-25220 has no known resolution
+
+CVE_STATUS[CVE-2020-25221] = "fixed-version: Fixed from version 5.9rc4"
+
+CVE_STATUS[CVE-2020-25284] = "fixed-version: Fixed from version 5.9rc5"
+
+CVE_STATUS[CVE-2020-25285] = "fixed-version: Fixed from version 5.9rc4"
+
+CVE_STATUS[CVE-2020-25639] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2020-25641] = "fixed-version: Fixed from version 5.9rc4"
+
+CVE_STATUS[CVE-2020-25643] = "fixed-version: Fixed from version 5.9rc7"
+
+CVE_STATUS[CVE-2020-25645] = "fixed-version: Fixed from version 5.9rc7"
+
+CVE_STATUS[CVE-2020-25656] = "fixed-version: Fixed from version 5.10rc2"
+
+# CVE-2020-25661 has no known resolution
+
+# CVE-2020-25662 has no known resolution
+
+CVE_STATUS[CVE-2020-25668] = "fixed-version: Fixed from version 5.10rc3"
+
+CVE_STATUS[CVE-2020-25669] = "fixed-version: Fixed from version 5.10rc5"
+
+CVE_STATUS[CVE-2020-25670] = "fixed-version: Fixed from version 5.12rc7"
+
+CVE_STATUS[CVE-2020-25671] = "fixed-version: Fixed from version 5.12rc7"
+
+CVE_STATUS[CVE-2020-25672] = "fixed-version: Fixed from version 5.12rc7"
+
+CVE_STATUS[CVE-2020-25673] = "fixed-version: Fixed from version 5.12rc7"
+
+CVE_STATUS[CVE-2020-25704] = "fixed-version: Fixed from version 5.10rc3"
+
+CVE_STATUS[CVE-2020-25705] = "fixed-version: Fixed from version 5.10rc1"
+
+CVE_STATUS[CVE-2020-26088] = "fixed-version: Fixed from version 5.9rc1"
+
+CVE_STATUS[CVE-2020-26139] = "fixed-version: Fixed from version 5.13rc4"
+
+# CVE-2020-26140 has no known resolution
+
+CVE_STATUS[CVE-2020-26141] = "fixed-version: Fixed from version 5.13rc4"
+
+# CVE-2020-26142 has no known resolution
+
+# CVE-2020-26143 has no known resolution
+
+CVE_STATUS[CVE-2020-26145] = "fixed-version: Fixed from version 5.13rc4"
+
+CVE_STATUS[CVE-2020-26147] = "fixed-version: Fixed from version 5.13rc4"
+
+CVE_STATUS[CVE-2020-26541] = "fixed-version: Fixed from version 5.13rc1"
+
+CVE_STATUS[CVE-2020-26555] = "fixed-version: Fixed from version 5.13rc1"
+
+# CVE-2020-26556 has no known resolution
+
+# CVE-2020-26557 has no known resolution
+
+CVE_STATUS[CVE-2020-26558] = "fixed-version: Fixed from version 5.13rc1"
+
+# CVE-2020-26559 has no known resolution
+
+# CVE-2020-26560 has no known resolution
+
+CVE_STATUS[CVE-2020-27066] = "fixed-version: Fixed from version 5.6"
+
+CVE_STATUS[CVE-2020-27067] = "fixed-version: Fixed from version 4.14rc4"
+
+CVE_STATUS[CVE-2020-27068] = "fixed-version: Fixed from version 5.6rc2"
+
+CVE_STATUS[CVE-2020-27152] = "fixed-version: Fixed from version 5.10rc1"
+
+CVE_STATUS[CVE-2020-27170] = "fixed-version: Fixed from version 5.12rc5"
+
+CVE_STATUS[CVE-2020-27171] = "fixed-version: Fixed from version 5.12rc5"
+
+CVE_STATUS[CVE-2020-27194] = "fixed-version: Fixed from version 5.9"
+
+CVE_STATUS[CVE-2020-2732] = "fixed-version: Fixed from version 5.6rc4"
+
+# CVE-2020-27418 has no known resolution
+
+CVE_STATUS[CVE-2020-27673] = "fixed-version: Fixed from version 5.10rc1"
+
+CVE_STATUS[CVE-2020-27675] = "fixed-version: Fixed from version 5.10rc1"
+
+CVE_STATUS[CVE-2020-27777] = "fixed-version: Fixed from version 5.10rc1"
+
+CVE_STATUS[CVE-2020-27784] = "fixed-version: Fixed from version 5.10rc1"
+
+CVE_STATUS[CVE-2020-27786] = "fixed-version: Fixed from version 5.7rc6"
+
+CVE_STATUS[CVE-2020-27815] = "fixed-version: Fixed from version 5.11rc1"
+
+CVE_STATUS[CVE-2020-27820] = "fixed-version: Fixed from version 5.16rc1"
+
+CVE_STATUS[CVE-2020-27825] = "fixed-version: Fixed from version 5.10rc1"
+
+CVE_STATUS[CVE-2020-27830] = "fixed-version: Fixed from version 5.10rc7"
+
+CVE_STATUS[CVE-2020-27835] = "fixed-version: Fixed from version 5.10rc6"
+
+CVE_STATUS[CVE-2020-28097] = "fixed-version: Fixed from version 5.9rc6"
+
+CVE_STATUS[CVE-2020-28374] = "fixed-version: Fixed from version 5.11rc4"
+
+CVE_STATUS[CVE-2020-28588] = "fixed-version: Fixed from version 5.10rc7"
+
+CVE_STATUS[CVE-2020-28915] = "fixed-version: Fixed from version 5.9"
+
+CVE_STATUS[CVE-2020-28941] = "fixed-version: Fixed from version 5.10rc5"
+
+CVE_STATUS[CVE-2020-28974] = "fixed-version: Fixed from version 5.10rc3"
+
+CVE_STATUS[CVE-2020-29368] = "fixed-version: Fixed from version 5.8rc1"
+
+CVE_STATUS[CVE-2020-29369] = "fixed-version: Fixed from version 5.8rc7"
+
+CVE_STATUS[CVE-2020-29370] = "fixed-version: Fixed from version 5.6rc7"
+
+CVE_STATUS[CVE-2020-29371] = "fixed-version: Fixed from version 5.9rc2"
+
+CVE_STATUS[CVE-2020-29372] = "fixed-version: Fixed from version 5.7rc3"
+
+CVE_STATUS[CVE-2020-29373] = "fixed-version: Fixed from version 5.6rc2"
+
+CVE_STATUS[CVE-2020-29374] = "fixed-version: Fixed from version 5.8rc1"
+
+CVE_STATUS[CVE-2020-29534] = "fixed-version: Fixed from version 5.10rc1"
+
+CVE_STATUS[CVE-2020-29568] = "fixed-version: Fixed from version 5.11rc1"
+
+CVE_STATUS[CVE-2020-29569] = "fixed-version: Fixed from version 5.11rc1"
+
+CVE_STATUS[CVE-2020-29660] = "fixed-version: Fixed from version 5.10rc7"
+
+CVE_STATUS[CVE-2020-29661] = "fixed-version: Fixed from version 5.10rc7"
+
+CVE_STATUS[CVE-2020-35499] = "fixed-version: Fixed from version 5.11rc1"
+
+# CVE-2020-35501 has no known resolution
+
+CVE_STATUS[CVE-2020-35508] = "fixed-version: Fixed from version 5.10rc3"
+
+CVE_STATUS[CVE-2020-35513] = "fixed-version: Fixed from version 4.17rc1"
+
+CVE_STATUS[CVE-2020-35519] = "fixed-version: Fixed from version 5.10rc7"
+
+CVE_STATUS[CVE-2020-36158] = "fixed-version: Fixed from version 5.11rc1"
+
+CVE_STATUS[CVE-2020-36310] = "fixed-version: Fixed from version 5.8rc1"
+
+CVE_STATUS[CVE-2020-36311] = "fixed-version: Fixed from version 5.9rc5"
+
+CVE_STATUS[CVE-2020-36312] = "fixed-version: Fixed from version 5.9rc5"
+
+CVE_STATUS[CVE-2020-36313] = "fixed-version: Fixed from version 5.7rc1"
+
+CVE_STATUS[CVE-2020-36322] = "fixed-version: Fixed from version 5.11rc1"
+
+CVE_STATUS[CVE-2020-36385] = "fixed-version: Fixed from version 5.10rc1"
+
+CVE_STATUS[CVE-2020-36386] = "fixed-version: Fixed from version 5.9rc1"
+
+CVE_STATUS[CVE-2020-36387] = "fixed-version: Fixed from version 5.9rc1"
+
+CVE_STATUS[CVE-2020-36516] = "fixed-version: Fixed from version 5.17rc2"
+
+CVE_STATUS[CVE-2020-36557] = "fixed-version: Fixed from version 5.7rc1"
+
+CVE_STATUS[CVE-2020-36558] = "fixed-version: Fixed from version 5.6rc3"
+
+CVE_STATUS[CVE-2020-36691] = "fixed-version: Fixed from version 5.8rc1"
+
+CVE_STATUS[CVE-2020-36694] = "fixed-version: Fixed from version 5.10"
+
+CVE_STATUS[CVE-2020-36766] = "fixed-version: Fixed from version 5.9rc1"
+
+CVE_STATUS[CVE-2020-3702] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2020-4788] = "fixed-version: Fixed from version 5.10rc5"
+
+CVE_STATUS[CVE-2020-7053] = "fixed-version: Fixed from version 5.2rc1"
+
+CVE_STATUS[CVE-2020-8428] = "fixed-version: Fixed from version 5.5"
+
+CVE_STATUS[CVE-2020-8647] = "fixed-version: Fixed from version 5.6rc5"
+
+CVE_STATUS[CVE-2020-8648] = "fixed-version: Fixed from version 5.6rc3"
+
+CVE_STATUS[CVE-2020-8649] = "fixed-version: Fixed from version 5.6rc5"
+
+CVE_STATUS[CVE-2020-8694] = "fixed-version: Fixed from version 5.10rc4"
+
+# CVE-2020-8832 has no known resolution
+
+CVE_STATUS[CVE-2020-8834] = "fixed-version: Fixed from version 4.18rc1"
+
+CVE_STATUS[CVE-2020-8835] = "fixed-version: Fixed from version 5.7rc1"
+
+CVE_STATUS[CVE-2020-8992] = "fixed-version: Fixed from version 5.6rc2"
+
+CVE_STATUS[CVE-2020-9383] = "fixed-version: Fixed from version 5.6rc4"
+
+CVE_STATUS[CVE-2020-9391] = "fixed-version: Fixed from version 5.6rc3"
+
+CVE_STATUS[CVE-2021-0129] = "fixed-version: Fixed from version 5.13rc1"
+
+CVE_STATUS[CVE-2021-0342] = "fixed-version: Fixed from version 5.8rc1"
+
+# CVE-2021-0399 has no known resolution
+
+CVE_STATUS[CVE-2021-0447] = "fixed-version: Fixed from version 4.15rc1"
+
+CVE_STATUS[CVE-2021-0448] = "fixed-version: Fixed from version 5.9rc7"
+
+CVE_STATUS[CVE-2021-0512] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2021-0605] = "fixed-version: Fixed from version 5.8"
+
+# CVE-2021-0606 has no known resolution
+
+# CVE-2021-0695 has no known resolution
+
+CVE_STATUS[CVE-2021-0707] = "fixed-version: Fixed from version 5.11rc3"
+
+CVE_STATUS[CVE-2021-0920] = "fixed-version: Fixed from version 5.14rc4"
+
+# CVE-2021-0924 has no known resolution
+
+CVE_STATUS[CVE-2021-0929] = "fixed-version: Fixed from version 5.6rc1"
+
+CVE_STATUS[CVE-2021-0935] = "fixed-version: Fixed from version 4.16rc7"
+
+# CVE-2021-0936 has no known resolution
+
+CVE_STATUS[CVE-2021-0937] = "fixed-version: Fixed from version 5.12rc8"
+
+CVE_STATUS[CVE-2021-0938] = "fixed-version: Fixed from version 5.10rc4"
+
+CVE_STATUS[CVE-2021-0941] = "fixed-version: Fixed from version 5.12rc1"
+
+# CVE-2021-0961 has no known resolution
+
+CVE_STATUS[CVE-2021-1048] = "fixed-version: Fixed from version 5.9rc4"
+
+CVE_STATUS[CVE-2021-20177] = "fixed-version: Fixed from version 5.5rc1"
+
+CVE_STATUS[CVE-2021-20194] = "fixed-version: Fixed from version 5.10rc1"
+
+# CVE-2021-20219 has no known resolution
+
+CVE_STATUS[CVE-2021-20226] = "fixed-version: Fixed from version 5.10rc1"
+
+CVE_STATUS[CVE-2021-20239] = "fixed-version: Fixed from version 5.9rc1"
+
+CVE_STATUS[CVE-2021-20261] = "fixed-version: Fixed from version 4.5rc5"
+
+CVE_STATUS[CVE-2021-20265] = "fixed-version: Fixed from version 4.5rc3"
+
+CVE_STATUS[CVE-2021-20268] = "fixed-version: Fixed from version 5.11rc5"
+
+CVE_STATUS[CVE-2021-20292] = "fixed-version: Fixed from version 5.9rc1"
+
+CVE_STATUS[CVE-2021-20317] = "fixed-version: Fixed from version 5.4rc1"
+
+CVE_STATUS[CVE-2021-20320] = "fixed-version: Fixed from version 5.15rc3"
+
+CVE_STATUS[CVE-2021-20321] = "fixed-version: Fixed from version 5.15rc5"
+
+CVE_STATUS[CVE-2021-20322] = "fixed-version: Fixed from version 5.15rc1"
+
+CVE_STATUS[CVE-2021-21781] = "fixed-version: Fixed from version 5.11rc7"
+
+CVE_STATUS[CVE-2021-22543] = "fixed-version: Fixed from version 5.13"
+
+CVE_STATUS[CVE-2021-22555] = "fixed-version: Fixed from version 5.12rc8"
+
+CVE_STATUS[CVE-2021-22600] = "fixed-version: Fixed from version 5.16rc6"
+
+CVE_STATUS[CVE-2021-23133] = "fixed-version: Fixed from version 5.12rc8"
+
+CVE_STATUS[CVE-2021-23134] = "fixed-version: Fixed from version 5.13rc1"
+
+CVE_STATUS[CVE-2021-26401] = "fixed-version: Fixed from version 5.17rc8"
+
+CVE_STATUS[CVE-2021-26708] = "fixed-version: Fixed from version 5.11rc7"
+
+CVE_STATUS[CVE-2021-26930] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2021-26931] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2021-26932] = "fixed-version: Fixed from version 5.12rc1"
+
+# CVE-2021-26934 has no known resolution
+
+CVE_STATUS[CVE-2021-27363] = "fixed-version: Fixed from version 5.12rc2"
+
+CVE_STATUS[CVE-2021-27364] = "fixed-version: Fixed from version 5.12rc2"
+
+CVE_STATUS[CVE-2021-27365] = "fixed-version: Fixed from version 5.12rc2"
+
+CVE_STATUS[CVE-2021-28038] = "fixed-version: Fixed from version 5.12rc2"
+
+CVE_STATUS[CVE-2021-28039] = "fixed-version: Fixed from version 5.12rc2"
+
+CVE_STATUS[CVE-2021-28375] = "fixed-version: Fixed from version 5.12rc3"
+
+CVE_STATUS[CVE-2021-28660] = "fixed-version: Fixed from version 5.12rc3"
+
+CVE_STATUS[CVE-2021-28688] = "fixed-version: Fixed from version 5.12rc6"
+
+CVE_STATUS[CVE-2021-28691] = "fixed-version: Fixed from version 5.13rc6"
+
+CVE_STATUS[CVE-2021-28711] = "fixed-version: Fixed from version 5.16rc7"
+
+CVE_STATUS[CVE-2021-28712] = "fixed-version: Fixed from version 5.16rc7"
+
+CVE_STATUS[CVE-2021-28713] = "fixed-version: Fixed from version 5.16rc7"
+
+CVE_STATUS[CVE-2021-28714] = "fixed-version: Fixed from version 5.16rc7"
+
+CVE_STATUS[CVE-2021-28715] = "fixed-version: Fixed from version 5.16rc7"
+
+CVE_STATUS[CVE-2021-28950] = "fixed-version: Fixed from version 5.12rc4"
+
+CVE_STATUS[CVE-2021-28951] = "fixed-version: Fixed from version 5.12rc2"
+
+CVE_STATUS[CVE-2021-28952] = "fixed-version: Fixed from version 5.12rc4"
+
+CVE_STATUS[CVE-2021-28964] = "fixed-version: Fixed from version 5.12rc4"
+
+CVE_STATUS[CVE-2021-28971] = "fixed-version: Fixed from version 5.12rc4"
+
+CVE_STATUS[CVE-2021-28972] = "fixed-version: Fixed from version 5.12rc4"
+
+CVE_STATUS[CVE-2021-29154] = "fixed-version: Fixed from version 5.12rc7"
+
+CVE_STATUS[CVE-2021-29155] = "fixed-version: Fixed from version 5.12rc8"
+
+CVE_STATUS[CVE-2021-29264] = "fixed-version: Fixed from version 5.12rc3"
+
+CVE_STATUS[CVE-2021-29265] = "fixed-version: Fixed from version 5.12rc3"
+
+CVE_STATUS[CVE-2021-29266] = "fixed-version: Fixed from version 5.12rc4"
+
+CVE_STATUS[CVE-2021-29646] = "fixed-version: Fixed from version 5.12rc5"
+
+CVE_STATUS[CVE-2021-29647] = "fixed-version: Fixed from version 5.12rc5"
+
+CVE_STATUS[CVE-2021-29648] = "fixed-version: Fixed from version 5.12rc5"
+
+CVE_STATUS[CVE-2021-29649] = "fixed-version: Fixed from version 5.12rc5"
+
+CVE_STATUS[CVE-2021-29650] = "fixed-version: Fixed from version 5.12rc5"
+
+CVE_STATUS[CVE-2021-29657] = "fixed-version: Fixed from version 5.12rc6"
+
+CVE_STATUS[CVE-2021-30002] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2021-30178] = "fixed-version: Fixed from version 5.12rc2"
+
+CVE_STATUS[CVE-2021-31440] = "fixed-version: Fixed from version 5.13rc1"
+
+CVE_STATUS[CVE-2021-3178] = "fixed-version: Fixed from version 5.11rc5"
+
+CVE_STATUS[CVE-2021-31829] = "fixed-version: Fixed from version 5.13rc1"
+
+CVE_STATUS[CVE-2021-31916] = "fixed-version: Fixed from version 5.12rc5"
+
+CVE_STATUS[CVE-2021-32078] = "fixed-version: Fixed from version 5.13rc1"
+
+CVE_STATUS[CVE-2021-32399] = "fixed-version: Fixed from version 5.13rc1"
+
+CVE_STATUS[CVE-2021-32606] = "fixed-version: Fixed from version 5.13rc4"
+
+CVE_STATUS[CVE-2021-33033] = "fixed-version: Fixed from version 5.12rc3"
+
+CVE_STATUS[CVE-2021-33034] = "fixed-version: Fixed from version 5.13rc1"
+
+CVE_STATUS[CVE-2021-33061] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2021-33098] = "fixed-version: Fixed from version 5.13rc4"
+
+CVE_STATUS[CVE-2021-33135] = "fixed-version: Fixed from version 5.17rc8"
+
+CVE_STATUS[CVE-2021-33200] = "fixed-version: Fixed from version 5.13rc4"
+
+CVE_STATUS[CVE-2021-3347] = "fixed-version: Fixed from version 5.11rc6"
+
+CVE_STATUS[CVE-2021-3348] = "fixed-version: Fixed from version 5.11rc6"
+
+CVE_STATUS[CVE-2021-33624] = "fixed-version: Fixed from version 5.13rc7"
+
+CVE_STATUS[CVE-2021-33655] = "fixed-version: Fixed from version 5.19rc6"
+
+CVE_STATUS[CVE-2021-33656] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2021-33909] = "fixed-version: Fixed from version 5.14rc3"
+
+CVE_STATUS[CVE-2021-3411] = "fixed-version: Fixed from version 5.10"
+
+CVE_STATUS[CVE-2021-3428] = "fixed-version: Fixed from version 5.9rc2"
+
+CVE_STATUS[CVE-2021-3444] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2021-34556] = "fixed-version: Fixed from version 5.14rc4"
+
+CVE_STATUS[CVE-2021-34693] = "fixed-version: Fixed from version 5.13rc7"
+
+CVE_STATUS[CVE-2021-3483] = "fixed-version: Fixed from version 5.12rc6"
+
+CVE_STATUS[CVE-2021-34866] = "fixed-version: Fixed from version 5.14"
+
+CVE_STATUS[CVE-2021-3489] = "fixed-version: Fixed from version 5.13rc4"
+
+CVE_STATUS[CVE-2021-3490] = "fixed-version: Fixed from version 5.13rc4"
+
+CVE_STATUS[CVE-2021-3491] = "fixed-version: Fixed from version 5.13rc1"
+
+# CVE-2021-3492 has no known resolution
+
+CVE_STATUS[CVE-2021-3493] = "fixed-version: Fixed from version 5.11rc1"
+
+CVE_STATUS[CVE-2021-34981] = "fixed-version: Fixed from version 5.14rc1"
+
+CVE_STATUS[CVE-2021-3501] = "fixed-version: Fixed from version 5.12rc8"
+
+CVE_STATUS[CVE-2021-35039] = "fixed-version: Fixed from version 5.13"
+
+CVE_STATUS[CVE-2021-3506] = "fixed-version: Fixed from version 5.13rc1"
+
+# CVE-2021-3542 has no known resolution
+
+CVE_STATUS[CVE-2021-3543] = "fixed-version: Fixed from version 5.13rc1"
+
+CVE_STATUS[CVE-2021-35477] = "fixed-version: Fixed from version 5.14rc4"
+
+CVE_STATUS[CVE-2021-3564] = "fixed-version: Fixed from version 5.13rc5"
+
+CVE_STATUS[CVE-2021-3573] = "fixed-version: Fixed from version 5.13rc5"
+
+CVE_STATUS[CVE-2021-3587] = "fixed-version: Fixed from version 5.13rc5"
+
+CVE_STATUS[CVE-2021-3600] = "fixed-version: Fixed from version 5.11"
+
+CVE_STATUS[CVE-2021-3609] = "fixed-version: Fixed from version 5.14rc1"
+
+CVE_STATUS[CVE-2021-3612] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2021-3635] = "fixed-version: Fixed from version 5.5rc7"
+
+CVE_STATUS[CVE-2021-3640] = "fixed-version: Fixed from version 5.16rc1"
+
+CVE_STATUS[CVE-2021-3653] = "fixed-version: Fixed from version 5.14rc7"
+
+CVE_STATUS[CVE-2021-3655] = "fixed-version: Fixed from version 5.14rc1"
+
+CVE_STATUS[CVE-2021-3656] = "fixed-version: Fixed from version 5.14rc7"
+
+CVE_STATUS[CVE-2021-3659] = "fixed-version: Fixed from version 5.12rc7"
+
+CVE_STATUS[CVE-2021-3669] = "fixed-version: Fixed from version 5.15rc1"
+
+CVE_STATUS[CVE-2021-3679] = "fixed-version: Fixed from version 5.14rc3"
+
+# CVE-2021-3714 has no known resolution
+
+CVE_STATUS[CVE-2021-3715] = "fixed-version: Fixed from version 5.6"
+
+CVE_STATUS[CVE-2021-37159] = "fixed-version: Fixed from version 5.14rc3"
+
+CVE_STATUS[CVE-2021-3732] = "fixed-version: Fixed from version 5.14rc6"
+
+CVE_STATUS[CVE-2021-3736] = "fixed-version: Fixed from version 5.15rc1"
+
+CVE_STATUS[CVE-2021-3739] = "fixed-version: Fixed from version 5.15rc1"
+
+CVE_STATUS[CVE-2021-3743] = "fixed-version: Fixed from version 5.13rc7"
+
+CVE_STATUS[CVE-2021-3744] = "fixed-version: Fixed from version 5.15rc4"
+
+CVE_STATUS[CVE-2021-3752] = "fixed-version: Fixed from version 5.16rc1"
+
+CVE_STATUS[CVE-2021-3753] = "fixed-version: Fixed from version 5.15rc1"
+
+CVE_STATUS[CVE-2021-37576] = "fixed-version: Fixed from version 5.14rc3"
+
+CVE_STATUS[CVE-2021-3759] = "fixed-version: Fixed from version 5.15rc1"
+
+CVE_STATUS[CVE-2021-3760] = "fixed-version: Fixed from version 5.15rc6"
+
+CVE_STATUS[CVE-2021-3764] = "fixed-version: Fixed from version 5.15rc4"
+
+CVE_STATUS[CVE-2021-3772] = "fixed-version: Fixed from version 5.15"
+
+CVE_STATUS[CVE-2021-38160] = "fixed-version: Fixed from version 5.14rc1"
+
+CVE_STATUS[CVE-2021-38166] = "fixed-version: Fixed from version 5.14rc6"
+
+CVE_STATUS[CVE-2021-38198] = "fixed-version: Fixed from version 5.13rc6"
+
+CVE_STATUS[CVE-2021-38199] = "fixed-version: Fixed from version 5.14rc1"
+
+CVE_STATUS[CVE-2021-38200] = "fixed-version: Fixed from version 5.13rc7"
+
+CVE_STATUS[CVE-2021-38201] = "fixed-version: Fixed from version 5.14rc1"
+
+CVE_STATUS[CVE-2021-38202] = "fixed-version: Fixed from version 5.14rc1"
+
+CVE_STATUS[CVE-2021-38203] = "fixed-version: Fixed from version 5.14rc2"
+
+CVE_STATUS[CVE-2021-38204] = "fixed-version: Fixed from version 5.14rc3"
+
+CVE_STATUS[CVE-2021-38205] = "fixed-version: Fixed from version 5.14rc1"
+
+CVE_STATUS[CVE-2021-38206] = "fixed-version: Fixed from version 5.13rc7"
+
+CVE_STATUS[CVE-2021-38207] = "fixed-version: Fixed from version 5.13rc7"
+
+CVE_STATUS[CVE-2021-38208] = "fixed-version: Fixed from version 5.13rc5"
+
+CVE_STATUS[CVE-2021-38209] = "fixed-version: Fixed from version 5.13rc1"
+
+CVE_STATUS[CVE-2021-38300] = "fixed-version: Fixed from version 5.15rc4"
+
+# CVE-2021-3847 has no known resolution
+
+# CVE-2021-3864 has no known resolution
+
+# CVE-2021-3892 has no known resolution
+
+CVE_STATUS[CVE-2021-3894] = "fixed-version: Fixed from version 5.15rc6"
+
+CVE_STATUS[CVE-2021-3896] = "fixed-version: Fixed from version 5.15rc6"
+
+CVE_STATUS[CVE-2021-3923] = "fixed-version: Fixed from version 5.16"
+
+CVE_STATUS[CVE-2021-39633] = "fixed-version: Fixed from version 5.14"
+
+CVE_STATUS[CVE-2021-39634] = "fixed-version: Fixed from version 5.9rc8"
+
+CVE_STATUS[CVE-2021-39636] = "fixed-version: Fixed from version 4.16rc1"
+
+CVE_STATUS[CVE-2021-39648] = "fixed-version: Fixed from version 5.11rc3"
+
+CVE_STATUS[CVE-2021-39656] = "fixed-version: Fixed from version 5.12rc3"
+
+CVE_STATUS[CVE-2021-39657] = "fixed-version: Fixed from version 5.11rc4"
+
+CVE_STATUS[CVE-2021-39685] = "fixed-version: Fixed from version 5.16rc5"
+
+CVE_STATUS[CVE-2021-39686] = "fixed-version: Fixed from version 5.16rc1"
+
+CVE_STATUS[CVE-2021-39698] = "fixed-version: Fixed from version 5.16rc5"
+
+CVE_STATUS[CVE-2021-39711] = "fixed-version: Fixed from version 4.18rc6"
+
+CVE_STATUS[CVE-2021-39713] = "fixed-version: Fixed from version 4.20rc1"
+
+CVE_STATUS[CVE-2021-39714] = "fixed-version: Fixed from version 4.12rc1"
+
+# CVE-2021-39800 has no known resolution
+
+# CVE-2021-39801 has no known resolution
+
+# CVE-2021-39802 has no known resolution
+
+CVE_STATUS[CVE-2021-4001] = "fixed-version: Fixed from version 5.16rc2"
+
+CVE_STATUS[CVE-2021-4002] = "fixed-version: Fixed from version 5.16rc3"
+
+CVE_STATUS[CVE-2021-4023] = "fixed-version: Fixed from version 5.15rc1"
+
+CVE_STATUS[CVE-2021-4028] = "fixed-version: Fixed from version 5.15rc4"
+
+CVE_STATUS[CVE-2021-4032] = "fixed-version: Fixed from version 5.15rc7"
+
+CVE_STATUS[CVE-2021-4037] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2021-40490] = "fixed-version: Fixed from version 5.15rc1"
+
+CVE_STATUS[CVE-2021-4083] = "fixed-version: Fixed from version 5.16rc4"
+
+CVE_STATUS[CVE-2021-4090] = "fixed-version: Fixed from version 5.16rc2"
+
+CVE_STATUS[CVE-2021-4093] = "fixed-version: Fixed from version 5.15rc7"
+
+CVE_STATUS[CVE-2021-4095] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2021-41073] = "fixed-version: Fixed from version 5.15rc2"
+
+CVE_STATUS[CVE-2021-4135] = "fixed-version: Fixed from version 5.16rc6"
+
+CVE_STATUS[CVE-2021-4148] = "fixed-version: Fixed from version 5.15"
+
+CVE_STATUS[CVE-2021-4149] = "fixed-version: Fixed from version 5.15rc6"
+
+CVE_STATUS[CVE-2021-4150] = "fixed-version: Fixed from version 5.15rc7"
+
+CVE_STATUS[CVE-2021-4154] = "fixed-version: Fixed from version 5.14rc2"
+
+CVE_STATUS[CVE-2021-4155] = "fixed-version: Fixed from version 5.16"
+
+CVE_STATUS[CVE-2021-4157] = "fixed-version: Fixed from version 5.13rc1"
+
+CVE_STATUS[CVE-2021-4159] = "fixed-version: Fixed from version 5.7rc1"
+
+CVE_STATUS[CVE-2021-41864] = "fixed-version: Fixed from version 5.15rc5"
+
+CVE_STATUS[CVE-2021-4197] = "fixed-version: Fixed from version 5.16"
+
+CVE_STATUS[CVE-2021-42008] = "fixed-version: Fixed from version 5.14rc7"
+
+CVE_STATUS[CVE-2021-4202] = "fixed-version: Fixed from version 5.16rc2"
+
+CVE_STATUS[CVE-2021-4203] = "fixed-version: Fixed from version 5.15rc4"
+
+CVE_STATUS[CVE-2021-4204] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2021-4218] = "fixed-version: Fixed from version 5.8rc1"
+
+CVE_STATUS[CVE-2021-42252] = "fixed-version: Fixed from version 5.15rc1"
+
+CVE_STATUS[CVE-2021-42327] = "fixed-version: Fixed from version 5.15"
+
+CVE_STATUS[CVE-2021-42739] = "fixed-version: Fixed from version 5.16rc1"
+
+CVE_STATUS[CVE-2021-43056] = "fixed-version: Fixed from version 5.15rc6"
+
+CVE_STATUS[CVE-2021-43057] = "fixed-version: Fixed from version 5.15rc3"
+
+CVE_STATUS[CVE-2021-43267] = "fixed-version: Fixed from version 5.15"
+
+CVE_STATUS[CVE-2021-43389] = "fixed-version: Fixed from version 5.15rc6"
+
+CVE_STATUS[CVE-2021-43975] = "fixed-version: Fixed from version 5.16rc2"
+
+CVE_STATUS[CVE-2021-43976] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2021-44733] = "fixed-version: Fixed from version 5.16rc7"
+
+CVE_STATUS[CVE-2021-44879] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2021-45095] = "fixed-version: Fixed from version 5.16rc6"
+
+CVE_STATUS[CVE-2021-45100] = "fixed-version: Fixed from version 5.16rc7"
+
+CVE_STATUS[CVE-2021-45402] = "fixed-version: Fixed from version 5.16rc6"
+
+CVE_STATUS[CVE-2021-45469] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2021-45480] = "fixed-version: Fixed from version 5.16rc6"
+
+CVE_STATUS[CVE-2021-45485] = "fixed-version: Fixed from version 5.14rc1"
+
+CVE_STATUS[CVE-2021-45486] = "fixed-version: Fixed from version 5.13rc1"
+
+CVE_STATUS[CVE-2021-45868] = "fixed-version: Fixed from version 5.16rc1"
+
+CVE_STATUS[CVE-2021-46283] = "fixed-version: Fixed from version 5.13rc7"
+
+CVE_STATUS[CVE-2022-0001] = "fixed-version: Fixed from version 5.17rc8"
+
+CVE_STATUS[CVE-2022-0002] = "fixed-version: Fixed from version 5.17rc8"
+
+CVE_STATUS[CVE-2022-0168] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-0171] = "fixed-version: Fixed from version 5.18rc4"
+
+CVE_STATUS[CVE-2022-0185] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2022-0264] = "fixed-version: Fixed from version 5.16rc6"
+
+CVE_STATUS[CVE-2022-0286] = "fixed-version: Fixed from version 5.14rc2"
+
+CVE_STATUS[CVE-2022-0322] = "fixed-version: Fixed from version 5.15rc6"
+
+CVE_STATUS[CVE-2022-0330] = "fixed-version: Fixed from version 5.17rc2"
+
+CVE_STATUS[CVE-2022-0382] = "fixed-version: Fixed from version 5.16"
+
+# CVE-2022-0400 has no known resolution
+
+CVE_STATUS[CVE-2022-0433] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2022-0435] = "fixed-version: Fixed from version 5.17rc4"
+
+CVE_STATUS[CVE-2022-0480] = "fixed-version: Fixed from version 5.15rc1"
+
+CVE_STATUS[CVE-2022-0487] = "fixed-version: Fixed from version 5.17rc4"
+
+CVE_STATUS[CVE-2022-0492] = "fixed-version: Fixed from version 5.17rc3"
+
+CVE_STATUS[CVE-2022-0494] = "fixed-version: Fixed from version 5.17rc5"
+
+CVE_STATUS[CVE-2022-0500] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2022-0516] = "fixed-version: Fixed from version 5.17rc4"
+
+CVE_STATUS[CVE-2022-0617] = "fixed-version: Fixed from version 5.17rc2"
+
+CVE_STATUS[CVE-2022-0644] = "fixed-version: Fixed from version 5.15rc7"
+
+CVE_STATUS[CVE-2022-0646] = "fixed-version: Fixed from version 5.17rc5"
+
+CVE_STATUS[CVE-2022-0742] = "fixed-version: Fixed from version 5.17rc7"
+
+CVE_STATUS[CVE-2022-0812] = "fixed-version: Fixed from version 5.8rc6"
+
+CVE_STATUS[CVE-2022-0847] = "fixed-version: Fixed from version 5.17rc6"
+
+CVE_STATUS[CVE-2022-0850] = "fixed-version: Fixed from version 5.14rc1"
+
+CVE_STATUS[CVE-2022-0854] = "fixed-version: Fixed from version 5.17rc8"
+
+CVE_STATUS[CVE-2022-0995] = "fixed-version: Fixed from version 5.17rc8"
+
+CVE_STATUS[CVE-2022-0998] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2022-1011] = "fixed-version: Fixed from version 5.17rc8"
+
+CVE_STATUS[CVE-2022-1012] = "fixed-version: Fixed from version 5.18rc6"
+
+CVE_STATUS[CVE-2022-1015] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1016] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1043] = "fixed-version: Fixed from version 5.14rc7"
+
+CVE_STATUS[CVE-2022-1048] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1055] = "fixed-version: Fixed from version 5.17rc3"
+
+# CVE-2022-1116 has no known resolution
+
+CVE_STATUS[CVE-2022-1158] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1184] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-1195] = "fixed-version: Fixed from version 5.16rc7"
+
+CVE_STATUS[CVE-2022-1198] = "fixed-version: Fixed from version 5.17rc6"
+
+CVE_STATUS[CVE-2022-1199] = "fixed-version: Fixed from version 5.17rc8"
+
+CVE_STATUS[CVE-2022-1204] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1205] = "fixed-version: Fixed from version 5.18rc1"
+
+# CVE-2022-1247 has no known resolution
+
+CVE_STATUS[CVE-2022-1263] = "fixed-version: Fixed from version 5.18rc3"
+
+CVE_STATUS[CVE-2022-1280] = "fixed-version: Fixed from version 5.15rc1"
+
+CVE_STATUS[CVE-2022-1353] = "fixed-version: Fixed from version 5.17"
+
+CVE_STATUS[CVE-2022-1419] = "fixed-version: Fixed from version 5.6rc2"
+
+CVE_STATUS[CVE-2022-1462] = "fixed-version: Fixed from version 5.19rc7"
+
+CVE_STATUS[CVE-2022-1508] = "fixed-version: Fixed from version 5.15rc1"
+
+CVE_STATUS[CVE-2022-1516] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1651] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1652] = "fixed-version: Fixed from version 5.18rc6"
+
+CVE_STATUS[CVE-2022-1671] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1678] = "fixed-version: Fixed from version 4.20rc1"
+
+CVE_STATUS[CVE-2022-1679] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-1729] = "fixed-version: Fixed from version 5.18"
+
+CVE_STATUS[CVE-2022-1734] = "fixed-version: Fixed from version 5.18rc6"
+
+CVE_STATUS[CVE-2022-1786] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2022-1789] = "fixed-version: Fixed from version 5.18"
+
+CVE_STATUS[CVE-2022-1836] = "fixed-version: Fixed from version 5.18rc5"
+
+CVE_STATUS[CVE-2022-1852] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-1882] = "fixed-version: Fixed from version 5.19rc8"
+
+CVE_STATUS[CVE-2022-1943] = "fixed-version: Fixed from version 5.18rc7"
+
+CVE_STATUS[CVE-2022-1966] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-1972] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-1973] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-1974] = "fixed-version: Fixed from version 5.18rc6"
+
+CVE_STATUS[CVE-2022-1975] = "fixed-version: Fixed from version 5.18rc6"
+
+CVE_STATUS[CVE-2022-1976] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-1998] = "fixed-version: Fixed from version 5.17rc3"
+
+CVE_STATUS[CVE-2022-20008] = "fixed-version: Fixed from version 5.17rc5"
+
+CVE_STATUS[CVE-2022-20132] = "fixed-version: Fixed from version 5.16rc5"
+
+CVE_STATUS[CVE-2022-20141] = "fixed-version: Fixed from version 5.15rc1"
+
+CVE_STATUS[CVE-2022-20148] = "fixed-version: Fixed from version 5.16rc1"
+
+CVE_STATUS[CVE-2022-20153] = "fixed-version: Fixed from version 5.13rc1"
+
+CVE_STATUS[CVE-2022-20154] = "fixed-version: Fixed from version 5.16rc8"
+
+CVE_STATUS[CVE-2022-20158] = "fixed-version: Fixed from version 5.17"
+
+CVE_STATUS[CVE-2022-20166] = "fixed-version: Fixed from version 5.10rc1"
+
+CVE_STATUS[CVE-2022-20368] = "fixed-version: Fixed from version 5.17"
+
+CVE_STATUS[CVE-2022-20369] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-20409] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2022-20421] = "fixed-version: Fixed from version 6.0rc4"
+
+CVE_STATUS[CVE-2022-20422] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-20423] = "fixed-version: Fixed from version 5.17"
+
+CVE_STATUS[CVE-2022-20424] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2022-20565] = "fixed-version: Fixed from version 5.9rc4"
+
+CVE_STATUS[CVE-2022-20566] = "fixed-version: Fixed from version 5.19"
+
+CVE_STATUS[CVE-2022-20567] = "fixed-version: Fixed from version 4.16rc5"
+
+CVE_STATUS[CVE-2022-20568] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2022-20572] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-2078] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-21123] = "fixed-version: Fixed from version 5.19rc3"
+
+CVE_STATUS[CVE-2022-21125] = "fixed-version: Fixed from version 5.19rc3"
+
+CVE_STATUS[CVE-2022-21166] = "fixed-version: Fixed from version 5.19rc3"
+
+CVE_STATUS[CVE-2022-21385] = "fixed-version: Fixed from version 4.20"
+
+CVE_STATUS[CVE-2022-21499] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-21505] = "fixed-version: Fixed from version 5.19rc8"
+
+CVE_STATUS[CVE-2022-2153] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-2196] = "fixed-version: Fixed from version 6.2rc1"
+
+# CVE-2022-2209 has no known resolution
+
+CVE_STATUS[CVE-2022-22942] = "fixed-version: Fixed from version 5.17rc2"
+
+CVE_STATUS[CVE-2022-23036] = "fixed-version: Fixed from version 5.17rc8"
+
+CVE_STATUS[CVE-2022-23037] = "fixed-version: Fixed from version 5.17rc8"
+
+CVE_STATUS[CVE-2022-23038] = "fixed-version: Fixed from version 5.17rc8"
+
+CVE_STATUS[CVE-2022-23039] = "fixed-version: Fixed from version 5.17rc8"
+
+CVE_STATUS[CVE-2022-23040] = "fixed-version: Fixed from version 5.17rc8"
+
+CVE_STATUS[CVE-2022-23041] = "fixed-version: Fixed from version 5.17rc8"
+
+CVE_STATUS[CVE-2022-23042] = "fixed-version: Fixed from version 5.17rc8"
+
+CVE_STATUS[CVE-2022-2308] = "fixed-version: Fixed from version 6.0"
+
+CVE_STATUS[CVE-2022-2318] = "fixed-version: Fixed from version 5.19rc5"
+
+CVE_STATUS[CVE-2022-23222] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2022-2327] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2022-2380] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-23816] = "fixed-version: Fixed from version 5.19rc7"
+
+# CVE-2022-23825 has no known resolution
+
+CVE_STATUS[CVE-2022-23960] = "fixed-version: Fixed from version 5.17rc8"
+
+CVE_STATUS[CVE-2022-24122] = "fixed-version: Fixed from version 5.17rc2"
+
+CVE_STATUS[CVE-2022-24448] = "fixed-version: Fixed from version 5.17rc2"
+
+CVE_STATUS[CVE-2022-24958] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2022-24959] = "fixed-version: Fixed from version 5.17rc2"
+
+CVE_STATUS[CVE-2022-2503] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-25258] = "fixed-version: Fixed from version 5.17rc4"
+
+# CVE-2022-25265 has no known resolution
+
+CVE_STATUS[CVE-2022-25375] = "fixed-version: Fixed from version 5.17rc4"
+
+CVE_STATUS[CVE-2022-25636] = "fixed-version: Fixed from version 5.17rc6"
+
+CVE_STATUS[CVE-2022-2585] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-2586] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-2588] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-2590] = "fixed-version: Fixed from version 6.0rc3"
+
+CVE_STATUS[CVE-2022-2602] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-26365] = "fixed-version: Fixed from version 5.19rc6"
+
+CVE_STATUS[CVE-2022-26373] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-2639] = "fixed-version: Fixed from version 5.18rc4"
+
+CVE_STATUS[CVE-2022-26490] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2022-2663] = "fixed-version: Fixed from version 6.0rc5"
+
+# CVE-2022-26878 has no known resolution
+
+CVE_STATUS[CVE-2022-26966] = "fixed-version: Fixed from version 5.17rc6"
+
+CVE_STATUS[CVE-2022-27223] = "fixed-version: Fixed from version 5.17rc6"
+
+CVE_STATUS[CVE-2022-27666] = "fixed-version: Fixed from version 5.17rc8"
+
+CVE_STATUS[CVE-2022-27672] = "fixed-version: Fixed from version 6.2"
+
+CVE_STATUS[CVE-2022-2785] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-27950] = "fixed-version: Fixed from version 5.17rc5"
+
+CVE_STATUS[CVE-2022-28356] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-28388] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-28389] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-28390] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-2873] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-28796] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-28893] = "fixed-version: Fixed from version 5.18rc2"
+
+CVE_STATUS[CVE-2022-2905] = "fixed-version: Fixed from version 6.0rc4"
+
+CVE_STATUS[CVE-2022-29156] = "fixed-version: Fixed from version 5.17rc6"
+
+CVE_STATUS[CVE-2022-2938] = "fixed-version: Fixed from version 5.17rc2"
+
+CVE_STATUS[CVE-2022-29581] = "fixed-version: Fixed from version 5.18rc4"
+
+CVE_STATUS[CVE-2022-29582] = "fixed-version: Fixed from version 5.18rc2"
+
+CVE_STATUS[CVE-2022-2959] = "fixed-version: Fixed from version 5.19rc1"
+
+# CVE-2022-2961 has no known resolution
+
+CVE_STATUS[CVE-2022-2964] = "fixed-version: Fixed from version 5.17rc4"
+
+CVE_STATUS[CVE-2022-2977] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-2978] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-29900] = "fixed-version: Fixed from version 5.19rc7"
+
+CVE_STATUS[CVE-2022-29901] = "fixed-version: Fixed from version 5.19rc7"
+
+CVE_STATUS[CVE-2022-2991] = "fixed-version: Fixed from version 5.15rc1"
+
+CVE_STATUS[CVE-2022-29968] = "fixed-version: Fixed from version 5.18rc5"
+
+CVE_STATUS[CVE-2022-3028] = "fixed-version: Fixed from version 6.0rc3"
+
+CVE_STATUS[CVE-2022-30594] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-3061] = "fixed-version: Fixed from version 5.18rc5"
+
+CVE_STATUS[CVE-2022-3077] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3078] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-3103] = "fixed-version: Fixed from version 6.0rc3"
+
+CVE_STATUS[CVE-2022-3104] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3105] = "fixed-version: Fixed from version 5.16"
+
+CVE_STATUS[CVE-2022-3106] = "fixed-version: Fixed from version 5.16rc6"
+
+CVE_STATUS[CVE-2022-3107] = "fixed-version: Fixed from version 5.17"
+
+CVE_STATUS[CVE-2022-3108] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2022-3110] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3111] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-3112] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-3113] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-3114] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3115] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3169] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3170] = "fixed-version: Fixed from version 6.0rc4"
+
+CVE_STATUS[CVE-2022-3176] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2022-3202] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-32250] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-32296] = "fixed-version: Fixed from version 5.18rc6"
+
+# CVE-2022-3238 has no known resolution
+
+CVE_STATUS[CVE-2022-3239] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2022-32981] = "fixed-version: Fixed from version 5.19rc2"
+
+CVE_STATUS[CVE-2022-3303] = "fixed-version: Fixed from version 6.0rc5"
+
+CVE_STATUS[CVE-2022-3344] = "fixed-version: Fixed from version 6.1rc7"
+
+CVE_STATUS[CVE-2022-33740] = "fixed-version: Fixed from version 5.19rc6"
+
+CVE_STATUS[CVE-2022-33741] = "fixed-version: Fixed from version 5.19rc6"
+
+CVE_STATUS[CVE-2022-33742] = "fixed-version: Fixed from version 5.19rc6"
+
+CVE_STATUS[CVE-2022-33743] = "fixed-version: Fixed from version 5.19rc6"
+
+CVE_STATUS[CVE-2022-33744] = "fixed-version: Fixed from version 5.19rc6"
+
+CVE_STATUS[CVE-2022-33981] = "fixed-version: Fixed from version 5.18rc5"
+
+CVE_STATUS[CVE-2022-3424] = "fixed-version: Fixed from version 6.2rc1"
+
+CVE_STATUS[CVE-2022-3435] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-34494] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-34495] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-34918] = "fixed-version: Fixed from version 5.19rc6"
+
+CVE_STATUS[CVE-2022-3521] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3522] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3523] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3524] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3526] = "fixed-version: Fixed from version 5.18rc3"
+
+CVE_STATUS[CVE-2022-3531] = "fixed-version: Fixed from version 6.2rc1"
+
+CVE_STATUS[CVE-2022-3532] = "fixed-version: Fixed from version 6.2rc1"
+
+# CVE-2022-3533 has no known resolution
+
+CVE_STATUS[CVE-2022-3534] = "fixed-version: Fixed from version 6.2rc1"
+
+CVE_STATUS[CVE-2022-3535] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3541] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3542] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3543] = "fixed-version: Fixed from version 6.1rc1"
+
+# CVE-2022-3544 has no known resolution
+
+CVE_STATUS[CVE-2022-3545] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3564] = "fixed-version: Fixed from version 6.1rc4"
+
+CVE_STATUS[CVE-2022-3565] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3566] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3567] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3577] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3586] = "fixed-version: Fixed from version 6.0rc5"
+
+CVE_STATUS[CVE-2022-3594] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3595] = "fixed-version: Fixed from version 6.1rc1"
+
+# CVE-2022-3606 has no known resolution
+
+CVE_STATUS[CVE-2022-36123] = "fixed-version: Fixed from version 5.19rc6"
+
+CVE_STATUS[CVE-2022-3619] = "fixed-version: Fixed from version 6.1rc4"
+
+CVE_STATUS[CVE-2022-3621] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3623] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3624] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3625] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3628] = "fixed-version: Fixed from version 6.1rc5"
+
+CVE_STATUS[CVE-2022-36280] = "fixed-version: Fixed from version 6.2rc1"
+
+CVE_STATUS[CVE-2022-3629] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3630] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3633] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3635] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3636] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3640] = "fixed-version: Fixed from version 6.1rc4"
+
+# CVE-2022-36402 has no known resolution
+
+# CVE-2022-3642 has no known resolution
+
+CVE_STATUS[CVE-2022-3643] = "fixed-version: Fixed from version 6.1"
+
+CVE_STATUS[CVE-2022-3646] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3649] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-36879] = "fixed-version: Fixed from version 5.19rc8"
+
+CVE_STATUS[CVE-2022-36946] = "fixed-version: Fixed from version 5.19"
+
+CVE_STATUS[CVE-2022-3707] = "fixed-version: Fixed from version 6.2rc3"
+
+# CVE-2022-38096 has no known resolution
+
+CVE_STATUS[CVE-2022-38457] = "fixed-version: Fixed from version 6.2rc4"
+
+CVE_STATUS[CVE-2022-3903] = "fixed-version: Fixed from version 6.1rc2"
+
+CVE_STATUS[CVE-2022-3910] = "fixed-version: Fixed from version 6.0rc6"
+
+CVE_STATUS[CVE-2022-39188] = "fixed-version: Fixed from version 5.19rc8"
+
+CVE_STATUS[CVE-2022-39189] = "fixed-version: Fixed from version 5.19rc2"
+
+CVE_STATUS[CVE-2022-39190] = "fixed-version: Fixed from version 6.0rc3"
+
+CVE_STATUS[CVE-2022-3977] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-39842] = "fixed-version: Fixed from version 5.19rc4"
+
+CVE_STATUS[CVE-2022-40133] = "fixed-version: Fixed from version 6.2rc4"
+
+CVE_STATUS[CVE-2022-40307] = "fixed-version: Fixed from version 6.0rc5"
+
+CVE_STATUS[CVE-2022-40476] = "fixed-version: Fixed from version 5.19rc4"
+
+CVE_STATUS[CVE-2022-40768] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-4095] = "fixed-version: Fixed from version 6.0rc4"
+
+CVE_STATUS[CVE-2022-40982] = "fixed-version: Fixed from version 6.5rc6"
+
+CVE_STATUS[CVE-2022-41218] = "fixed-version: Fixed from version 6.2rc1"
+
+CVE_STATUS[CVE-2022-41222] = "fixed-version: Fixed from version 5.14rc1"
+
+CVE_STATUS[CVE-2022-4127] = "fixed-version: Fixed from version 5.19rc6"
+
+CVE_STATUS[CVE-2022-4128] = "fixed-version: Fixed from version 5.19rc7"
+
+CVE_STATUS[CVE-2022-4129] = "fixed-version: Fixed from version 6.1rc6"
+
+CVE_STATUS[CVE-2022-4139] = "fixed-version: Fixed from version 6.1rc8"
+
+CVE_STATUS[CVE-2022-41674] = "fixed-version: Fixed from version 6.1rc1"
+
+# CVE-2022-41848 has no known resolution
+
+CVE_STATUS[CVE-2022-41849] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-41850] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-41858] = "fixed-version: Fixed from version 5.18rc2"
+
+CVE_STATUS[CVE-2022-42328] = "fixed-version: Fixed from version 6.1"
+
+CVE_STATUS[CVE-2022-42329] = "fixed-version: Fixed from version 6.1"
+
+CVE_STATUS[CVE-2022-42432] = "fixed-version: Fixed from version 6.0rc7"
+
+CVE_STATUS[CVE-2022-4269] = "fixed-version: Fixed from version 6.3rc1"
+
+CVE_STATUS[CVE-2022-42703] = "fixed-version: Fixed from version 6.0rc4"
+
+CVE_STATUS[CVE-2022-42719] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-42720] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-42721] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-42722] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-42895] = "fixed-version: Fixed from version 6.1rc4"
+
+CVE_STATUS[CVE-2022-42896] = "fixed-version: Fixed from version 6.1rc4"
+
+CVE_STATUS[CVE-2022-43750] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-4378] = "fixed-version: Fixed from version 6.1"
+
+CVE_STATUS[CVE-2022-4379] = "fixed-version: Fixed from version 6.2rc1"
+
+CVE_STATUS[CVE-2022-4382] = "fixed-version: Fixed from version 6.2rc5"
+
+CVE_STATUS[CVE-2022-43945] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2022-44032] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2022-44033] = "fixed-version: Fixed from version 6.4rc1"
+
+# CVE-2022-44034 has no known resolution
+
+# CVE-2022-4543 has no known resolution
+
+CVE_STATUS[CVE-2022-45869] = "fixed-version: Fixed from version 6.1rc7"
+
+# CVE-2022-45884 has no known resolution
+
+# CVE-2022-45885 has no known resolution
+
+CVE_STATUS[CVE-2022-45886] = "fixed-version: Fixed from version 6.4rc3"
+
+CVE_STATUS[CVE-2022-45887] = "fixed-version: Fixed from version 6.4rc3"
+
+CVE_STATUS[CVE-2022-45888] = "fixed-version: Fixed from version 6.2rc1"
+
+CVE_STATUS[CVE-2022-45919] = "fixed-version: Fixed from version 6.4rc3"
+
+CVE_STATUS[CVE-2022-45934] = "fixed-version: Fixed from version 6.1"
+
+CVE_STATUS[CVE-2022-4662] = "fixed-version: Fixed from version 6.0rc4"
+
+CVE_STATUS[CVE-2022-4696] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2022-4744] = "fixed-version: Fixed from version 5.16rc7"
+
+CVE_STATUS[CVE-2022-47518] = "fixed-version: Fixed from version 6.1rc8"
+
+CVE_STATUS[CVE-2022-47519] = "fixed-version: Fixed from version 6.1rc8"
+
+CVE_STATUS[CVE-2022-47520] = "fixed-version: Fixed from version 6.1rc8"
+
+CVE_STATUS[CVE-2022-47521] = "fixed-version: Fixed from version 6.1rc8"
+
+CVE_STATUS[CVE-2022-47929] = "fixed-version: Fixed from version 6.2rc4"
+
+CVE_STATUS[CVE-2022-47938] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-47939] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-47940] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2022-47941] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-47942] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-47943] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2022-47946] = "fixed-version: Fixed from version 5.12rc2"
+
+CVE_STATUS[CVE-2022-4842] = "fixed-version: Fixed from version 6.2rc1"
+
+CVE_STATUS[CVE-2022-48423] = "fixed-version: Fixed from version 6.2rc1"
+
+CVE_STATUS[CVE-2022-48424] = "fixed-version: Fixed from version 6.2rc1"
+
+CVE_STATUS[CVE-2022-48425] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2022-48502] = "fixed-version: Fixed from version 6.2rc1"
+
+CVE_STATUS[CVE-2023-0030] = "fixed-version: Fixed from version 5.0rc1"
+
+CVE_STATUS[CVE-2023-0045] = "fixed-version: Fixed from version 6.2rc3"
+
+CVE_STATUS[CVE-2023-0047] = "fixed-version: Fixed from version 5.16rc1"
+
+CVE_STATUS[CVE-2023-0122] = "fixed-version: Fixed from version 6.0rc4"
+
+CVE_STATUS[CVE-2023-0160] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-0179] = "fixed-version: Fixed from version 6.2rc5"
+
+CVE_STATUS[CVE-2023-0210] = "fixed-version: Fixed from version 6.2rc4"
+
+CVE_STATUS[CVE-2023-0240] = "fixed-version: Fixed from version 5.10rc1"
+
+CVE_STATUS[CVE-2023-0266] = "fixed-version: Fixed from version 6.2rc4"
+
+CVE_STATUS[CVE-2023-0386] = "fixed-version: Fixed from version 6.2rc6"
+
+CVE_STATUS[CVE-2023-0394] = "fixed-version: Fixed from version 6.2rc4"
+
+CVE_STATUS[CVE-2023-0458] = "fixed-version: Fixed from version 6.2rc5"
+
+CVE_STATUS[CVE-2023-0459] = "fixed-version: Fixed from version 6.3rc1"
+
+CVE_STATUS[CVE-2023-0461] = "fixed-version: Fixed from version 6.2rc3"
+
+CVE_STATUS[CVE-2023-0468] = "fixed-version: Fixed from version 6.1rc7"
+
+CVE_STATUS[CVE-2023-0469] = "fixed-version: Fixed from version 6.1rc7"
+
+CVE_STATUS[CVE-2023-0590] = "fixed-version: Fixed from version 6.1rc2"
+
+CVE_STATUS[CVE-2023-0597] = "fixed-version: Fixed from version 6.2rc1"
+
+CVE_STATUS[CVE-2023-0615] = "fixed-version: Fixed from version 6.1rc3"
+
+CVE_STATUS[CVE-2023-1032] = "fixed-version: Fixed from version 6.3rc2"
+
+CVE_STATUS[CVE-2023-1073] = "fixed-version: Fixed from version 6.2rc5"
+
+CVE_STATUS[CVE-2023-1074] = "fixed-version: Fixed from version 6.2rc6"
+
+CVE_STATUS[CVE-2023-1075] = "fixed-version: Fixed from version 6.2rc7"
+
+CVE_STATUS[CVE-2023-1076] = "fixed-version: Fixed from version 6.3rc1"
+
+CVE_STATUS[CVE-2023-1077] = "fixed-version: Fixed from version 6.3rc1"
+
+CVE_STATUS[CVE-2023-1078] = "fixed-version: Fixed from version 6.2rc8"
+
+CVE_STATUS[CVE-2023-1079] = "fixed-version: Fixed from version 6.3rc1"
+
+CVE_STATUS[CVE-2023-1095] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2023-1118] = "fixed-version: Fixed from version 6.3rc1"
+
+CVE_STATUS[CVE-2023-1192] = "fixed-version: Fixed from version 6.4rc1"
+
+# CVE-2023-1193 has no known resolution
+
+CVE_STATUS[CVE-2023-1194] = "fixed-version: Fixed from version 6.4rc6"
+
+CVE_STATUS[CVE-2023-1195] = "fixed-version: Fixed from version 6.1rc3"
+
+CVE_STATUS[CVE-2023-1206] = "fixed-version: Fixed from version 6.5rc4"
+
+CVE_STATUS[CVE-2023-1249] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2023-1252] = "fixed-version: Fixed from version 5.16rc1"
+
+CVE_STATUS[CVE-2023-1281] = "fixed-version: Fixed from version 6.2"
+
+CVE_STATUS[CVE-2023-1295] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2023-1380] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-1382] = "fixed-version: Fixed from version 6.1rc7"
+
+CVE_STATUS[CVE-2023-1390] = "fixed-version: Fixed from version 5.11rc4"
+
+CVE_STATUS[CVE-2023-1513] = "fixed-version: Fixed from version 6.2"
+
+CVE_STATUS[CVE-2023-1582] = "fixed-version: Fixed from version 5.17rc4"
+
+CVE_STATUS[CVE-2023-1583] = "fixed-version: Fixed from version 6.3rc4"
+
+CVE_STATUS[CVE-2023-1611] = "fixed-version: Fixed from version 6.3rc5"
+
+CVE_STATUS[CVE-2023-1637] = "fixed-version: Fixed from version 5.18rc2"
+
+CVE_STATUS[CVE-2023-1652] = "fixed-version: Fixed from version 6.2rc5"
+
+CVE_STATUS[CVE-2023-1670] = "fixed-version: Fixed from version 6.3rc4"
+
+CVE_STATUS[CVE-2023-1829] = "fixed-version: Fixed from version 6.3rc1"
+
+CVE_STATUS[CVE-2023-1838] = "fixed-version: Fixed from version 5.18"
+
+CVE_STATUS[CVE-2023-1855] = "fixed-version: Fixed from version 6.3rc3"
+
+CVE_STATUS[CVE-2023-1859] = "fixed-version: Fixed from version 6.3rc7"
+
+CVE_STATUS[CVE-2023-1872] = "fixed-version: Fixed from version 5.18rc2"
+
+CVE_STATUS[CVE-2023-1989] = "fixed-version: Fixed from version 6.3rc4"
+
+CVE_STATUS[CVE-2023-1990] = "fixed-version: Fixed from version 6.3rc3"
+
+CVE_STATUS[CVE-2023-1998] = "fixed-version: Fixed from version 6.3rc1"
+
+CVE_STATUS[CVE-2023-2002] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-2006] = "fixed-version: Fixed from version 6.1rc7"
+
+CVE_STATUS[CVE-2023-2007] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2023-2008] = "fixed-version: Fixed from version 5.19rc4"
+
+CVE_STATUS[CVE-2023-2019] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2023-20569] = "fixed-version: Fixed from version 6.5rc6"
+
+CVE_STATUS[CVE-2023-20588] = "fixed-version: Fixed from version 6.5rc6"
+
+CVE_STATUS[CVE-2023-20593] = "fixed-version: Fixed from version 6.5rc4"
+
+CVE_STATUS[CVE-2023-20928] = "fixed-version: Fixed from version 6.0rc1"
+
+# CVE-2023-20937 has no known resolution
+
+CVE_STATUS[CVE-2023-20938] = "fixed-version: Fixed from version 5.18rc5"
+
+# CVE-2023-20941 has no known resolution
+
+CVE_STATUS[CVE-2023-21102] = "fixed-version: Fixed from version 6.2rc4"
+
+CVE_STATUS[CVE-2023-21106] = "fixed-version: Fixed from version 6.2rc5"
+
+CVE_STATUS[CVE-2023-2124] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-21255] = "fixed-version: Fixed from version 6.4rc4"
+
+CVE_STATUS[CVE-2023-21264] = "fixed-version: Fixed from version 6.4rc5"
+
+# CVE-2023-21400 has no known resolution
+
+CVE_STATUS[CVE-2023-2156] = "fixed-version: Fixed from version 6.3"
+
+CVE_STATUS[CVE-2023-2162] = "fixed-version: Fixed from version 6.2rc6"
+
+CVE_STATUS[CVE-2023-2163] = "fixed-version: Fixed from version 6.3"
+
+CVE_STATUS[CVE-2023-2166] = "fixed-version: Fixed from version 6.1"
+
+CVE_STATUS[CVE-2023-2176] = "fixed-version: Fixed from version 6.3rc1"
+
+CVE_STATUS[CVE-2023-2177] = "fixed-version: Fixed from version 5.19"
+
+CVE_STATUS[CVE-2023-2194] = "fixed-version: Fixed from version 6.3rc4"
+
+CVE_STATUS[CVE-2023-2235] = "fixed-version: Fixed from version 6.3rc3"
+
+CVE_STATUS[CVE-2023-2236] = "fixed-version: Fixed from version 6.1rc7"
+
+CVE_STATUS[CVE-2023-2248] = "fixed-version: Fixed from version 6.3"
+
+CVE_STATUS[CVE-2023-2269] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-22995] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2023-22996] = "fixed-version: Fixed from version 5.18rc1"
+
+CVE_STATUS[CVE-2023-22997] = "fixed-version: Fixed from version 6.2rc1"
+
+CVE_STATUS[CVE-2023-22998] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2023-22999] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2023-23000] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2023-23001] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2023-23002] = "fixed-version: Fixed from version 5.17rc1"
+
+CVE_STATUS[CVE-2023-23003] = "fixed-version: Fixed from version 5.16rc6"
+
+CVE_STATUS[CVE-2023-23004] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2023-23005] = "fixed-version: Fixed from version 6.2rc1"
+
+CVE_STATUS[CVE-2023-23006] = "fixed-version: Fixed from version 5.16rc8"
+
+# CVE-2023-23039 has no known resolution
+
+CVE_STATUS[CVE-2023-23454] = "fixed-version: Fixed from version 6.2rc3"
+
+CVE_STATUS[CVE-2023-23455] = "fixed-version: Fixed from version 6.2rc3"
+
+CVE_STATUS[CVE-2023-23559] = "fixed-version: Fixed from version 6.2rc5"
+
+CVE_STATUS[CVE-2023-23586] = "fixed-version: Fixed from version 5.12rc1"
+
+CVE_STATUS[CVE-2023-2430] = "fixed-version: Fixed from version 6.2rc5"
+
+CVE_STATUS[CVE-2023-2483] = "fixed-version: Fixed from version 6.3rc4"
+
+CVE_STATUS[CVE-2023-25012] = "fixed-version: Fixed from version 6.3rc1"
+
+CVE_STATUS[CVE-2023-2513] = "fixed-version: Fixed from version 6.0rc1"
+
+# CVE-2023-25775 needs backporting (fixed from 6.6rc1)
+
+CVE_STATUS[CVE-2023-2598] = "fixed-version: Fixed from version 6.4rc1"
+
+# CVE-2023-26242 has no known resolution
+
+# CVE-2023-2640 has no known resolution
+
+CVE_STATUS[CVE-2023-26544] = "fixed-version: Fixed from version 6.2rc1"
+
+CVE_STATUS[CVE-2023-26545] = "fixed-version: Fixed from version 6.2"
+
+CVE_STATUS[CVE-2023-26605] = "fixed-version: Fixed from version 6.1rc7"
+
+CVE_STATUS[CVE-2023-26606] = "fixed-version: Fixed from version 6.2rc1"
+
+CVE_STATUS[CVE-2023-26607] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2023-28327] = "fixed-version: Fixed from version 6.1"
+
+CVE_STATUS[CVE-2023-28328] = "fixed-version: Fixed from version 6.2rc1"
+
+CVE_STATUS[CVE-2023-28410] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2023-28464] = "fixed-version: Fixed from version 6.3rc7"
+
+CVE_STATUS[CVE-2023-28466] = "fixed-version: Fixed from version 6.3rc2"
+
+CVE_STATUS[CVE-2023-2860] = "fixed-version: Fixed from version 6.0rc5"
+
+CVE_STATUS[CVE-2023-28772] = "fixed-version: Fixed from version 5.14rc1"
+
+CVE_STATUS[CVE-2023-28866] = "fixed-version: Fixed from version 6.3rc4"
+
+CVE_STATUS[CVE-2023-2898] = "fixed-version: Fixed from version 6.5rc1"
+
+CVE_STATUS[CVE-2023-2985] = "fixed-version: Fixed from version 6.3rc1"
+
+CVE_STATUS[CVE-2023-3006] = "fixed-version: Fixed from version 6.1rc1"
+
+# Skipping CVE-2023-3022, no affected_versions
+
+CVE_STATUS[CVE-2023-30456] = "fixed-version: Fixed from version 6.3rc3"
+
+CVE_STATUS[CVE-2023-30772] = "fixed-version: Fixed from version 6.3rc4"
+
+CVE_STATUS[CVE-2023-3090] = "fixed-version: Fixed from version 6.4rc2"
+
+CVE_STATUS[CVE-2023-3106] = "fixed-version: Fixed from version 4.8rc7"
+
+# Skipping CVE-2023-3108, no affected_versions
+
+# CVE-2023-31081 has no known resolution
+
+# CVE-2023-31082 has no known resolution
+
+# CVE-2023-31083 needs backporting (fixed from 6.6rc1)
+
+CVE_STATUS[CVE-2023-31084] = "fixed-version: Fixed from version 6.4rc3"
+
+# CVE-2023-31085 has no known resolution
+
+CVE_STATUS[CVE-2023-3111] = "fixed-version: Fixed from version 6.0rc2"
+
+CVE_STATUS[CVE-2023-3117] = "fixed-version: Fixed from version 6.4rc7"
+
+CVE_STATUS[CVE-2023-31248] = "fixed-version: Fixed from version 6.5rc2"
+
+CVE_STATUS[CVE-2023-3141] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-31436] = "fixed-version: Fixed from version 6.3"
+
+CVE_STATUS[CVE-2023-3159] = "fixed-version: Fixed from version 5.18rc6"
+
+CVE_STATUS[CVE-2023-3161] = "fixed-version: Fixed from version 6.2rc7"
+
+CVE_STATUS[CVE-2023-3212] = "fixed-version: Fixed from version 6.4rc2"
+
+CVE_STATUS[CVE-2023-3220] = "fixed-version: Fixed from version 6.3rc1"
+
+CVE_STATUS[CVE-2023-32233] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-32247] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-32248] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-32250] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-32252] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-32254] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-32257] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-32258] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-32269] = "fixed-version: Fixed from version 6.2rc7"
+
+# CVE-2023-32629 has no known resolution
+
+CVE_STATUS[CVE-2023-3268] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-3269] = "fixed-version: Fixed from version 6.5rc1"
+
+CVE_STATUS[CVE-2023-3312] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-3317] = "fixed-version: Fixed from version 6.3rc6"
+
+CVE_STATUS[CVE-2023-33203] = "fixed-version: Fixed from version 6.3rc4"
+
+CVE_STATUS[CVE-2023-33250] = "fixed-version: Fixed from version 6.5rc1"
+
+CVE_STATUS[CVE-2023-33288] = "fixed-version: Fixed from version 6.3rc4"
+
+CVE_STATUS[CVE-2023-3338] = "fixed-version: Fixed from version 6.1rc1"
+
+CVE_STATUS[CVE-2023-3355] = "fixed-version: Fixed from version 6.3rc1"
+
+CVE_STATUS[CVE-2023-3357] = "fixed-version: Fixed from version 6.2rc1"
+
+CVE_STATUS[CVE-2023-3358] = "fixed-version: Fixed from version 6.2rc5"
+
+CVE_STATUS[CVE-2023-3359] = "fixed-version: Fixed from version 6.2rc7"
+
+CVE_STATUS[CVE-2023-3389] = "fixed-version: Fixed from version 6.0rc1"
+
+CVE_STATUS[CVE-2023-3390] = "fixed-version: Fixed from version 6.4rc7"
+
+CVE_STATUS[CVE-2023-33951] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-33952] = "fixed-version: Fixed from version 6.4rc1"
+
+# CVE-2023-3397 has no known resolution
+
+CVE_STATUS[CVE-2023-34255] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-34256] = "fixed-version: Fixed from version 6.4rc2"
+
+CVE_STATUS[CVE-2023-34319] = "fixed-version: Fixed from version 6.5rc6"
+
+CVE_STATUS[CVE-2023-3439] = "fixed-version: Fixed from version 5.18rc5"
+
+CVE_STATUS[CVE-2023-35001] = "fixed-version: Fixed from version 6.5rc2"
+
+CVE_STATUS[CVE-2023-3567] = "fixed-version: Fixed from version 6.2rc7"
+
+# CVE-2023-35693 has no known resolution
+
+CVE_STATUS[CVE-2023-35788] = "fixed-version: Fixed from version 6.4rc5"
+
+CVE_STATUS[CVE-2023-35823] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-35824] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-35826] = "fixed-version: Fixed from version 6.4rc1"
+
+# CVE-2023-35827 has no known resolution
+
+CVE_STATUS[CVE-2023-35828] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-35829] = "fixed-version: Fixed from version 6.4rc1"
+
+CVE_STATUS[CVE-2023-3609] = "fixed-version: Fixed from version 6.4rc7"
+
+CVE_STATUS[CVE-2023-3610] = "fixed-version: Fixed from version 6.4"
+
+CVE_STATUS[CVE-2023-3611] = "fixed-version: Fixed from version 6.5rc2"
+
+# CVE-2023-3640 has no known resolution
+
+# CVE-2023-37453 needs backporting (fixed from 6.6rc1)
+
+# CVE-2023-37454 has no known resolution
+
+CVE_STATUS[CVE-2023-3772] = "fixed-version: Fixed from version 6.5rc7"
+
+CVE_STATUS[CVE-2023-3773] = "fixed-version: Fixed from version 6.5rc7"
+
+CVE_STATUS[CVE-2023-3776] = "fixed-version: Fixed from version 6.5rc2"
+
+CVE_STATUS[CVE-2023-3777] = "fixed-version: Fixed from version 6.5rc3"
+
+CVE_STATUS[CVE-2023-3812] = "fixed-version: Fixed from version 6.1rc4"
+
+CVE_STATUS[CVE-2023-38409] = "fixed-version: Fixed from version 6.3rc7"
+
+CVE_STATUS[CVE-2023-38426] = "fixed-version: Fixed from version 6.4rc3"
+
+CVE_STATUS[CVE-2023-38427] = "fixed-version: Fixed from version 6.4rc6"
+
+CVE_STATUS[CVE-2023-38428] = "fixed-version: Fixed from version 6.4rc3"
+
+CVE_STATUS[CVE-2023-38429] = "fixed-version: Fixed from version 6.4rc3"
+
+CVE_STATUS[CVE-2023-38430] = "fixed-version: Fixed from version 6.4rc6"
+
+CVE_STATUS[CVE-2023-38431] = "fixed-version: Fixed from version 6.4rc6"
+
+CVE_STATUS[CVE-2023-38432] = "fixed-version: Fixed from version 6.4"
+
+CVE_STATUS[CVE-2023-3863] = "fixed-version: Fixed from version 6.5rc1"
+
+CVE_STATUS[CVE-2023-3865] = "fixed-version: Fixed from version 6.4"
+
+CVE_STATUS[CVE-2023-3866] = "fixed-version: Fixed from version 6.4"
+
+CVE_STATUS[CVE-2023-3867] = "fixed-version: Fixed from version 6.5rc1"
+
+CVE_STATUS[CVE-2023-4004] = "fixed-version: Fixed from version 6.5rc3"
+
+# CVE-2023-4010 has no known resolution
+
+CVE_STATUS[CVE-2023-4015] = "fixed-version: Fixed from version 6.5rc4"
+
+CVE_STATUS[CVE-2023-40283] = "fixed-version: Fixed from version 6.5rc1"
+
+CVE_STATUS[CVE-2023-4128] = "fixed-version: Fixed from version 6.5rc5"
+
+CVE_STATUS[CVE-2023-4132] = "fixed-version: Fixed from version 6.5rc1"
+
+CVE_STATUS[CVE-2023-4133] = "fixed-version: Fixed from version 6.3"
+
+CVE_STATUS[CVE-2023-4134] = "fixed-version: Fixed from version 6.5rc1"
+
+CVE_STATUS[CVE-2023-4147] = "fixed-version: Fixed from version 6.5rc4"
+
+CVE_STATUS[CVE-2023-4155] = "fixed-version: Fixed from version 6.5rc6"
+
+CVE_STATUS[CVE-2023-4194] = "fixed-version: Fixed from version 6.5rc5"
+
+CVE_STATUS[CVE-2023-4206] = "fixed-version: Fixed from version 6.5rc5"
+
+CVE_STATUS[CVE-2023-4207] = "fixed-version: Fixed from version 6.5rc5"
+
+CVE_STATUS[CVE-2023-4208] = "fixed-version: Fixed from version 6.5rc5"
+
+CVE_STATUS[CVE-2023-4244] = "fixed-version: Fixed from version 6.5rc7"
+
+CVE_STATUS[CVE-2023-4273] = "fixed-version: Fixed from version 6.5rc5"
+
+# CVE-2023-42752 needs backporting (fixed from 6.6rc1)
+
+# CVE-2023-42753 needs backporting (fixed from 6.6rc1)
+
+CVE_STATUS[CVE-2023-42755] = "fixed-version: Fixed from version 6.3rc1"
+
+CVE_STATUS[CVE-2023-4385] = "fixed-version: Fixed from version 5.19rc1"
+
+CVE_STATUS[CVE-2023-4387] = "fixed-version: Fixed from version 5.18"
+
+CVE_STATUS[CVE-2023-4389] = "fixed-version: Fixed from version 5.18rc3"
+
+CVE_STATUS[CVE-2023-4394] = "fixed-version: Fixed from version 6.0rc3"
+
+CVE_STATUS[CVE-2023-4459] = "fixed-version: Fixed from version 5.18"
+
+CVE_STATUS[CVE-2023-4563] = "fixed-version: Fixed from version 6.5rc6"
+
+CVE_STATUS[CVE-2023-4569] = "fixed-version: Fixed from version 6.5rc7"
+
+CVE_STATUS[CVE-2023-4611] = "fixed-version: Fixed from version 6.5rc4"
+
+CVE_STATUS[CVE-2023-4622] = "fixed-version: Fixed from version 6.5rc1"
+
+# CVE-2023-4623 needs backporting (fixed from 6.6rc1)
+
+# CVE-2023-4881 needs backporting (fixed from 6.6rc1)
+
+# CVE-2023-4921 needs backporting (fixed from 6.6rc1)
+
+# CVE-2023-5158 has no known resolution
+
+# CVE-2023-5197 needs backporting (fixed from 6.6rc3)
+
diff --git a/poky/meta/recipes-kernel/linux/linux-dummy.bb b/poky/meta/recipes-kernel/linux/linux-dummy.bb
index 7c46f80d8d..2396f46202 100644
--- a/poky/meta/recipes-kernel/linux/linux-dummy.bb
+++ b/poky/meta/recipes-kernel/linux/linux-dummy.bb
@@ -28,7 +28,6 @@ INHIBIT_DEFAULT_DEPS = "1"
COMPATIBLE_HOST = ".*-linux"
-PR = "r1"
SRC_URI = "file://COPYING.GPL"
S = "${WORKDIR}"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
index 95e3592731..b59442781c 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
@@ -14,7 +14,7 @@ require recipes-kernel/linux/linux-yocto.inc
# provide this .inc to set specific revisions
include recipes-kernel/linux/linux-yocto-dev-revisions.inc
-KBRANCH = "v6.5/standard/base"
+KBRANCH = "v6.6/standard/base"
KMETA = "kernel-meta"
SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name=machine;protocol=https \
@@ -28,7 +28,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name
SRCREV_machine ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
SRCREV_meta ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
-LINUX_VERSION ?= "6.5"
+LINUX_VERSION ?= "6.6"
LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}"
PV = "${LINUX_VERSION}+git"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.1.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.1.bb
index 5a42da2019..fd04c4c17a 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.1.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.1.bb
@@ -14,13 +14,13 @@ python () {
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
-SRCREV_machine ?= "ad7c05a03b8d70ee30ecce783a861cb96ea258cf"
-SRCREV_meta ?= "f845a7f37d7114230d6609e2bd630070f2f6cd9b"
+SRCREV_machine ?= "4b3040c1dc13aaac356ad4ef45a8926118c732d0"
+SRCREV_meta ?= "943c6fe5dac329c7e1c30d602788f409e692b3a8"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.1;destsuffix=${KMETA};protocol=https"
-LINUX_VERSION ?= "6.1.51"
+LINUX_VERSION ?= "6.1.55"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.4.bb
index aacbea40c0..deb2eea73f 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.4.bb
@@ -14,13 +14,13 @@ python () {
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
-SRCREV_machine ?= "06b99074bdc85095a2b3411dcade4a64a8e8f7c0"
-SRCREV_meta ?= "f12230a4c8a427af642be8196828a23f4562bc86"
+SRCREV_machine ?= "61c6d869af5ffb90ac64095eafdf8ba513eb21a6"
+SRCREV_meta ?= "13efe44fe9dd2626eaf6552288ea31770ec71cf1"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.4;destsuffix=${KMETA};protocol=https"
-LINUX_VERSION ?= "6.4.14"
+LINUX_VERSION ?= "6.4.16"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.5.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.5.bb
new file mode 100644
index 0000000000..9b09bae615
--- /dev/null
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.5.bb
@@ -0,0 +1,48 @@
+KBRANCH ?= "v6.5/standard/preempt-rt/base"
+
+require recipes-kernel/linux/linux-yocto.inc
+
+# CVE exclusions
+include recipes-kernel/linux/cve-exclusion_6.5.inc
+
+# Skip processing of this recipe if it is not explicitly specified as the
+# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying
+# to build multiple virtual/kernel providers, e.g. as dependency of
+# core-image-rt-sdk, core-image-rt.
+python () {
+ if d.getVar("KERNEL_PACKAGE_NAME") == "kernel" and d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-yocto-rt":
+ raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
+}
+
+SRCREV_machine ?= "6efddc0f385fb758e7eef43d9de133b1677eb72c"
+SRCREV_meta ?= "06cf3d8830fda41ff271eec7da6e3c8425df790f"
+
+SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
+ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.5;destsuffix=${KMETA};protocol=https"
+
+LINUX_VERSION ?= "6.5.5"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
+
+DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
+DEPENDS += "openssl-native util-linux-native"
+
+PV = "${LINUX_VERSION}+git"
+
+KMETA = "kernel-meta"
+KCONF_BSP_AUDIT_LEVEL = "1"
+
+LINUX_KERNEL_TYPE = "preempt-rt"
+
+COMPATIBLE_MACHINE = "^(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)$"
+
+KERNEL_DEVICETREE:qemuarmv5 = "versatile-pb.dtb"
+
+# Functionality flags
+KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
+KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}"
+KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
+KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
+KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.1.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.1.bb
index 3fd9a0e2a9..818c650368 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.1.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.1.bb
@@ -8,7 +8,7 @@ require recipes-kernel/linux/linux-yocto.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion_6.1.inc
-LINUX_VERSION ?= "6.1.51"
+LINUX_VERSION ?= "6.1.55"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -17,8 +17,8 @@ DEPENDS += "openssl-native util-linux-native"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
-SRCREV_machine ?= "526b5bf2f74f881356bce8b44840dc86785fb7bf"
-SRCREV_meta ?= "f845a7f37d7114230d6609e2bd630070f2f6cd9b"
+SRCREV_machine ?= "644e73fa089ade30c0db7bd54be960be92546ba2"
+SRCREV_meta ?= "943c6fe5dac329c7e1c30d602788f409e692b3a8"
PV = "${LINUX_VERSION}+git"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.4.bb
index c3a7a16342..c81f230139 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.4.bb
@@ -8,7 +8,7 @@ require recipes-kernel/linux/linux-yocto.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion_6.4.inc
-LINUX_VERSION ?= "6.4.14"
+LINUX_VERSION ?= "6.4.16"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -17,8 +17,8 @@ DEPENDS += "openssl-native util-linux-native"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
-SRCREV_machine ?= "800df81fa2a8bacd6487a19115b3f89f34620249"
-SRCREV_meta ?= "f12230a4c8a427af642be8196828a23f4562bc86"
+SRCREV_machine ?= "ef91ff6a4be36037808af1ca786fdd557f265a1d"
+SRCREV_meta ?= "13efe44fe9dd2626eaf6552288ea31770ec71cf1"
PV = "${LINUX_VERSION}+git"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.5.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.5.bb
new file mode 100644
index 0000000000..5325fbad53
--- /dev/null
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.5.bb
@@ -0,0 +1,33 @@
+KBRANCH ?= "v6.5/standard/tiny/base"
+
+LINUX_KERNEL_TYPE = "tiny"
+KCONFIG_MODE = "--allnoconfig"
+
+require recipes-kernel/linux/linux-yocto.inc
+
+# CVE exclusions
+include recipes-kernel/linux/cve-exclusion_6.5.inc
+
+LINUX_VERSION ?= "6.5.5"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
+
+DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
+DEPENDS += "openssl-native util-linux-native"
+
+KMETA = "kernel-meta"
+KCONF_BSP_AUDIT_LEVEL = "2"
+
+SRCREV_machine ?= "5b2595c3e0dce2912b32ef69aaaacd52cd0e720c"
+SRCREV_meta ?= "06cf3d8830fda41ff271eec7da6e3c8425df790f"
+
+PV = "${LINUX_VERSION}+git"
+
+SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
+ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.5;destsuffix=${KMETA};protocol=https"
+
+COMPATIBLE_MACHINE = "^(qemux86|qemux86-64|qemuarm64|qemuarm|qemuarmv5)$"
+
+# Functionality flags
+KERNEL_FEATURES = ""
+
+KERNEL_DEVICETREE:qemuarmv5 = "versatile-pb.dtb"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_6.1.bb b/poky/meta/recipes-kernel/linux/linux-yocto_6.1.bb
index 3798ae3db9..a942d0c540 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_6.1.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_6.1.bb
@@ -18,25 +18,25 @@ KBRANCH:qemux86-64 ?= "v6.1/standard/base"
KBRANCH:qemuloongarch64 ?= "v6.1/standard/base"
KBRANCH:qemumips64 ?= "v6.1/standard/mti-malta64"
-SRCREV_machine:qemuarm ?= "8c81de99a4b9f69345873b06077f9d4e1321298e"
-SRCREV_machine:qemuarm64 ?= "526b5bf2f74f881356bce8b44840dc86785fb7bf"
-SRCREV_machine:qemuloongarch64 ?= "526b5bf2f74f881356bce8b44840dc86785fb7bf"
-SRCREV_machine:qemumips ?= "733cb5842aeac106f5606df4da7c64a180f0c500"
-SRCREV_machine:qemuppc ?= "526b5bf2f74f881356bce8b44840dc86785fb7bf"
-SRCREV_machine:qemuriscv64 ?= "526b5bf2f74f881356bce8b44840dc86785fb7bf"
-SRCREV_machine:qemuriscv32 ?= "526b5bf2f74f881356bce8b44840dc86785fb7bf"
-SRCREV_machine:qemux86 ?= "526b5bf2f74f881356bce8b44840dc86785fb7bf"
-SRCREV_machine:qemux86-64 ?= "526b5bf2f74f881356bce8b44840dc86785fb7bf"
-SRCREV_machine:qemumips64 ?= "1c11fe963667e9380725bef0650aeaea8544ea8b"
-SRCREV_machine ?= "526b5bf2f74f881356bce8b44840dc86785fb7bf"
-SRCREV_meta ?= "f845a7f37d7114230d6609e2bd630070f2f6cd9b"
+SRCREV_machine:qemuarm ?= "cf771f6d6bc0344e048bdbf7d23d3aacbe3556d0"
+SRCREV_machine:qemuarm64 ?= "644e73fa089ade30c0db7bd54be960be92546ba2"
+SRCREV_machine:qemuloongarch64 ?= "644e73fa089ade30c0db7bd54be960be92546ba2"
+SRCREV_machine:qemumips ?= "4be1dcc270e6ddeea513af01d91ea3b48ec82470"
+SRCREV_machine:qemuppc ?= "644e73fa089ade30c0db7bd54be960be92546ba2"
+SRCREV_machine:qemuriscv64 ?= "644e73fa089ade30c0db7bd54be960be92546ba2"
+SRCREV_machine:qemuriscv32 ?= "644e73fa089ade30c0db7bd54be960be92546ba2"
+SRCREV_machine:qemux86 ?= "644e73fa089ade30c0db7bd54be960be92546ba2"
+SRCREV_machine:qemux86-64 ?= "644e73fa089ade30c0db7bd54be960be92546ba2"
+SRCREV_machine:qemumips64 ?= "aa0e978c979b84d620ad21132cfdbbf857be3878"
+SRCREV_machine ?= "644e73fa089ade30c0db7bd54be960be92546ba2"
+SRCREV_meta ?= "943c6fe5dac329c7e1c30d602788f409e692b3a8"
# set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
# get the <version>/base branch, which is pure upstream -stable, and the same
# meta SRCREV as the linux-yocto-standard builds. Select your version using the
# normal PREFERRED_VERSION settings.
BBCLASSEXTEND = "devupstream:target"
-SRCREV_machine:class-devupstream ?= "c2cbfe5f51227dfe6ef7be013f0d56a32c040faa"
+SRCREV_machine:class-devupstream ?= "d23900f974e0fb995b36ef47283a5aa74ca25f51"
PN:class-devupstream = "linux-yocto-upstream"
KBRANCH:class-devupstream = "v6.1/base"
@@ -45,7 +45,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA
SRC_URI += "file://0001-perf-cpumap-Make-counter-as-unsigned-ints.patch"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "6.1.51"
+LINUX_VERSION ?= "6.1.55"
PV = "${LINUX_VERSION}+git"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_6.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto_6.4.bb
index e959b2a88f..5afd7b1ba7 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_6.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_6.4.bb
@@ -18,25 +18,25 @@ KBRANCH:qemux86-64 ?= "v6.4/standard/base"
KBRANCH:qemuloongarch64 ?= "v6.4/standard/base"
KBRANCH:qemumips64 ?= "v6.4/standard/mti-malta64"
-SRCREV_machine:qemuarm ?= "0194f88dc4ac51536f9bb2bf751d256bc5fe5d69"
-SRCREV_machine:qemuarm64 ?= "800df81fa2a8bacd6487a19115b3f89f34620249"
-SRCREV_machine:qemuloongarch64 ?= "800df81fa2a8bacd6487a19115b3f89f34620249"
-SRCREV_machine:qemumips ?= "179200623f949dde2afeca75943700a2cd0684ab"
-SRCREV_machine:qemuppc ?= "800df81fa2a8bacd6487a19115b3f89f34620249"
-SRCREV_machine:qemuriscv64 ?= "800df81fa2a8bacd6487a19115b3f89f34620249"
-SRCREV_machine:qemuriscv32 ?= "800df81fa2a8bacd6487a19115b3f89f34620249"
-SRCREV_machine:qemux86 ?= "800df81fa2a8bacd6487a19115b3f89f34620249"
-SRCREV_machine:qemux86-64 ?= "800df81fa2a8bacd6487a19115b3f89f34620249"
-SRCREV_machine:qemumips64 ?= "4ce1ab0a4fce437802b0f7305289b036ffb4ccae"
-SRCREV_machine ?= "800df81fa2a8bacd6487a19115b3f89f34620249"
-SRCREV_meta ?= "f12230a4c8a427af642be8196828a23f4562bc86"
+SRCREV_machine:qemuarm ?= "871a4762a8f85550898b8992b29d5e1dbf60a459"
+SRCREV_machine:qemuarm64 ?= "ef91ff6a4be36037808af1ca786fdd557f265a1d"
+SRCREV_machine:qemuloongarch64 ?= "ef91ff6a4be36037808af1ca786fdd557f265a1d"
+SRCREV_machine:qemumips ?= "18bb71cbb388dd093c46d1777f607cfbf0d4c03b"
+SRCREV_machine:qemuppc ?= "ef91ff6a4be36037808af1ca786fdd557f265a1d"
+SRCREV_machine:qemuriscv64 ?= "ef91ff6a4be36037808af1ca786fdd557f265a1d"
+SRCREV_machine:qemuriscv32 ?= "ef91ff6a4be36037808af1ca786fdd557f265a1d"
+SRCREV_machine:qemux86 ?= "ef91ff6a4be36037808af1ca786fdd557f265a1d"
+SRCREV_machine:qemux86-64 ?= "ef91ff6a4be36037808af1ca786fdd557f265a1d"
+SRCREV_machine:qemumips64 ?= "5b9def2ea1065e44847b920c3a4185d0e5c22d58"
+SRCREV_machine ?= "ef91ff6a4be36037808af1ca786fdd557f265a1d"
+SRCREV_meta ?= "13efe44fe9dd2626eaf6552288ea31770ec71cf1"
# set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
# get the <version>/base branch, which is pure upstream -stable, and the same
# meta SRCREV as the linux-yocto-standard builds. Select your version using the
# normal PREFERRED_VERSION settings.
BBCLASSEXTEND = "devupstream:target"
-SRCREV_machine:class-devupstream ?= "babc8be398c3a0701e52582f93bfba946e9e5f8e"
+SRCREV_machine:class-devupstream ?= "ae4e4fc35b4258626644c162a702e2bce2b79190"
PN:class-devupstream = "linux-yocto-upstream"
KBRANCH:class-devupstream = "v6.4/base"
@@ -44,7 +44,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.4;destsuffix=${KMETA};protocol=https"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "6.4.14"
+LINUX_VERSION ?= "6.4.16"
PV = "${LINUX_VERSION}+git"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_6.5.bb b/poky/meta/recipes-kernel/linux/linux-yocto_6.5.bb
new file mode 100644
index 0000000000..b9ed4be898
--- /dev/null
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_6.5.bb
@@ -0,0 +1,72 @@
+KBRANCH ?= "v6.5/standard/base"
+
+require recipes-kernel/linux/linux-yocto.inc
+
+# CVE exclusions
+include recipes-kernel/linux/cve-exclusion.inc
+include recipes-kernel/linux/cve-exclusion_6.5.inc
+
+# board specific branches
+KBRANCH:qemuarm ?= "v6.5/standard/arm-versatile-926ejs"
+KBRANCH:qemuarm64 ?= "v6.5/standard/qemuarm64"
+KBRANCH:qemumips ?= "v6.5/standard/mti-malta32"
+KBRANCH:qemuppc ?= "v6.5/standard/qemuppc"
+KBRANCH:qemuriscv64 ?= "v6.5/standard/base"
+KBRANCH:qemuriscv32 ?= "v6.5/standard/base"
+KBRANCH:qemux86 ?= "v6.5/standard/base"
+KBRANCH:qemux86-64 ?= "v6.5/standard/base"
+KBRANCH:qemuloongarch64 ?= "v6.5/standard/base"
+KBRANCH:qemumips64 ?= "v6.5/standard/mti-malta64"
+
+SRCREV_machine:qemuarm ?= "619d7b434792c35b501914d481eb3178d87b9f60"
+SRCREV_machine:qemuarm64 ?= "5b2595c3e0dce2912b32ef69aaaacd52cd0e720c"
+SRCREV_machine:qemuloongarch64 ?= "5b2595c3e0dce2912b32ef69aaaacd52cd0e720c"
+SRCREV_machine:qemumips ?= "622b9a83a51276528ddd38ec9c239b7ef7eac1ee"
+SRCREV_machine:qemuppc ?= "5b2595c3e0dce2912b32ef69aaaacd52cd0e720c"
+SRCREV_machine:qemuriscv64 ?= "5b2595c3e0dce2912b32ef69aaaacd52cd0e720c"
+SRCREV_machine:qemuriscv32 ?= "5b2595c3e0dce2912b32ef69aaaacd52cd0e720c"
+SRCREV_machine:qemux86 ?= "5b2595c3e0dce2912b32ef69aaaacd52cd0e720c"
+SRCREV_machine:qemux86-64 ?= "5b2595c3e0dce2912b32ef69aaaacd52cd0e720c"
+SRCREV_machine:qemumips64 ?= "72909f2a89c5bcd4e8ab9aaab280eb961b4e1282"
+SRCREV_machine ?= "5b2595c3e0dce2912b32ef69aaaacd52cd0e720c"
+SRCREV_meta ?= "06cf3d8830fda41ff271eec7da6e3c8425df790f"
+
+# set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
+# get the <version>/base branch, which is pure upstream -stable, and the same
+# meta SRCREV as the linux-yocto-standard builds. Select your version using the
+# normal PREFERRED_VERSION settings.
+BBCLASSEXTEND = "devupstream:target"
+SRCREV_machine:class-devupstream ?= "2309983b0ac063045af3b01b0251dfd118d45449"
+PN:class-devupstream = "linux-yocto-upstream"
+KBRANCH:class-devupstream = "v6.5/base"
+
+SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH};protocol=https \
+ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.5;destsuffix=${KMETA};protocol=https"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
+LINUX_VERSION ?= "6.5.5"
+
+PV = "${LINUX_VERSION}+git"
+
+KMETA = "kernel-meta"
+KCONF_BSP_AUDIT_LEVEL = "1"
+
+KERNEL_DEVICETREE:qemuarmv5 = "versatile-pb.dtb"
+
+COMPATIBLE_MACHINE = "^(qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemuppc64|qemumips|qemumips64|qemux86-64|qemuriscv64|qemuriscv32|qemuloongarch64)$"
+
+# Functionality flags
+KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc"
+KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}"
+KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc cfg/net/mdio.scc"
+KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}"
+KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
+KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}"
+KERNEL_FEATURES:append:powerpc =" arch/powerpc/powerpc-debug.scc"
+KERNEL_FEATURES:append:powerpc64 =" arch/powerpc/powerpc-debug.scc"
+KERNEL_FEATURES:append:powerpc64le =" arch/powerpc/powerpc-debug.scc"
+
+INSANE_SKIP:kernel-vmlinux:qemuppc64 = "textrel"
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools_2.13.10.bb b/poky/meta/recipes-kernel/lttng/lttng-tools_2.13.11.bb
index 20e6375a9b..44415fbf2d 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-tools_2.13.10.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools_2.13.11.bb
@@ -39,7 +39,7 @@ SRC_URI = "https://lttng.org/files/lttng-tools/lttng-tools-${PV}.tar.bz2 \
file://0001-compat-Define-off64_t-as-off_t-on-linux.patch \
"
-SRC_URI[sha256sum] = "e5d1095ec1322565f38f149346f71967496c281eacc51ec5c77994b850e7d335"
+SRC_URI[sha256sum] = "ac5baeef9fa690936b1ca01ecd1742da762c2c08511ff1b4e923938d94d0f979"
inherit autotools ptest pkgconfig useradd python3-dir manpages systemd
diff --git a/poky/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb b/poky/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb
index 8f4fdd76bf..b630a402ff 100644
--- a/poky/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb
+++ b/poky/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb
@@ -4,7 +4,6 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://modutils.sh;beginline=3;endline=3;md5=b2dccaa94b3629a08bfb4f983cad6f89"
SRC_URI = "file://modutils.sh"
-PR = "r7"
S = "${WORKDIR}"
diff --git a/poky/meta/recipes-kernel/perf/perf.bb b/poky/meta/recipes-kernel/perf/perf.bb
index e22a1bebb2..675acfaf26 100644
--- a/poky/meta/recipes-kernel/perf/perf.bb
+++ b/poky/meta/recipes-kernel/perf/perf.bb
@@ -9,7 +9,6 @@ HOMEPAGE = "https://perf.wiki.kernel.org/index.php/Main_Page"
LICENSE = "GPL-2.0-only"
-PR = "r9"
PACKAGECONFIG ??= "python tui libunwind libtraceevent"
PACKAGECONFIG[dwarf] = ",NO_DWARF=1"
diff --git a/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2023.05.03.bb b/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2023.09.01.bb
index cd3f52fc76..c09600ecbe 100644
--- a/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2023.05.03.bb
+++ b/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2023.09.01.bb
@@ -5,7 +5,7 @@ LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c"
SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz"
-SRC_URI[sha256sum] = "f254d08ab3765aeae2b856222e11a95d44aef519a6663877c71ef68fae4c8c12"
+SRC_URI[sha256sum] = "26d4c2a727cc59239b84735aad856b7c7d0b04e30aa5c235c4f7f47f5f053491"
inherit bin_package allarch
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-lib/0001-global.h-move-__STRING-macro-outside-PIC-ifdef-block.patch b/poky/meta/recipes-multimedia/alsa/alsa-lib/0001-global.h-move-__STRING-macro-outside-PIC-ifdef-block.patch
new file mode 100644
index 0000000000..9a7ba0d847
--- /dev/null
+++ b/poky/meta/recipes-multimedia/alsa/alsa-lib/0001-global.h-move-__STRING-macro-outside-PIC-ifdef-block.patch
@@ -0,0 +1,52 @@
+From 10bd599970acc71c92f85eb08943eb8d3d702a9c Mon Sep 17 00:00:00 2001
+From: Michael Opdenacker <michael.opdenacker@bootlin.com>
+Date: Wed, 6 Sep 2023 15:16:44 +0200
+Subject: [PATCH] global.h: move __STRING() macro outside !PIC ifdef block
+
+From: Jaroslav Kysela <perex@perex.cz>
+
+It solves the musl libc compilation issue.
+
+control.c: In function 'snd_ctl_open_conf':
+../../include/global.h:98:36: warning: implicit declaration of function '__STRING' [-Wimplicit-function-declaratio]
+ 98 | #define SND_DLSYM_VERSION(version) __STRING(version)
+ | ^~~~~~~~
+
+Fixes: https://github.com/alsa-project/alsa-lib/issues/350
+Upstream-Status: Backport [https://github.com/alsa-project/alsa-lib/commit/10bd599970acc71c92f85eb08943eb8d3d702a9c]
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+---
+ include/global.h | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/include/global.h b/include/global.h
+index dfe9bc2b..3ecaeee8 100644
+--- a/include/global.h
++++ b/include/global.h
+@@ -51,6 +51,11 @@ const char *snd_asoundlib_version(void);
+ #define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
+ #endif
+
++#ifndef __STRING
++/** \brief Return 'x' argument as string */
++#define __STRING(x) #x
++#endif
++
+ #ifdef PIC /* dynamic build */
+
+ /** \hideinitializer \brief Helper macro for #SND_DLSYM_BUILD_VERSION. */
+@@ -71,11 +76,6 @@ struct snd_dlsym_link {
+
+ extern struct snd_dlsym_link *snd_dlsym_start;
+
+-#ifndef __STRING
+-/** \brief Return 'x' argument as string */
+-#define __STRING(x) #x
+-#endif
+-
+ /** \hideinitializer \brief Helper macro for #SND_DLSYM_BUILD_VERSION. */
+ #define __SND_DLSYM_VERSION(prefix, name, version) _ ## prefix ## name ## version
+ /**
+--
+2.34.1
+
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.9.bb b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.10.bb
index d482e27683..83bc6877d2 100644
--- a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.9.bb
+++ b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.10.bb
@@ -9,8 +9,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \
file://src/socket.c;md5=285675b45e83f571c6a957fe4ab79c93;beginline=9;endline=24 \
"
-SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "dc9c643fdc4ccfd0572cc685858dd41e08afb583f30460b317e4188275f615b2"
+SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2 \
+ file://0001-global.h-move-__STRING-macro-outside-PIC-ifdef-block.patch \
+ "
+SRC_URI[sha256sum] = "c86a45a846331b1b0aa6e6be100be2a7aef92efd405cf6bac7eef8174baa920e"
inherit autotools pkgconfig
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.9.bb b/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.10.bb
index 073e3b0900..f4fd284db8 100644
--- a/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.9.bb
+++ b/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.10.bb
@@ -8,7 +8,7 @@ LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4"
SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "374f6833bfd77d0a4675e4aa2bfb79defe850e5a46a5d4542a45962f4b9e272a"
+SRC_URI[sha256sum] = "9c21e3f01ff00baa758df17e867cd36e24ebb41a6bec49737e99105e16f2ae97"
# Something went wrong at upstream tarballing
inherit allarch
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-add-define-to-compile-with-glibc-2.38.patch b/poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-add-define-to-compile-with-glibc-2.38.patch
deleted file mode 100644
index 8c23fb2cec..0000000000
--- a/poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-add-define-to-compile-with-glibc-2.38.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From a610f4c21b083c0f9cf62ad2251dfadc98abb50e Mon Sep 17 00:00:00 2001
-From: Rudi Heitbaum <rudi@heitbaum.com>
-Date: Sat, 22 Jul 2023 15:36:09 +0000
-Subject: [PATCH] alsactl: add define to compile with glibc 2.38
-
-strlcat and strlcpy have been added to glibc 2.38.
-update the defines to use the glibc versions, and not conflict with
-string.h.
-
-ref:
-- https://sourceware.org/git/?p=glibc.git;a=commit;h=454a20c8756c9c1d55419153255fc7692b3d2199
-
-Fixes: https://github.com/alsa-project/alsa-utils/pull/225
-Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-
-Upstream-Status: Backport [https://github.com/alsa-project/alsa-utils/commit/d6a71bfbde9e1710743d3a446c6ea3b41c45234e]
----
- alsactl/init_sysdeps.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/alsactl/init_sysdeps.c b/alsactl/init_sysdeps.c
-index 3aca1b4..f09b1ae 100644
---- a/alsactl/init_sysdeps.c
-+++ b/alsactl/init_sysdeps.c
-@@ -18,6 +18,7 @@
- */
-
- #if defined(__GLIBC__) && !(defined(__UCLIBC__) && defined(__USE_BSD))
-+#if !(__GLIBC_PREREQ(2, 38))
- static size_t strlcpy(char *dst, const char *src, size_t size)
- {
- size_t bytes = 0;
-@@ -60,4 +61,5 @@ static size_t strlcat(char *dst, const char *src, size_t size)
- *q = '\0';
- return bytes;
- }
-+#endif /* !(__GLIBC_PREREQ(2, 38)) */
- #endif /* __GLIBC__ */
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-fix-compilation-when-building-in-a-subdir.patch b/poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-fix-compilation-when-building-in-a-subdir.patch
deleted file mode 100644
index 3b3fe5345a..0000000000
--- a/poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-fix-compilation-when-building-in-a-subdir.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 44636a7c5862538def0d2fac074772cc39a22a15 Mon Sep 17 00:00:00 2001
-From: Rudi Heitbaum <rudi@heitbaum.com>
-Date: Tue, 16 May 2023 02:27:59 +1000
-Subject: [PATCH] alsactl: fix compilation when building in a subdir
-
-Fixes: 613372d
-Fixes: cff2d1c
-
-Compile errors when building in a subdir:
-alsactl/alsactl.c:33:10: fatal error: os_compat.h: No such file or directory
- 33 | #include "os_compat.h"
- | ^~~~~~~~~~~~~
-alsactl/lock.c:34:10: fatal error: os_compat.h: No such file or directory
- 34 | #include "os_compat.h"
- | ^~~~~~~~~~~~~
-
-Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
-Upstream-Status: Submitted [https://github.com/alsa-project/alsa-utils/pull/213]
----
- alsactl/Makefile.am | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/alsactl/Makefile.am b/alsactl/Makefile.am
-index 80dba69d..fb32c4f3 100644
---- a/alsactl/Makefile.am
-+++ b/alsactl/Makefile.am
-@@ -9,6 +9,8 @@ EXTRA_DIST=alsactl.1 alsactl_init.xml
-
- AM_CFLAGS = -D_GNU_SOURCE
-
-+AM_CPPFLAGS = -I$(top_srcdir)/include
-+
- alsactl_SOURCES=alsactl.c state.c lock.c utils.c init_parse.c init_ucm.c \
- daemon.c monitor.c clean.c info.c
-
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils/0001-nhlt-nhlt-dmic-info.c-include-sys-types.h.patch b/poky/meta/recipes-multimedia/alsa/alsa-utils/0001-nhlt-nhlt-dmic-info.c-include-sys-types.h.patch
new file mode 100644
index 0000000000..0ebf98b41e
--- /dev/null
+++ b/poky/meta/recipes-multimedia/alsa/alsa-utils/0001-nhlt-nhlt-dmic-info.c-include-sys-types.h.patch
@@ -0,0 +1,31 @@
+From 35a3382f3818d29b60f4c888e338189a4d93d0e5 Mon Sep 17 00:00:00 2001
+From: Michael Opdenacker <michael.opdenacker@bootlin.com>
+Date: Tue, 19 Sep 2023 11:47:50 +0200
+Subject: [PATCH] nhlt/nhlt-dmic-info.c: include sys/types.h
+
+To fix an issue compiling with the musl C library:
+nhlt-dmic-info.c: error: unknown type name 'u_int8_t'
+
+https://github.com/alsa-project/alsa-utils/issues/238
+
+Upstream-Status: Backport [https://github.com/alsa-project/alsa-utils/commit/0925ad7f09b2dc77015784f9ac2f5e34dd0dd5c3]
+Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
+---
+ nhlt/nhlt-dmic-info.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/nhlt/nhlt-dmic-info.c b/nhlt/nhlt-dmic-info.c
+index 3f6c64d..331555a 100644
+--- a/nhlt/nhlt-dmic-info.c
++++ b/nhlt/nhlt-dmic-info.c
+@@ -33,6 +33,7 @@
+ #include <fcntl.h>
+ #include <getopt.h>
+ #include <sys/stat.h>
++#include <sys/types.h>
+ #include <arpa/inet.h>
+
+ int debug = 0;
+--
+2.34.1
+
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils/0001-topology.c-include-locale.h.patch b/poky/meta/recipes-multimedia/alsa/alsa-utils/0001-topology.c-include-locale.h.patch
new file mode 100644
index 0000000000..e1c7470356
--- /dev/null
+++ b/poky/meta/recipes-multimedia/alsa/alsa-utils/0001-topology.c-include-locale.h.patch
@@ -0,0 +1,31 @@
+From d8a8a9affd5726827ef3995652248595b4a8c87e Mon Sep 17 00:00:00 2001
+From: Michael Opdenacker <michael.opdenacker@bootlin.com>
+Date: Tue, 19 Sep 2023 11:27:46 +0200
+Subject: [PATCH] topology.c: include locale.h
+
+To fix an issue compiling with the musl C library:
+topology.c: error: 'LC_ALL' undeclared
+
+https://github.com/alsa-project/alsa-utils/issues/239
+
+Upstream-Status: Backport [https://github.com/alsa-project/alsa-utils/commit/8c229270f6bae83b705a03714c46067a7aa57b02]
+Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
+---
+ topology/topology.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/topology/topology.c b/topology/topology.c
+index 1840ffe..5d03a8b 100644
+--- a/topology/topology.c
++++ b/topology/topology.c
+@@ -32,6 +32,7 @@
+ #include <sys/stat.h>
+ #include <getopt.h>
+ #include <assert.h>
++#include <locale.h>
+
+ #include <alsa/asoundlib.h>
+ #include <alsa/topology.h>
+--
+2.34.1
+
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.9.bb b/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.10.bb
index af28f5468f..4e5ed8dfa0 100644
--- a/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.9.bb
+++ b/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.10.bb
@@ -25,10 +25,10 @@ PACKAGECONFIG[manpages] = "--enable-xmlto, --disable-xmlto, xmlto-native docbook
# alsa-utils specified in SRC_URI due to alsa-utils-scripts recipe
SRC_URI = "https://www.alsa-project.org/files/pub/utils/alsa-utils-${PV}.tar.bz2 \
- file://0001-alsactl-fix-compilation-when-building-in-a-subdir.patch \
- file://0001-alsactl-add-define-to-compile-with-glibc-2.38.patch \
- "
-SRC_URI[sha256sum] = "e7623d4525595f92e11ce25ee9a97f2040a14c6e4dcd027aa96e06cbce7817bd"
+ file://0001-topology.c-include-locale.h.patch \
+ file://0001-nhlt-nhlt-dmic-info.c-include-sys-types.h.patch \
+ "
+SRC_URI[sha256sum] = "104b62ec7f02a7ce16ca779f4815616df1cc21933503783a9107b5944f83063a"
# On build machines with python-docutils (not python3-docutils !!) installed
# rst2man (not rst2man.py) is detected and compile fails with
@@ -57,6 +57,7 @@ ALSA_UTILS_PKGS = "\
alsa-utils-alsaloop \
alsa-utils-alsaucm \
alsa-utils-scripts \
+ alsa-utils-nhltdmicinfo \
"
PACKAGES += "${ALSA_UTILS_PKGS}"
@@ -82,6 +83,7 @@ FILES:alsa-utils-scripts = "${sbindir}/alsaconf \
${sbindir}/alsa-info.sh \
${sbindir}/alsabat-test.sh \
"
+FILES:alsa-utils-nhltdmicinfo = "${bindir}/nhlt-dmic-info"
SUMMARY:alsa-utils-alsabat = "Command-line sound tester for ALSA sound card driver"
SUMMARY:alsa-utils-alsatplg = "Converts topology text files into binary format for kernel"
@@ -98,6 +100,7 @@ SUMMARY:alsa-utils-aseqdump = "Shows the events received at an ALSA sequence
SUMMARY:alsa-utils-alsaloop = "ALSA PCM loopback utility"
SUMMARY:alsa-utils-alsaucm = "ALSA Use Case Manager"
SUMMARY:alsa-utils-scripts = "Shell scripts that show help info and create ALSA configuration files"
+SUMMARY:alsa-utils-nhltdmicinfo = "Dumps microphone array information from ACPI NHLT table"
RRECOMMENDS:alsa-utils-alsactl = "alsa-states"
diff --git a/poky/meta/recipes-multimedia/liba52/liba52_0.7.4.bb b/poky/meta/recipes-multimedia/liba52/liba52_0.7.4.bb
index f6bca4e730..7a3b4a43c8 100644
--- a/poky/meta/recipes-multimedia/liba52/liba52_0.7.4.bb
+++ b/poky/meta/recipes-multimedia/liba52/liba52_0.7.4.bb
@@ -7,7 +7,6 @@ LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
file://include/a52.h;beginline=1;endline=12;md5=81152ceb3562bf20a60d1b6018175dd1"
SECTION = "libs"
-PR = "r4"
inherit autotools
diff --git a/poky/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb b/poky/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb
index 178e1a9240..11674af379 100644
--- a/poky/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb
+++ b/poky/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb
@@ -7,7 +7,6 @@ LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=cf91718f59eb6a83d06dc7bcaf411132"
DEPENDS = "libogg"
-PR = "r1"
SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.bz2 \
file://no-docs.patch"
diff --git a/poky/meta/recipes-multimedia/libtiff/tiff_4.5.1.bb b/poky/meta/recipes-multimedia/libtiff/tiff_4.6.0.bb
index 6171a538e5..49984f1125 100644
--- a/poky/meta/recipes-multimedia/libtiff/tiff_4.5.1.bb
+++ b/poky/meta/recipes-multimedia/libtiff/tiff_4.6.0.bb
@@ -8,9 +8,10 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=a3e32d664d6db1386b4689c8121531c3"
CVE_PRODUCT = "libtiff"
-SRC_URI = "http://download.osgeo.org/libtiff/tiff-${PV}.tar.gz"
+SRC_URI = "http://download.osgeo.org/libtiff/tiff-${PV}.tar.gz \
+ "
-SRC_URI[sha256sum] = "d7f38b6788e4a8f5da7940c5ac9424f494d8a79eba53d555f4a507167dca5e2b"
+SRC_URI[sha256sum] = "88b3979e6d5c7e32b50d7ec72fb15af724f6ab2cbf7e10880c360a77e4b5d99a"
# exclude betas
UPSTREAM_CHECK_REGEX = "tiff-(?P<pver>\d+(\.\d+)+).tar"
diff --git a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
index 08a608bab1..2245a73392 100644
--- a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
+++ b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -257,7 +257,7 @@ RDEPENDS:pulseaudio-server += "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaud
# pulseaudio-module-console-kit is built whenever dbus is enabled by PACKAGECONFIG
# but consolekit depends on libx11 and is available only for DISTRO with x11 in DISTRO_FEATURES
-RDEPENDS:pulseaudio-module-console-kit =+ "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d)}"
+RDEPENDS:pulseaudio-module-console-kit =+ "${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit x11', 'consolekit', '', d)}"
RDEPENDS:pulseaudio-misc += "pulseaudio-module-cli-protocol-unix"
FILES:${PN}-module-alsa-card += "${datadir}/pulseaudio/alsa-mixer"
diff --git a/poky/meta/recipes-multimedia/webp/libwebp_1.3.1.bb b/poky/meta/recipes-multimedia/webp/libwebp_1.3.2.bb
index b9e763b08e..63b0fd9a6c 100644
--- a/poky/meta/recipes-multimedia/webp/libwebp_1.3.1.bb
+++ b/poky/meta/recipes-multimedia/webp/libwebp_1.3.2.bb
@@ -14,7 +14,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6e8dee932c26f2dab503abf70c96d8bb \
file://PATENTS;md5=c6926d0cb07d296f886ab6e0cc5a85b7"
SRC_URI = "http://downloads.webmproject.org/releases/webp/${BP}.tar.gz"
-SRC_URI[sha256sum] = "b3779627c2dfd31e3d8c4485962c2efe17785ef975e2be5c8c0c9e6cd3c4ef66"
+SRC_URI[sha256sum] = "2a499607df669e40258e53d0ade8035ba4ec0175244869d1025d460562aa09b4"
UPSTREAM_CHECK_URI = "http://downloads.webmproject.org/releases/webp/index.html"
diff --git a/poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb b/poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb
index 49bf30ee5e..90734b6bd0 100644
--- a/poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb
+++ b/poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb
@@ -7,7 +7,6 @@ LIC_FILES_CHKSUM = "file://session;endline=3;md5=f8a5c5b9c279e52dc094d10e11c2be6
SECTION = "x11"
RDEPENDS:${PN} = "formfactor matchbox-theme-sato matchbox-panel-2 matchbox-desktop matchbox-session gconf"
-PR = "r30"
# This package is architecture specific because the session script is modified
# based on the machine architecture.
diff --git a/poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb b/poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb
index 6866a4d738..3f735e072b 100644
--- a/poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb
+++ b/poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb
@@ -5,7 +5,6 @@
SUMMARY = "Sato desktop"
DESCRIPTION = "Packagegroups provide a convenient mechanism of bundling a collection of packages."
HOMEPAGE = "https://www.yoctoproject.org/"
-PR = "r33"
PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/poky/meta/recipes-sato/puzzles/puzzles_git.bb b/poky/meta/recipes-sato/puzzles/puzzles_git.bb
index 04338a603b..d7089ef95d 100644
--- a/poky/meta/recipes-sato/puzzles/puzzles_git.bb
+++ b/poky/meta/recipes-sato/puzzles/puzzles_git.bb
@@ -10,7 +10,7 @@ REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI = "git://git.tartarus.org/simon/puzzles.git;branch=main;protocol=https"
UPSTREAM_CHECK_COMMITS = "1"
-SRCREV = "b6c842a28cf6597df063fcff35079c3e3982381e"
+SRCREV = "2d9e414ee316b37143954150016e8f4f18358497"
PE = "2"
PV = "0.0+git"
diff --git a/poky/meta/recipes-sato/shutdown-desktop/shutdown-desktop.bb b/poky/meta/recipes-sato/shutdown-desktop/shutdown-desktop.bb
index 4bb896fc7b..766f574b25 100644
--- a/poky/meta/recipes-sato/shutdown-desktop/shutdown-desktop.bb
+++ b/poky/meta/recipes-sato/shutdown-desktop/shutdown-desktop.bb
@@ -4,7 +4,6 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
SRC_URI = "file://shutdown.desktop"
-PR = "r1"
S = "${WORKDIR}"
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.40.5.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.40.5.bb
index a0c97aa593..0c54f202ca 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk_2.40.5.bb
+++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.40.5.bb
@@ -87,6 +87,10 @@ EXTRA_OECMAKE = " \
-DUSE_GTK4=ON \
"
+# Unless DEBUG_BUILD is enabled, pass -g1 to massively reduce the size of the
+# debug symbols (4.3GB to 700M at time of writing)
+DEBUG_FLAGS:append = "${@oe.utils.vartrue('DEBUG_BUILD', '', ' -g1', d)}"
+
# Javascript JIT is not supported on ARC
EXTRA_OECMAKE:append:arc = " -DENABLE_JIT=OFF "
# By default 25-bit "medium" calls are used on ARC
diff --git a/poky/meta/recipes-support/appstream/appstream/0001-meson-do-not-rely-on-an-exe-wrapper.patch b/poky/meta/recipes-support/appstream/appstream/0001-meson-do-not-rely-on-an-exe-wrapper.patch
new file mode 100644
index 0000000000..d4f2951e7a
--- /dev/null
+++ b/poky/meta/recipes-support/appstream/appstream/0001-meson-do-not-rely-on-an-exe-wrapper.patch
@@ -0,0 +1,36 @@
+From 79bf322768990b28c29a9d907edcca52ff48e0b8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
+Date: Wed, 26 Jul 2023 23:21:10 +0400
+Subject: meson: do not rely on an exe wrapper
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
+
+Upstream-Status: Backport [https://github.com/ximion/appstream/commit/79bf322768990b28c29a9d907edcca52ff48e0b8]
+---
+ data/meson.build | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/data/meson.build b/data/meson.build
+index aea0cb25..ec0e434f 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -7,6 +7,13 @@ install_data('its/metainfo.its',
+ install_data('its/metainfo.loc',
+ install_dir: join_paths(get_option('datadir'), 'gettext', 'its'))
+
++# Do not rely on an exe wrapper for rel-info, use the system one in that case
++if meson.is_cross_build()
++ dependency('appstream', version: '>=' + as_version, native: true,
++ not_found_message: 'Native appstream required for cross-building')
++ ascli_exe = find_program('appstreamcli')
++endif
++
+ # NOTE: We do not translate the release notes on purpose here.
+ # If you do want to give translators a chance to translate them,
+ # ascli news-to-metainfo needs to produce a temporary file to translate
+--
+2.41.0
+
diff --git a/poky/meta/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch b/poky/meta/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch
new file mode 100644
index 0000000000..9cbfaca82f
--- /dev/null
+++ b/poky/meta/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch
@@ -0,0 +1,31 @@
+From 6ab00a4279823829a9b82dc9e4d055da4de88c6e Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Mon, 12 Dec 2022 15:42:42 +0100
+Subject: [PATCH] remove hardcoded path
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+
+Dont include hardcoded path. This fixes:
+| cc1: error: include location "/usr/include" is unsafe for cross-compilation [-Werror=poison-system-directories]
+
+Upstream-Status: Inappropriate [oe-specific]
+---
+ meson.build | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index fd0e3373..2f273ada 100644
+--- a/meson.build
++++ b/meson.build
+@@ -124,7 +124,7 @@ if get_option ('gir')
+ dependency('gobject-introspection-1.0', version: '>=1.56')
+ endif
+
+-stemmer_inc_dirs = include_directories(['/usr/include'])
++stemmer_inc_dirs = include_directories([''])
+ if get_option('stemming')
+ stemmer_lib = cc.find_library('stemmer', required: true)
+ if not cc.has_header('libstemmer.h')
+--
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/appstream/appstream_0.16.2.bb b/poky/meta/recipes-support/appstream/appstream_0.16.3.bb
index 240e63a1bd..bde679e256 100644
--- a/meta-openembedded/meta-oe/recipes-support/appstream/appstream_0.16.2.bb
+++ b/poky/meta/recipes-support/appstream/appstream_0.16.3.bb
@@ -22,28 +22,24 @@ DEPENDS = " \
inherit meson gobject-introspection gettext gtk-doc pkgconfig vala
GIR_MESON_OPTION = "gir"
+GTKDOC_MESON_OPTION = "apidocs"
-SRC_URI = "https://www.freedesktop.org/software/appstream/releases/AppStream-${PV}.tar.xz"
-SRC_URI:append:class-target = " file://0001-fix-crosscompile.patch"
-SRC_URI[sha256sum] = "f9cb80bd388fbf06be268afa7f2d65863c85d605ad874b905094f3982d03f232"
+SRC_URI = " \
+ https://www.freedesktop.org/software/appstream/releases/AppStream-${PV}.tar.xz \
+ file://0001-remove-hardcoded-path.patch \
+ file://0001-meson-do-not-rely-on-an-exe-wrapper.patch \
+"
+SRC_URI[sha256sum] = "081c917646e94d7221c9e4aae54dacda95a27c607fa93cd8e6344a2b318b98b1"
S = "${WORKDIR}/AppStream-${PV}"
-PACKAGECONFIG ?= "stemming ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd"
PACKAGECONFIG[stemming] = "-Dstemming=true,-Dstemming=false,libstemmer"
FILES:${PN} += "${datadir}"
-EXTRA_OEMESON:append = " -Ddocs=false"
-EXTRA_OEMESON:class-target += "--cross-file=${WORKDIR}/meson-${PN}.cross"
-
-do_write_config:append:class-target() {
- cat >${WORKDIR}/meson-${PN}.cross <<EOF
-[binaries]
-appstreamcli = '${STAGING_BINDIR_NATIVE}/appstreamcli'
-EOF
-}
+EXTRA_OEMESON += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=true', '-Dvapi=false', d)}"
BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-support/atk/at-spi2-core_2.48.3.bb b/poky/meta/recipes-support/atk/at-spi2-core_2.50.0.bb
index 17b0e39a5e..57958fb7f5 100644
--- a/poky/meta/recipes-support/atk/at-spi2-core_2.48.3.bb
+++ b/poky/meta/recipes-support/atk/at-spi2-core_2.50.0.bb
@@ -11,7 +11,7 @@ MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "37316df43ca9989ce539d54cf429a768c28bb38a0b34950beadd0421827edf55"
+SRC_URI[sha256sum] = "e9f5a8c8235c9dd963b2171de9120301129c677dde933955e1df618b949c4adc"
DEPENDS = " \
dbus \
diff --git a/poky/meta/recipes-support/boost/boost-1.82.0.inc b/poky/meta/recipes-support/boost/boost-1.83.0.inc
index 39d3c9ce5d..da275f18c1 100644
--- a/poky/meta/recipes-support/boost/boost-1.82.0.inc
+++ b/poky/meta/recipes-support/boost/boost-1.83.0.inc
@@ -12,7 +12,7 @@ BOOST_MAJ = "${@"_".join(d.getVar("PV").split(".")[0:2])}"
BOOST_P = "boost_${BOOST_VER}"
SRC_URI = "https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/${BOOST_P}.tar.bz2"
-SRC_URI[sha256sum] = "a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6"
+SRC_URI[sha256sum] = "6478edfe2f3305127cffe8caf73ea0176c53769f4bf1585be237eb30798c3b8e"
UPSTREAM_CHECK_URI = "http://www.boost.org/users/download/"
UPSTREAM_CHECK_REGEX = "release/(?P<pver>.*)/source/"
diff --git a/poky/meta/recipes-support/boost/boost-build-native_1.82.0.bb b/poky/meta/recipes-support/boost/boost-build-native_1.83.0.bb
index dcfb65e3d6..a345bac499 100644
--- a/poky/meta/recipes-support/boost/boost-build-native_1.82.0.bb
+++ b/poky/meta/recipes-support/boost/boost-build-native_1.83.0.bb
@@ -7,7 +7,7 @@ LICENSE = "BSL-1.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
SRC_URI = "git://github.com/boostorg/build;protocol=https;branch=master"
-SRCREV = "9f488e003a568dffe0caed05d86ed6f1a8f8c7f3"
+SRCREV = "8d86b9a85407d73d6e8c631771f18c2a237d2d71"
PE = "1"
UPSTREAM_CHECK_GITTAGREGEX = "boost-(?P<pver>(\d+(\.\d+)+))"
diff --git a/poky/meta/recipes-support/boost/boost_1.82.0.bb b/poky/meta/recipes-support/boost/boost_1.83.0.bb
index 4b580d078b..4b580d078b 100644
--- a/poky/meta/recipes-support/boost/boost_1.82.0.bb
+++ b/poky/meta/recipes-support/boost/boost_1.83.0.bb
diff --git a/poky/meta/recipes-support/curl/curl/disable-tests b/poky/meta/recipes-support/curl/curl/disable-tests
index b687b2bb76..fdac795662 100644
--- a/poky/meta/recipes-support/curl/curl/disable-tests
+++ b/poky/meta/recipes-support/curl/curl/disable-tests
@@ -21,6 +21,7 @@
# This test is scanning the source tree
1222
# These CRL tests need --libcurl option to be enabled
+1279
1400
1401
1402
diff --git a/poky/meta/recipes-support/curl/curl/run-ptest b/poky/meta/recipes-support/curl/curl/run-ptest
index 2c74c58f5d..8f9c20f34d 100644
--- a/poky/meta/recipes-support/curl/curl/run-ptest
+++ b/poky/meta/recipes-support/curl/curl/run-ptest
@@ -1,6 +1,6 @@
#!/bin/sh
cd tests
-{ ./runtests.pl -a -n -s || echo "FAIL: curl" ; } | sed \
+{ ./runtests.pl -a -n -s -j4 !flaky || echo "FAIL: curl" ; } | sed \
-e 's|\([^ ]* *\) \([^ ]* *\)...OK|PASS: \1 \2|' \
-e 's|\([^ ]* *\) \([^ ]* *\)...FAILED|FAIL: \1 \2|' \
-e 's/Warning: test[0-9]\+ not present in tests\/data\/Makefile.inc//'
diff --git a/poky/meta/recipes-support/curl/curl_8.2.1.bb b/poky/meta/recipes-support/curl/curl_8.3.0.bb
index 068486a352..646ac01914 100644
--- a/poky/meta/recipes-support/curl/curl_8.2.1.bb
+++ b/poky/meta/recipes-support/curl/curl_8.3.0.bb
@@ -14,7 +14,7 @@ SRC_URI = " \
file://run-ptest \
file://disable-tests \
"
-SRC_URI[sha256sum] = "dd322f6bd0a20e6cebdfd388f69e98c3d183bed792cf4713c8a7ef498cba4894"
+SRC_URI[sha256sum] = "376d627767d6c4f05105ab6d497b0d9aba7111770dd9d995225478209c37ea63"
# Curl has used many names over the years...
CVE_PRODUCT = "haxx:curl haxx:libcurl curl:curl curl:libcurl libcurl:libcurl daniel_stenberg:curl"
@@ -24,21 +24,26 @@ inherit autotools pkgconfig binconfig multilib_header ptest
# Entropy source for random PACKAGECONFIG option
RANDOM ?= "/dev/urandom"
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} libidn openssl proxy random threaded-resolver verbose zlib"
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} aws basic-auth bearer-auth digest-auth negotiate-auth libidn openssl proxy random threaded-resolver verbose zlib"
PACKAGECONFIG:class-native = "ipv6 openssl proxy random threaded-resolver verbose zlib"
PACKAGECONFIG:class-nativesdk = "ipv6 openssl proxy random threaded-resolver verbose zlib"
# 'ares' and 'threaded-resolver' are mutually exclusive
PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver"
+PACKAGECONFIG[aws] = "--enable-aws,--disable-aws"
+PACKAGECONFIG[basic-auth] = "--enable-basic-auth,--disable-basic-auth"
+PACKAGECONFIG[bearer-auth] = "--enable-bearer-auth,--disable-bearer-auth"
PACKAGECONFIG[brotli] = "--with-brotli,--without-brotli,brotli"
PACKAGECONFIG[builtinmanual] = "--enable-manual,--disable-manual"
# Don't use this in production
PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
PACKAGECONFIG[dict] = "--enable-dict,--disable-dict,"
+PACKAGECONFIG[digest-auth] = "--enable-digest-auth,--disable-digest-auth"
PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher,"
PACKAGECONFIG[imap] = "--enable-imap,--disable-imap,"
PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+PACKAGECONFIG[kerberos-auth] = "--enable-kerberos-auth,--disable-kerberos-auth"
PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5"
PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap"
PACKAGECONFIG[ldaps] = "--enable-ldaps,--disable-ldaps,openldap"
@@ -47,6 +52,7 @@ PACKAGECONFIG[libidn] = "--with-libidn2,--without-libidn2,libidn2"
PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2"
PACKAGECONFIG[mbedtls] = "--with-mbedtls=${STAGING_DIR_TARGET},--without-mbedtls,mbedtls"
PACKAGECONFIG[mqtt] = "--enable-mqtt,--disable-mqtt,"
+PACKAGECONFIG[negotiate-auth] = "--enable-negotiate-auth,--disable-negotiate-auth"
PACKAGECONFIG[nghttp2] = "--with-nghttp2,--without-nghttp2,nghttp2"
PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3,"
@@ -56,7 +62,6 @@ PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump"
PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp,"
PACKAGECONFIG[smb] = "--enable-smb,--disable-smb,"
PACKAGECONFIG[smtp] = "--enable-smtp,--disable-smtp,"
-PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss"
PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet,"
PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp,"
PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares"
@@ -67,11 +72,10 @@ PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd"
EXTRA_OECONF = " \
--disable-libcurl-option \
--disable-ntlm-wb \
- --enable-crypto-auth \
--with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \
--without-libpsl \
--enable-optimize \
- ${@'--without-ssl' if (bb.utils.filter('PACKAGECONFIG', 'gnutls mbedtls nss openssl', d) == '') else ''} \
+ ${@'--without-ssl' if (bb.utils.filter('PACKAGECONFIG', 'gnutls mbedtls openssl', d) == '') else ''} \
"
do_install:append:class-target() {
@@ -85,14 +89,18 @@ do_install:append:class-target() {
}
do_compile_ptest() {
- oe_runmake test
- oe_runmake -C ${B}/tests/server
+ oe_runmake -C ${B}/tests
}
do_install_ptest() {
cat ${WORKDIR}/disable-tests >> ${S}/tests/data/DISABLED
rm -f ${B}/tests/configurehelp.pm
cp -rf ${B}/tests ${D}${PTEST_PATH}
+ rm -f ${D}${PTEST_PATH}/tests/libtest/.libs/libhostname.la
+ rm -f ${D}${PTEST_PATH}/tests/libtest/libhostname.la
+ mv ${D}${PTEST_PATH}/tests/libtest/.libs/* ${D}${PTEST_PATH}/tests/libtest/
+ mv ${D}${PTEST_PATH}/tests/libtest/libhostname.so ${D}${PTEST_PATH}/tests/libtest/.libs/
+ mv ${D}${PTEST_PATH}/tests/http/clients/.libs/* ${D}${PTEST_PATH}/tests/http/clients/
cp -rf ${S}/tests ${D}${PTEST_PATH}
find ${D}${PTEST_PATH}/ -type f -name Makefile.am -o -name Makefile.in -o -name Makefile -delete
install -d ${D}${PTEST_PATH}/src
diff --git a/poky/meta/recipes-support/db/db_5.3.28.bb b/poky/meta/recipes-support/db/db_5.3.28.bb
index c5427f54eb..a99d5cea62 100644
--- a/poky/meta/recipes-support/db/db_5.3.28.bb
+++ b/poky/meta/recipes-support/db/db_5.3.28.bb
@@ -18,7 +18,6 @@ RCONFLICTS:${PN} = "db3"
CVE_PRODUCT = "oracle_berkeley_db berkeley_db"
CVE_VERSION = "11.2.${PV}"
-PR = "r1"
PE = "1"
SRC_URI = "https://download.oracle.com/berkeley-db/db-${PV}.tar.gz"
diff --git a/poky/meta/recipes-support/debianutils/debianutils_5.8.bb b/poky/meta/recipes-support/debianutils/debianutils_5.13.bb
index fb17d2d24f..915277b42c 100644
--- a/poky/meta/recipes-support/debianutils/debianutils_5.8.bb
+++ b/poky/meta/recipes-support/debianutils/debianutils_5.13.bb
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://debian/copyright;md5=74765f57ae5dd2b10ffbc39528d98753
SRC_URI = "git://salsa.debian.org/debian/debianutils.git;protocol=https;branch=master \
"
-SRCREV = "69116b856177ceb270908103b5776f897d2863c3"
+SRCREV = "d49a78eb264c1b2ad3d0d6de8e1fb776bda9c943"
inherit autotools update-alternatives
diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_244.bb b/poky/meta/recipes-support/diffoscope/diffoscope_249.bb
index c17bd81f5b..b679103694 100644
--- a/poky/meta/recipes-support/diffoscope/diffoscope_244.bb
+++ b/poky/meta/recipes-support/diffoscope/diffoscope_249.bb
@@ -12,7 +12,7 @@ PYPI_PACKAGE = "diffoscope"
inherit pypi setuptools3
-SRC_URI[sha256sum] = "8bee8bbb144cdb7ddfa21886d5ce1822220139241c9a53def09b4adc3340db93"
+SRC_URI[sha256sum] = "bc4d8cb3198025013784ef7e3fa61b7a642de39e5b790c45d7c29d153306fbdd"
RDEPENDS:${PN} += "\
binutils \
diff --git a/poky/meta/recipes-support/enchant/enchant2_2.5.0.bb b/poky/meta/recipes-support/enchant/enchant2_2.6.1.bb
index f5ec1ef522..a3510a8705 100644
--- a/poky/meta/recipes-support/enchant/enchant2_2.5.0.bb
+++ b/poky/meta/recipes-support/enchant/enchant2_2.6.1.bb
@@ -12,7 +12,7 @@ DEPENDS = "glib-2.0 groff-native"
inherit autotools pkgconfig github-releases
SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/enchant-${PV}.tar.gz"
-SRC_URI[sha256sum] = "149e224cdd2ca825d874639578b6246e07f37d5b8f3970658a377a1ef46f2e15"
+SRC_URI[sha256sum] = "f24e12469137ae1d03140bb9032a47a5947c36f4d1e2f12b929061005eb15279"
GITHUB_BASE_URI = "https://github.com/AbiWord/enchant/releases"
diff --git a/poky/meta/recipes-support/libevent/libevent/0004-test-retriable-tests-are-marked-failed-only-when-all-a.patch b/poky/meta/recipes-support/libevent/libevent/0004-test-retriable-tests-are-marked-failed-only-when-all-a.patch
index ea17e876ea..26b707ad31 100644
--- a/poky/meta/recipes-support/libevent/libevent/0004-test-retriable-tests-are-marked-failed-only-when-all-a.patch
+++ b/poky/meta/recipes-support/libevent/libevent/0004-test-retriable-tests-are-marked-failed-only-when-all-a.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] test: retriable tests are marked failed only when all
Fixes: #1193
-Upstream-Status: Accepted
+Upstream-Status: Backport [https://github.com/libevent/libevent/commit/3daebf308a01b4b2d3fb867be3d6631f7b5a2dbb]
Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com>
---
diff --git a/poky/meta/recipes-support/libnl/libnl_3.7.0.bb b/poky/meta/recipes-support/libnl/libnl_3.8.0.bb
index 38d21ffe9c..28b2e5733e 100644
--- a/poky/meta/recipes-support/libnl/libnl_3.7.0.bb
+++ b/poky/meta/recipes-support/libnl/libnl_3.8.0.bb
@@ -18,7 +18,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/${BPN}${@d.getVar('PV').replace('.','_')}
file://run-ptest \
"
-SRC_URI[sha256sum] = "9fe43ccbeeea72c653bdcf8c93332583135cda46a79507bfd0a483bb57f65939"
+SRC_URI[sha256sum] = "bb726c6d7a08b121978d73ff98425bf313fa26a27a331d465e4f1d7ec5b838c6"
GITHUB_BASE_URI = "https://github.com/thom311/${BPN}/releases"
UPSTREAM_CHECK_REGEX = "releases/tag/libnl(?P<pver>.+)"
diff --git a/poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb b/poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb
index 5abeced30b..a605857c60 100644
--- a/poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb
+++ b/poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb
@@ -40,7 +40,7 @@ do_write_config:append:class-target() {
ntlm_auth = '${bindir}/ntlm_auth'
EOF
}
-EXTRA_OEMESON += "--cross-file ${WORKDIR}/soup.cross"
+EXTRA_OEMESON:append:class-target = " --cross-file ${WORKDIR}/soup.cross"
EXTRA_OEMESON += "-Dvapi=disabled -Dtls_check=false"
diff --git a/poky/meta/recipes-support/libsoup/libsoup_3.4.2.bb b/poky/meta/recipes-support/libsoup/libsoup_3.4.2.bb
index ad86c890a1..3996ae6836 100644
--- a/poky/meta/recipes-support/libsoup/libsoup_3.4.2.bb
+++ b/poky/meta/recipes-support/libsoup/libsoup_3.4.2.bb
@@ -37,7 +37,7 @@ do_write_config:append:class-target() {
ntlm_auth = '${bindir}/ntlm_auth'
EOF
}
-EXTRA_OEMESON += "--cross-file ${WORKDIR}/soup.cross"
+EXTRA_OEMESON:append:class-target = " --cross-file ${WORKDIR}/soup.cross"
EXTRA_OEMESON += "-Dvapi=disabled -Dtls_check=false"
# Disable the test suites
diff --git a/poky/meta/recipes-support/nghttp2/nghttp2_1.55.1.bb b/poky/meta/recipes-support/nghttp2/nghttp2_1.56.0.bb
index 1be9a348ae..a011bd4536 100644
--- a/poky/meta/recipes-support/nghttp2/nghttp2_1.55.1.bb
+++ b/poky/meta/recipes-support/nghttp2/nghttp2_1.56.0.bb
@@ -8,7 +8,7 @@ SRC_URI = "\
${GITHUB_BASE_URI}/download/v${PV}/nghttp2-${PV}.tar.xz \
file://0001-fetch-ocsp-response-use-python3.patch \
"
-SRC_URI[sha256sum] = "19490b7c8c2ded1cf7c3e3a54ef4304e3a7876ae2d950d60a81d0dc6053be419"
+SRC_URI[sha256sum] = "65eee8021e9d3620589a4a4e91ce9983d802b5229f78f3313770e13f4d2720e9"
inherit cmake manpages python3native github-releases
PACKAGECONFIG[manpages] = ""
diff --git a/poky/meta/recipes-support/sqlite/sqlite3_3.43.0.bb b/poky/meta/recipes-support/sqlite/sqlite3_3.43.1.bb
index 84644a09e6..93146358c7 100644
--- a/poky/meta/recipes-support/sqlite/sqlite3_3.43.0.bb
+++ b/poky/meta/recipes-support/sqlite/sqlite3_3.43.1.bb
@@ -4,7 +4,7 @@ LICENSE = "PD"
LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66"
SRC_URI = "http://www.sqlite.org/2023/sqlite-autoconf-${SQLITE_PV}.tar.gz"
-SRC_URI[sha256sum] = "49008dbf3afc04d4edc8ecfc34e4ead196973034293c997adad2f63f01762ae1"
+SRC_URI[sha256sum] = "39116c94e76630f22d54cd82c3cea308565f1715f716d1b2527f1c9c969ba4d9"
CVE_STATUS[CVE-2023-36191] = "disputed: The error is a bug. It has been fixed upstream. But it is not a vulnerability"
diff --git a/poky/meta/recipes-support/vim/vim.inc b/poky/meta/recipes-support/vim/vim.inc
index 8a399cd802..5f55f590e6 100644
--- a/poky/meta/recipes-support/vim/vim.inc
+++ b/poky/meta/recipes-support/vim/vim.inc
@@ -10,7 +10,7 @@ DEPENDS = "ncurses gettext-native"
RSUGGESTS:${PN} = "diffutils"
LICENSE = "Vim"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6b30ea4fa660c483b619924bc709ef99"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d1a651ab770b45d41c0f8cb5a8ca930e"
SRC_URI = "git://github.com/vim/vim.git;branch=master;protocol=https \
file://disable_acl_header_check.patch \
@@ -19,8 +19,8 @@ SRC_URI = "git://github.com/vim/vim.git;branch=master;protocol=https \
file://no-path-adjust.patch \
"
-PV .= ".1664"
-SRCREV = "8154e642aa476e1a5d3de66c34e8289845b2b797"
+PV .= ".1894"
+SRCREV = "e5f7cd0a60d0eeab84f7aeb35c13d3af7e50072e"
# Do not consider .z in x.y.z, as that is updated with every commit
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+)\.0"
diff --git a/poky/scripts/lib/devtool/build_sdk.py b/poky/scripts/lib/devtool/build_sdk.py
index 6fe02fff2a..1cd4831d2b 100644
--- a/poky/scripts/lib/devtool/build_sdk.py
+++ b/poky/scripts/lib/devtool/build_sdk.py
@@ -13,7 +13,7 @@ import shutil
import errno
import sys
import tempfile
-from devtool import exec_build_env_command, setup_tinfoil, parse_recipe, DevtoolError
+from devtool import DevtoolError
from devtool import build_image
logger = logging.getLogger('devtool')
diff --git a/poky/scripts/lib/devtool/standard.py b/poky/scripts/lib/devtool/standard.py
index 88a6ecd421..d53fb81007 100644
--- a/poky/scripts/lib/devtool/standard.py
+++ b/poky/scripts/lib/devtool/standard.py
@@ -587,6 +587,7 @@ def _extract_source(srctree, keep_temp, devbranch, sync, config, basepath, works
preservestampfile = os.path.join(sstate_manifests, 'preserve-stamps')
with open(preservestampfile, 'w') as f:
f.write(d.getVar('STAMP'))
+ tinfoil.modified_files()
try:
if is_kernel_yocto:
# We need to generate the kernel config
diff --git a/poky/scripts/lib/devtool/upgrade.py b/poky/scripts/lib/devtool/upgrade.py
index e015a85982..487308912f 100644
--- a/poky/scripts/lib/devtool/upgrade.py
+++ b/poky/scripts/lib/devtool/upgrade.py
@@ -429,6 +429,7 @@ def _create_new_recipe(newpv, md5, sha256, srcrev, srcbranch, srcsubdir_old, src
newvalues["LIC_FILES_CHKSUM"] = newlicchksum
_add_license_diff_to_recipe(fullpath, license_diff)
+ tinfoil.modified_files()
try:
rd = tinfoil.parse_recipe_file(fullpath, False)
except bb.tinfoil.TinfoilCommandFailed as e:
diff --git a/poky/scripts/lib/recipetool/append.py b/poky/scripts/lib/recipetool/append.py
index 88ed8c5f01..9dbb1cc4b5 100644
--- a/poky/scripts/lib/recipetool/append.py
+++ b/poky/scripts/lib/recipetool/append.py
@@ -300,6 +300,7 @@ def appendfile(args):
perms = '0755'
install = {args.newfile: (args.targetpath, perms)}
oe.recipeutils.bbappend_recipe(rd, args.destlayer, {args.newfile: sourcepath}, install, wildcardver=args.wildcard_version, machine=args.machine)
+ tinfoil.modified_files()
return 0
else:
if alternative_pns:
@@ -355,7 +356,7 @@ def appendsrc(args, files, rd, extralines=None):
copyfiles[newfile] = srcfile
oe.recipeutils.bbappend_recipe(rd, args.destlayer, copyfiles, None, wildcardver=args.wildcard_version, machine=args.machine, extralines=extralines)
-
+ tinfoil.modified_files()
def appendsrcfiles(parser, args):
recipedata = _parse_recipe(args.recipe, tinfoil)
diff --git a/poky/scripts/lib/recipetool/create.py b/poky/scripts/lib/recipetool/create.py
index f9dda3c2f9..143bc63e9d 100644
--- a/poky/scripts/lib/recipetool/create.py
+++ b/poky/scripts/lib/recipetool/create.py
@@ -901,6 +901,7 @@ def create_recipe(args):
f.write('%s\n' % line)
lastline = line
log_info_cond('Recipe %s has been created; further editing may be required to make it fully functional' % outfile, args.devtool)
+ tinfoil.modified_files()
if tempsrc:
if args.keep_temp:
diff --git a/poky/scripts/lib/recipetool/setvar.py b/poky/scripts/lib/recipetool/setvar.py
index f8e2ee75fb..b5ad335cae 100644
--- a/poky/scripts/lib/recipetool/setvar.py
+++ b/poky/scripts/lib/recipetool/setvar.py
@@ -49,6 +49,7 @@ def setvar(args):
for patch in patches:
for line in patch:
sys.stdout.write(line)
+ tinfoil.modified_files()
return 0
diff --git a/poky/scripts/lib/wic/plugins/source/bootimg-partition.py b/poky/scripts/lib/wic/plugins/source/bootimg-partition.py
index 8956162205..58f6da72c3 100644
--- a/poky/scripts/lib/wic/plugins/source/bootimg-partition.py
+++ b/poky/scripts/lib/wic/plugins/source/bootimg-partition.py
@@ -112,7 +112,7 @@ class BootimgPartitionPlugin(SourcePlugin):
# Use a custom configuration for extlinux.conf
extlinux_conf = custom_cfg
logger.debug("Using custom configuration file "
- "%s for extlinux.cfg", configfile)
+ "%s for extlinux.conf", configfile)
else:
raise WicError("configfile is specified but failed to "
"get it from %s." % configfile)
diff --git a/poky/scripts/postinst-intercepts/update_mandb b/poky/scripts/postinst-intercepts/update_mandb
index a061bb426a..f91bafdb11 100644
--- a/poky/scripts/postinst-intercepts/update_mandb
+++ b/poky/scripts/postinst-intercepts/update_mandb
@@ -9,6 +9,8 @@ set -eu
CONFIG=$(mktemp --tmpdir update-mandb.XXXXX)
sed "s:\(\s\)/:\1$D/:g" $D${sysconfdir}/man_db.conf > $CONFIG
+mkdir -p $D${localstatedir}/cache/man/
+
PSEUDO_UNLOAD=1 ${binprefix}qemuwrapper -L $D $D${bindir}/mandb --config-file $CONFIG --create
rm -f $CONFIG
diff --git a/poky/scripts/runqemu b/poky/scripts/runqemu
index 3a17033268..0668e12e61 100755
--- a/poky/scripts/runqemu
+++ b/poky/scripts/runqemu
@@ -1467,6 +1467,19 @@ to your build configuration.
for entry in self.get('SERIAL_CONSOLES').split(' '):
self.kernel_cmdline_script += ' console=%s' %entry.split(';')[1]
+ # We always wants ttyS0 and ttyS1 in qemu machines (see SERIAL_CONSOLES).
+ # If no serial or serialtcp options were specified, only ttyS0 is created
+ # and sysvinit shows an error trying to enable ttyS1:
+ # INIT: Id "S1" respawning too fast: disabled for 5 minutes
+ serial_num = len(re.findall("-serial", self.qemu_opt))
+
+ # Assume if the user passed serial options, they know what they want
+ # and pad to two devices
+ if serial_num == 1:
+ self.qemu_opt += " -serial null"
+ elif serial_num >= 2:
+ return
+
if self.serialstdio == True or self.nographic == True:
self.qemu_opt += " -serial mon:stdio"
else:
@@ -1478,10 +1491,6 @@ to your build configuration.
self.qemu_opt += " %s" % self.get("QB_SERIAL_OPT")
- # We always wants ttyS0 and ttyS1 in qemu machines (see SERIAL_CONSOLES).
- # If no serial or serialtcp options were specified, only ttyS0 is created
- # and sysvinit shows an error trying to enable ttyS1:
- # INIT: Id "S1" respawning too fast: disabled for 5 minutes
serial_num = len(re.findall("-serial", self.qemu_opt))
if serial_num < 2:
self.qemu_opt += " -serial null"