subtree updates

meta-security: 30e755c592..283a773f24:
  Armin Kuster (2):
        meta-security: Drop ${PYTHON_PN}
        openscap: update to tip to fix new build issue.

  Jeremy A. Puhlman (4):
        arpwatch: fix misspelling of PACKAGECONFIG
        aprwatch: Add path for sendmail
        Check for usrmerge before removing /usr/lib
        arpwatch: install man8 dir

  Kevin Hao (4):
        docs: dm-verity.txt: Fix a typo
        dm-verity: Adjust the image names according to the oe-core change
        dm-verity: Set the IMAGE_FSTYPES correctly when dm-verity is enabled
        dm-verity-image-initramfs: Set IMAGE_NAME_SUFFIX to empty

  Max Krummenacher (1):
        layer.conf: Update for the scarthgap release series

  Mingli Yu (1):
        python3-pyinotify: Make asyncore support optional for Python 3

poky: 7165c23237..110ee701b3:
  Alejandro Hernandez Samaniego (1):
        python3-manifest: Sync RDEPENDS with latest version

  Alexander Kanavin (11):
        meson: correct upstream version check (exclude pre-releases)
        cargo-c-native: convert from git fetcher to crate fetcher
        cargo-c-native: update 0.9.18 -> 0.9.30
        man-pages: use env from coreutils-native
        sdk-manual: correctly describe separate build-sysroots tasks in direct sdk workflows
        dev/ref-manual: document conf-summary.txt together with conf-notes.txt
        dev-manual: improve descriptions of 'bitbake -S printdiff'
        wayland: fix upstream version check by asking gitlab directly
        python3: correct upstream version check
        bitbake: bitbake: improve descriptions of '-S printdiff'
        selftest/sstatetests: run CDN check twice, ignoring errors the first time

  Alexandre Truong (1):
        oeqa/selftest/devtool: fix test_devtool_add_git_style2

  Anibal Limon (1):
        wic: bootimg-partition allow to set var to get boot files

  BELOUARGA Mohamed (1):
        ref-manual: add documentation of the variable SPDX_NAMESPACE_PREFIX

  Bartosz Golaszewski (1):
        linux-firmware: update to 20240312

  Baruch Siach (1):
        oeqa/selftest/overlayfs: test read-only rootfs

  Bruce Ashfield (16):
        linux-yocto/6.6: cfg: generic arm64
        linux-yocto/6.6: cfg: riscv XHCI
        linux-yocto/6.6: update to v6.6.21
        linux-yocto/6.6: update CVE exclusions (6.6.21)
        linux-yocto/6.6: cfg: drop unsettable options
        linux-yocto/6.6: drm/tilcdc: Set preferred depth
        linux-yocto/6.6: update to v6.6.22
        linux-yocto/6.6: update CVE exclusions (6.6.22)
        yocto-bsps: update to v6.6.21
        linux-yocto/6.6: cfg: genericarm64 platform/peripheral support
        linux-yocto/6.6: cfg: genericarm64 configuration updates
        linux-yocto/6.6: nftables: ptest and cleanup tweaks
        linux-yocto/6.6: update to v6.6.23
        linux-yocto/6.6: update CVE exclusions (6.6.23)
        linux-yocto-dev: bump to v6.9
        lttng-modules: update to v2.13.12

  Changqing Li (1):
        dnf: fix Exception handling for class ProcessLock

  Chen Qi (1):
        ovmf: set CVE_PRODUCT and CVE_VERSION

  Christian Taedcke (1):
        kernel-fitImage: only include valid compatible line

  Derek Erdmann (1):
        bitbake: fetch2/git: Install Git LFS in local repository config

  Enrico Jörns (3):
        cml1: remove needless check for write_taint attribute
        cml1: prompt location of updated .config after do_menuconfig()
        perf: fix TMPDIR contamination for recent mainline kernels

  Enrico Scholz (1):
        shadow: fix copydir operation with 'pseudo'

  Felix Moessbauer (1):
        bitbake: utils: better estimate number of available cpus

  Harish Sadineni (3):
        gcc: Oe-selftest failure analysis - fix for tcl errors
        gcc: Oe-selftest failure analysis - fix for vect-simd test failures
        binutils: gprofng - change use of bignum to use of bignint

  Jermain Horsman (1):
        bblayers/makesetup.py: Move git utility functions to oe.buildcfg module

  Joe Slater (1):
        systemd: enable mac based names in NamePolicy

  Jose Quaresma (5):
        go.bbclass: set GOPROXY
        elfutils: fix unused variable BUFFER_SIZE
        go: keep the patches in order
        go: upgrade 1.22.1 -> 1.22.2
        sstatesig: fix netrc.NetrcParseError exception

  Joshua Watt (4):
        sstatesig: Set hash server credentials from bitbake variables
        bitbake: siggen: Add support for hashserve credentials
        sstatesig: Warn on bad .netrc
        bitbake: bitbake-hashclient: Warn on bad .netrc

  Jörg Sommer (1):
        autotools: update link in comment for cross compiling

  Kevin Hao (1):
        image-live.bbclass: Adjust the default value for INITRD_LIVE

  Khem Raj (13):
        systemd: Check for directory before chmod'ing it
        llvm: Update to 18.1.1 release
        elfutils: Fix build break with clang
        glibc: Update to tip of 2.39 branch
        pam: Fix build with musl
        piglit: Switch to upstreamed patch for musl fix
        qemuriscv: Fix kbd and mouse emulation for qemuriscv64
        llvm: Upgrade to 18.1.2 bugfix release
        glibc: Repace aarch configure patch fix with a backport
        valgrind: Backport fixes from 3.22 branch
        tcl: Forward port skip logic for musl ptests
        readline: Apply patches from readline-8.2-patches
        mesa: Drop LLVM-17 patch

  Lee Chee Yang (1):
        migration-guides: add release notes for 4.0.17

  Marcel Ziswiler (1):
        mesa: enable imagination powervr support

  Markus Volk (11):
        mesa: fix opencl-spirv build
        vala: merge bb and inc files
        vala: fix for gtk4 prior to 4.14
        libsoup: enable vapi support
        gsettings-desktop-schemas: update 45.0 -> 46.0
        libadwaita: update 1.4.4 -> 1.5.0
        gtk4: update 4.12.5 -> 4.14.1
        systemd: disable mdns feature in resolved for zeroconf
        webkitgtk: update 2.42.5 -> 2.44.0
        gtk+3: disable wayland without opengl
        epiphany: update 45.3 -> 46.0

  Martin Jansa (2):
        contributor-guide: be more specific about meta-* trees
        pixman: explicitly disable openmp in native builds

  Max Krummenacher (1):
        git: git-replacement-native: depend on ca-certificate

  Michael Opdenacker (8):
        manuals: add initial stylechecks with Vale
        profile-manual: usage.rst: formatting fixes
        manuals: use "manual page(s)"
        profile-manual: usage.rst: fix reference to bug report
        documentation: Makefile: remove releases.rst in "make clean"
        migration-guides: draft notes for upcoming release 5.0
        manuals: add initial stylechecks with Vale
        profile-manual: usage.rst: further style improvements

  Oleh Matiusha (3):
        bash: improve reproducibility
        curl: improve reproducibility
        gmp: improve reproducibility

  Paul Barker (1):
        kernel: Fix check_oldest_kernel

  Peter A. Bigot (1):
        bitbake: lib/bb: support NO_COLOR

  Peter Kjellerstedt (1):
        util-linux: Set the license for util-linux-fcntl-lock to MIT

  Philippe Rivest (1):
        bitbake: bitbake: fetch2/git: Escape parentheses in git src name

  Quentin Schulz (1):
        u-boot: fix externalsrc not triggering do_configure on defconfig changes

  Randy MacLeod (1):
        gstreamer: upgrade 1.22.10 -> 1.22.11

  Richard Purdie (10):
        poky: Update to prepare for scarthgap release
        layer.conf: Prepare for release, drop nanbield LAYERSERIES
        expat: Upgrade 2.6.1 -> 2.6.2
        bash/flex: Ensure BUILD_FLAGS doesn't leak onto target
        uninative: Add pthread linking workaround
        poky-altcfg: Default to ipk packaging
        util-linux: Add missing MIT license
        util-linux: Add fcntl-lock
        run-postinsts: Add workaround for locking deadlock issue
        oeqa/sstatetests: Fix race issue

  Ross Burton (22):
        genericarm64.wks: reorder partitions
        genericarm64: clean up kernel modules and firmware
        linux-firmware: add support for deduplicating the firmware
        linux-firmware: set LICENSE field for -liquidui and -mellanox
        linux-firmware: remove pointless linux-firmware-gplv2-license package
        curl: improve run-ptest
        curl: increase test timeouts
        gstreamer1.0: improve test reliability
        linux-yocto: put COMPATIBLE_MACHINE first
        linux-yocto: implicitly track oe-core's kernel version for genericarm64
        bitbake: fetch2: handle URIs with single-valued query parameters
        python3_pip517: just count wheels in the directory, not subdirectories
        python-*: don't set PYPI_ARCHIVE_NAME and S when PYPI_PACKAGE is sufficient
        tcl: improve run-ptest
        tcl: skip I/O channel 46.1
        genericarm64: add qemuboot configuration
        classes/qemuboot: add depends on qemu-system-native and qemu-helper-native
        README.hardware.md: fix Markdown formatting
        README.hardware.md: add section on genericarm64 on qemu
        glib-2.0: skip a timing sensitive ptest
        openssl: fix crash on aarch64 if BTI is enabled but no Crypto instructions
        curl: fix quoting when disabling flaky tests

  Ryan Eatmon (1):
        perf: Fix QA error due to most recent kernel

  Sam Van Den Berge (1):
        shadow: don't install libattr.so.* when xattr not in DISTRO_FEATURES

  Sava Jakovljev (1):
        bitbake: bitbake-worker: Fix bug where umask 0 was not being applied to a task

  Simone Weiß (1):
        gnutls: upgrade 3.8.3 -> 3.8.4

  Soumya Sambu (1):
        go: Upgrade 1.22.0 -> 1.22.1

  Sourav Kumar Pramanik (1):
        libseccomp: Add back in PTESTS_SLOW list

  Sundeep KOKKONDA (1):
        rust: reproducibility issue fix with v1.75

  Tim Orling (2):
        coreutils: drop obsolete liberror-perl RDEPENDS
        liberror-perl: move to meta-perl

  Timon Bergelt (1):
        populate_sdk_ext.bbclass: only overwirte lsb string if uninative is used

  Tom Hochstein (2):
        bmaptool: Add bmap-tools runtime alias for compatibility
        toolchain-shar-relocate.sh: Add check for missing command 'file'

  Trevor Woerner (1):
        bmaptool: update to latest

  Ulrich Ölmann (1):
        ref-manual: classes: update description of class 'image_types'

  Viswanath Kraleti (1):
        bitbake: fetch2: Fix misleading "no output" msg

  Wang Mingyu (1):
        libadwaita: upgrade 1.4.3 -> 1.4.4

  William Lyu (1):
        openssh: Add a workaround for ICE on powerpc64le

  Xiangyu Chen (3):
        lttng-tools: skip kernel tests if no kernel modules present
        ltp: fix missing connectors tests in scenario_groups/default
        lttng-tools: fix rotation-destroy-flush test fails if no kernel module present

  Yang Xu (1):
        bitbake: bitbake-worker: Fix silent hang issue caused by unexpected stdout content

  Yannick Rodriguez (1):
        linux-firmware: Move Intel 9260 modules firmware.

  Yash Shinde (1):
        glibc: Skip 2 qemu tests that can hang in oe-selftest

  Yi Zhao (1):
        libtirpc: drop redundant PACKAGECONFIG

  Yoann Congal (6):
        cve-update-nvd2-native: Fix typo in comment
        cve-update-nvd2-native: Add an age threshold for incremental update
        cve-update-nvd2-native: Remove duplicated CVE_CHECK_DB_FILE definition
        cve-update-nvd2-native: nvd_request_next: Improve comment
        cve-update-nvd2-native: Fix CVE configuration update
        cve-update-nvd2-native: Remove rejected CVE from database

  Yogesh Tyagi (1):
        lttng-modules: fix v6.8+ build

  david d zuhn (1):
        bitbake: bitbake-worker: allow '=' in environment variable values

  lixiaoyong (3):
        kernel-module-split.bbclass: enhance objcopy command call for kernel compilation with llvm
        utils: enhance readelf command call with llvm
        oe/package: enhance objdump command call with llvm

meta-raspberrypi: 92a9b7a012..d072cc8a48:
  Khem Raj (9):
        linux-raspberrypi: Add recipe for 6.6 LTS kernel
        bluez-firmware-rpidistro: Upgrade to 1.2-9+rpt3 release
        linux-firmware-rpidistro: Upgrade to bookworm/20230625-2+rpt2
        raspberrypi-firmware: Fetch using git URI
        rpi-base: Add missing broadcom/ prefix to find DTB files
        rpi-default-versions: Switch default kernel to 6.6
        linux-raspberrypi_6.6: Bump to 6.6.22
        rpi-bootfiles: Resort to github APIs for tarballs
        raspberrypi-firmware: Revert to debian archive

  Martin Jansa (1):
        userland: fix installed-vs-shipped in multilib builds

  jdavidsson (1):
        rpi-base: Add hifiberry-dacplusadc overlay

meta-arm: aba9250494..d9e18ce792:
  Abdellatif El Khlifi (1):
        arm-bsp/corstone1000: add documentation disclaimer

  Alexander Sverdlin (1):
        optee-ftpm: fix EARLY_TA_PATHS passed to optee-os

  Ali Can Ozaslan (4):
        arm-bsp/trusted-firmware-m: corstone1000: update to 2.0
        arm-bsp/trusted-services: corstone1000: Client Id adjustments after TF-M 2.0
        arm/trusted-firmware-m: Change GNU Arm compiler version for TF-M 2.0
        arm-bsp/trusted-firmware-a: n1sdp: update to 2.10

  Anusmita Dutta Mazumder (2):
        arm-bsp/n1sdp: Update scp-firmware version
        arm-bsp/n1sdp: Update EDK2 version

  Bence Balogh (2):
        arm-bsp/u-boot: corstone1000: fix SMCCC_ARCH_FEATURES detection in the PSCI driver
        arm-bsp/trusted-firmware-a: corstone1000: remove SMCCC_ARCH_FEATURES discovery workaround

  Delane Brandy (1):
        arm/trusted-firmware-a: fix mbedTLS version

  Drew Reed (2):
        kas: Corstone-1000 kas files updated
        bsp: Corstone-1000 userguide updates

  Emekcan Aras (2):
        arm-bsp/trusted-firmware-a: Upgrade Corstone1000 to TF-A v2.10
        arm/trusted-services: Add recipe for block storage service

  Jon Mason (17):
        README: Add information about release process and mailing list
        arm/linux-yocto: remove unreferenced patch
        arm/optee: disable clang due to breakage
        arm-bsp/tf-a-tests: remove corstone1000 intermediate SHA
        arm-bsp/tfa-tests: move n1sdp patch to platform directory
        CI: update kas to 4.3.1
        arm/edk2: update to 202402
        arm/trusted-firmware-a: update to 2.10.2
        arm/sbsa-acs: update to 7.1.4
        arm/scp-firmware: update to v2.14.0
        arm-toolchain/gcc-arm-none-eabi: remove 11.2
        CI: reduce coverage of dev kernel
        arm/sbsa-acs: remove unreferenced patch
        arm-toolchain: correct UPSTREAM_CHECK
        Revert "arm/rmm: Add bitbake, include and patch file for RMM firmware"
        arm/sbsa-acs: use UPSTREAM_CHECK_URI for version checking
        arm: use UPSTREAM_CHECK_COMMITS for git versioned recipes

  Mathieu Poirier (1):
        arm/rmm: Add bitbake, include and patch file for RMM firmware

  Ross Burton (3):
        arm arm-bsp: enable patch-status warnings
        Add SECURITY.md
        CI: ignore netrc warnings caused by Kas

meta-openembedded: a0237019f5..a6bcdca5b4:
  Bartosz Golaszewski (1):
        libgpiod: update to v2.1.1

  Chad Rockey (1):
        cppzmq-dev expects /usr/lib/libzmq.a

  Changqing Li (1):
        postgresql: fix a runtime error

  Chen Qi (1):
        tcprelay: fix a minor cross compilation do_configure issue

  Christophe Chapuis (9):
        lvgl: fix typo in lv-conf.inc
        lvgl: install lv_conf.h
        lvgl: remove useless FILES include
        lvgl: cleanup sed instructions in lv-conf.inc
        lvgl: add more variables to lv-conf.inc
        lvgl: fix libdrm include
        lvgl: lv-conf.inc: generalize sed instructions
        lvgl: make libdrm include conditional
        lvgl: cleanup sed expression

  Dan McGregor (2):
        python3-pylint: Update to 3.1.0
        python3-pylint: Fix ptest failures

  Derek Straka (1):
        python3-dbus: re-add recipe with latest patches and add ptest

  Etienne Cordonnier (1):
        uutils-coreutils: upgrade 0.0.24 -> 0.0.25

  Fathi Boudra (1):
        python3-django: upgrade 4.2.10 -> 4.2.11

  Guðni Már Gilbert (2):
        python3-ecdsa: remove python3-pbr
        python3-ecdsa: cleanup DEPENDS

  Jaeyoon Jung (1):
        lvgl: Set resolution prior to buffer

  Joe Slater (1):
        googletest: allow for shared libraries

  Jose Quaresma (1):
        ostree: Upgrade 2024.4 -> 2024.5

  Jörg Sommer (3):
        sngrep: new recipe for ncurses SIP Messages flow viewer
        spandsp: new telephony DSP library
        bluez-tools: New recipe for bluez5 tools

  Kai Kang (2):
        Packages depends on libadwaita should require distro feature opengl
        thin-provisioning-tools: install binary to ${sbindir}

  Khem Raj (55):
        squid: Upgrade to 6.8
        libosinfo: Fix build with libxml2 v2.12
        xmlstarlet: Fix build with API breakage in libxml2 2.12
        mariadb: Fix build with libxml2 2.12 ABI changes
        libmusicbrainz: Update to tip of trunk
        gnome-commander: Fix build with taglib 2.0
        gnome-online-accounts: Fix build with libxml2 2.12
        vlc: Upgrade to 3.0.20
        netcf: Fix build with latest gnulib
        php: Upgrade to 8.2.16
        vlc: Fix build on 32bit x86
        libtinyxml2: Extend for nativesdk
        lvgl: Fix dev-elf build QA
        layer.conf: Update for the scarthgap release series
        dietsplash: Update and fix build with musl
        frr: Upgrade to latest on 9.1 stable
        frr: Fix build on newer musl
        layer.conf: Prepare for release, drop nanbield LAYERSERIES
        libcamera: Fix clang support patches
        plocate: Fix sys/stat.h and linux/stat.h conflicts with musl
        liburing: Upgrade to 2.5
        openflow: Delete recipe for 1.0
        openflow: Merge .inc into .bb
        openflow: Fix build with musl
        tracker-miners: Disable seccomp support on musl
        libcamera: Fix build on musl systems
        ipset: Update to 7.21
        ot-daemon: Update to tip of trunk
        ot-br-posix: Update to latest
        wpantund: Update to latest
        xfsdump: Fix build with musl >= 1.2.5
        xfstests: Fix build with musl >= 1.2.5
        net-snmp: Fix build with musl
        rdma-core: Fix build with musl >= 1.2.5
        ssmtp: Fix build with musl >= 1.2.5
        autofs: Fix build with musl >= 1.2.5
        lvm2: Fix build with musl 1.5.2+
        sanlock: Fix build with musl >= 1.2.5
        ndctl: Fix build issues seen with musl 1.2.5
        sdbus-c++-libsystemd: Upgrade to 255.4 release of systemd
        sdbus-c++,sdbus-c++-tools: Upgrade to 1.5.0 release
        wtmpdb: Upgrade to 0.11.0 release
        uftrace: Fix build with musl >= 1.2.5
        fio: Upgrade to 3.36+git
        i2cdev: Include libgen.h on musl
        directfb: Fix build with musl >= 1.2.5
        iwd: Upgrade to 2.16
        minifi-cpp: Fix libsodium build on aarch64/clang
        multipath-tools: Fix build with musl >= 1.2.5
        aer-inject: Fix build with latest musl
        aer-inject: Replace hardcoded /usr with ${prefix}
        microsoft-gsl: Disable disabled-macro-expansion warning as error on clang/musl
        meta-python-image-ptest: Use 2G RAM for some demanding tests
        python3-pydbus: Add bash dependency for ptests
        highway,libjxl: Remove -mfp16-format=ieee when using clang compiler

  Leon Anavi (7):
        python3-anyio: Upgrade 4.2.0 -> 4.3.0
        python3-httpx: Upgrade 0.26.0 -> 0.27.0
        python3-multidict: Upgrade 6.0.4 -> 6.0.5
        python3-croniter: Upgrade 2.0.1 -> 2.0.3
        python3-paho-mqtt: Upgrade 1.6.1 -> 2.0.0
        python3-typeguard: Upgrade 4.1.5 -> 4.2.1
        python3-cachetools: Upgrade 5.3.2 -> 5.3.3

  Marek Vasut (14):
        lvgl: Drop dialog-lvgl
        lvgl: Upgrade to LVGL 9 series
        lvgl: Rename lv-drivers.inc to lv-conf.inc
        lvgl: Add SDL2 fullscreen mode configuration option
        lvgl: Configure assertions based on DEBUG_BUILD
        lvgl: Default to XRGB8888 DRM framebuffer
        lvgl: Build shared library
        lvgl: Replace sed patching with real patches
        lvgl: Generate proper shared libraries with version suffix
        lvgl: Reinstate demo configuration settings
        lvgl: Update to 9.1.0
        lvgl: Drop superfluous ALLOW_EMPTY
        lvgl: Drop unnecessary PV append
        lvgl: Deduplicate PACKAGECONFIG into lv-conf

  Markus Volk (66):
        mozjs-115: fix reproducibility issue
        webp-pixbuf-loader: update 0.2.5 -> 0.2.7
        gnome-control-center: fix reproducibility issue
        gnome-disk-utility: fix reproducibility issue
        gnome-settings-daemon: fix reproducibility issue
        gnome-terminal: fix reproducibility issue
        libvncserver: fix reproducibility issue
        editorconfig-core-c: fix reproducibility issue
        crossguid: fix reproducibility issue
        waylandpp: fix reproducibility issue
        polkit: remove unneeded workaround
        gtk-vnc: fix reproducibility issue
        pipewire: update 1.0.3 -> 1.0.4
        mutter: remove zenity from rdepends
        mutter: update 45.4 -> 46.0
        gnome-shell: update 45.4 -> 46.0
        gnome-settings-daemon: update 45.0 -> 46.0
        gnome-software: update 45.3 -> 46.0
        evince: update 45.0 -> 46.0
        gnome-online-accounts: update 3.48.0 -> 3.50.0
        evolution-data-server: build with webkitgtk4
        folks: update 0.15.7 -> 0.15.8
        gnome-control-center: update 45.3 -> 46.0
        xdg-desktop-portal-gnome: update 45.1 -> 46.0
        tracker: update 3.6.0 -> 3.7.0
        tracker-miners: update 3.6.2 -> 3.7.0
        freerdp3: add recipe
        wireplumber: update 0.4.17 -> 0.5.0
        tecle: update 45.0 -> 46.0
        gnome-calculator: update 45.0.2 -> 46.0
        gnome-session: update 45.0 -> 46.0
        gnome-remote-desktop: update 45.1 -> 46.0
        gnome-calendar: update 45.1 -> 46.0
        libgweather4: update 4.4.0 -> 4.4.2
        gtksourceview5: update 5.10.0 -> 5.12.0
        gnome-control-center: use gcr4 variant
        libcloudproviders: update 0.3.5 -> 0.3.6
        gnome-themes-extra: build with gtk+3
        gtk4mm: add recipe
        gnome-system-monitor: update 45.0.1 -> 46.0
        gnome-boxes: update 45.0 -> 46.0
        eog: update 45.2 -> 45.3
        gparted: update 1.5.0 -> 1.6.0
        libgtop: update 2.41.1 -> 2.41.3
        gnome-bluetooth: update 42.8 -> 46.0
        gnome-text-editor: update 45.1 -> 46.0
        gnome-chess: update 43.2 -> 46.0
        gnome-disk-utility: update 45.0 -> 46.0
        gnome-shell-extensions: update 45.2 -> 46.0
        msgraph: add recipe
        gvfs: update 1.52.2 -> 1.54.0
        tracker-miners: drop buildpath from tracker-miner-fs-3
        evolution-data-server: disable tests and examples
        tracker-miners: fix reproducibility issue for landlock
        file-roller: update 43.1 -> 44.0
        apache2: preset mpm=prefork by default
        gnome-user-share: add recipe
        gnome-control-center: update 46.0 -> 46.0.1
        gdm: update 45.0.1 -> 46.0
        gnome-user-share: remove hardcoded paths
        ghex: update 45.1 -> 46.0
        libjxl: add recipe
        gnome-backgrounds: add runtime depenency for libjxl
        highway: add recipe
        webkitgtk3: update 2.42.5 -> 2.44.0
        gnome-control-center: restore Upstream-Status line

  Martin Jansa (5):
        unionfs-fuse, dropwatch, postgresql, yasm, multipath-tools, python3-pybind11: add missing Upstream-Status
        recipes: Drop remaining PR values from recipes
        freerdp3: disable shadow without x11
        xfstests: upgrade to v2024.03.03
        gtkmm4: add x11 to REQUIRED_DISTRO_FEATURES

  Maxin John (7):
        tracker: remove unused patch
        openal-soft: remove unused patches
        libio-pty-perl: remove unsed patch
        opengl-es-cts: remove unused patch
        emacs: remove unused patch
        webkitgtk3: remove unused patch
        python3-eth-utils: remove unused patches

  Michael Heimpold (1):
        ser2net: add a systemd service file

  Mingli Yu (4):
        gosu: Upgrade to 1.17
        googletest: Pass -fPIC to CFLAGS
        re2: Upgrade 2023.03.01 -> 2024.03.01
        nss: Upgrade 3.74 -> 3.98

  Ola x Nilsson (2):
        abseil-cpp: Split so-files into separate packages
        abseil-cpp: Split so-files into separate packages

  Peter Kjellerstedt (3):
        abseil-cpp: A little clean-up
        libnice: Disable the examples and the tests
        abseil-cpp: A little clean-up

  Peter Marko (5):
        jwt-cpp: fix cmake file install path
        soci: fix buildpaths warning
        libcpr: add new recipe
        python3-grpcio: cleanup dependencies
        microsoft-gsl: add new recipe including ptest

  Petr Gotthard (2):
        libmbim: Revert back to the latest stable 1.30.0
        libqmi: Revert back to the latest stable 1.34.0

  Randy MacLeod (2):
        rsyslog: update from 8.2306.0 to 8.2402.0
        nftables: Add DESCRIPTION and HOMEPAGE

  Richard Purdie (2):
        imagemagick/lcms/fftw: Allow nativesdk versions to exist
        buildtools-imagemagick: Add new recipe

  Robert P. J. Day (1):
        fmt: remove unnecessary "inherit ptest" directive

  Robert Yang (6):
        yaffs2-utils: Upgrade to 20221209
        xfsprogs: 6.5.0 -> 6.6.0
        gnulib: 2018-12-18 -> 202401
        thin-provisioning-tools: 1.0.9 -> 1.0.12
        gperftools: 2.10 -> 2.15
        freeradius: 3.0.26 -> 3.2.3

  Ross Burton (1):
        python3-pydantic-core: just set PYPI_PACKAGE

  Sam Van Den Berge (1):
        python3-aiohttp: add missing dependencies

  Samuli Piippo (1):
        geoclue: enable demo agent

  Thomas Roos (1):
        usrsctp: upgrade to latest version

  Tim Orling (1):
        liberror-perl: move recipe from oe-core

  Tomasz Żyjewski (1):
        python: python-libusb1: add recipe

  Wang Mingyu (124):
        bats: upgrade 1.10.0 -> 1.11.0
        c-ares: upgrade 1.26.0 -> 1.27.0
        ctags: upgrade 6.1.20240114.0 -> 6.1.20240225.0
        dbus-cxx: upgrade 2.5.0 -> 2.5.1
        ddrescue: upgrade 1.27 -> 1.28
        fetchmail: upgrade 6.4.37 -> 6.4.38
        libtalloc: upgrade 2.4.1 -> 2.4.2
        libtdb: upgrade 1.4.9 -> 1.4.10
        neatvnc: upgrade 0.7.2 -> 0.8.0
        ostree: upgrade 2024.3 -> 2024.4
        python3-astroid: upgrade 3.0.3 -> 3.1.0
        python3-cbor2: upgrade 5.6.1 -> 5.6.2
        python3-dnspython: upgrade 2.6.0 -> 2.6.1
        python3-eventlet: upgrade 0.35.1 -> 0.35.2
        python3-gcovr: upgrade 7.0 -> 7.2
        python3-google-api-core: upgrade 2.16.2 -> 2.17.1
        python3-google-api-python-client: upgrade 2.118.0 -> 2.120.0
        python3-grpcio(-tools): upgrade 1.60.1 -> 1.62.0
        python3-ipython: upgrade 8.21.0 -> 8.22.1
        python3-pdm: upgrade 2.12.3 -> 2.12.4
        python3-pymisp: upgrade 2.4.185 -> 2.4.186
        python3-scrypt: upgrade 0.8.20 -> 0.8.24
        python3-sentry-sdk: upgrade 1.40.4 -> 1.40.6
        smarty: upgrade 4.3.4 -> 4.4.1
        stunnel: upgrade 5.69 -> 5.72
        abseil-cpp: upgrade 20230802.1 -> 20240116.1
        dnf-plugin-tui: upgrade 1.3 -> 1.4
        boost-sml: upgrade 1.1.9 -> 1.1.11
        ctags: upgrade 6.1.20240225.0 -> 6.1.20240310.0
        dialog: upgrade 1.3-20240101 -> 1.3-20240307
        flatbuffers: upgrade 23.5.26 -> 24.3.7
        gjs: upgrade 1.78.4 -> 1.80.0
        hwdata: upgrade 0.379 -> 0.380
        iceauth: upgrade 1.0.9 -> 1.0.10
        libdnet: upgrade 1.17.0 -> 1.18.0
        libopus: upgrade 1.4 -> 1.5.1
        libreport: upgrade 2.17.11 -> 2.17.15
        libxaw: upgrade 1.0.15 -> 1.0.16
        mcelog: upgrade 196 -> 197
        networkd-dispatcher: upgrade 2.1 -> 2.2.4
        openlldp: upgrade 1.1.0 -> 1.1.1
        opensc: upgrade 0.24.0 -> 0.25.0
        pcsc-lite: upgrade 2.0.1 -> 2.0.3
        python3-a2wsgi: upgrade 1.10.2 -> 1.10.4
        python3-apiflask: upgrade 2.1.0 -> 2.1.1
        python3-argcomplete: upgrade 3.2.2 -> 3.2.3
        python3-bandit: upgrade 1.7.7 -> 1.7.8
        python3-blivet: upgrade 3.8.2 -> 3.9.1
        python3-blivetgui: upgrade 2.4.2 -> 2.5.0
        python3-django: upgrade 5.0.2 -> 5.0.3
        python3-elementpath: upgrade 4.3.0 -> 4.4.0
        python3-eth-abi: upgrade 5.0.0 -> 5.0.1
        python3-eth-rlp: upgrade 1.0.1 -> 2.0.0
        python3-flask-migrate: upgrade 4.0.5 -> 4.0.7
        python3-google-api-python-client: upgrade 2.120.0 -> 2.122.0
        python3-google-auth: upgrade 2.28.1 -> 2.28.2
        python3-googleapis-common-protos: upgrade 1.62.0 -> 1.63.0
        python3-grpcio-tools: upgrade 1.62.0 -> 1.62.1
        python3-grpcio: upgrade 1.62.0 -> 1.62.1
        python3-ipython: upgrade 8.22.1 -> 8.22.2
        python3-mypy: upgrade 1.8.0 -> 1.9.0
        python3-pydantic: upgrade 2.6.3 -> 2.6.4
        python3-pymisp: upgrade 2.4.186 -> 2.4.187
        python3-pymodbus: upgrade 3.6.4 -> 3.6.6
        python3-pyperf: upgrade 2.6.2 -> 2.6.3
        python3-pytest-lazy-fixtures: upgrade 1.0.5 -> 1.0.6
        python3-pytest-timeout: upgrade 2.2.0 -> 2.3.1
        python3-requests-oauthlib: upgrade 1.3.1 -> 1.4.0
        python3-sentry-sdk: upgrade 1.40.6 -> 1.42.0
        python3-tox: upgrade 4.13.0 -> 4.14.1
        python3-traitlets: upgrade 5.14.1 -> 5.14.2
        python3-types-psutil: upgrade 5.9.5.20240205 -> 5.9.5.20240316
        python3-types-python-dateutil: upgrade 2.8.19.20240106 -> 2.9.0.20240316
        tcsh: upgrade 6.24.10 -> 6.24.11
        thingsboard-gateway: upgrade 3.4.4 -> 3.4.5
        xmessage: upgrade 1.0.6 -> 1.0.7
        xrefresh: upgrade 1.0.7 -> 1.1.0
        gjs: upgrade 1.80.0 -> 1.80.2
        gnome-backgrounds: upgrade 45.0 -> 46.0
        gnome-font-viewer: upgrade 45.0 -> 46.0
        libblockdev: upgrade 3.1.0 -> 3.1.1
        libdeflate: upgrade 1.19 -> 1.20
        libmbim: upgrade 1.30.0 -> 1.31.2
        libqmi: upgrade 1.34.0 -> 1.35.2
        libtommath: upgrade 1.2.1 -> 1.3.0
        mcelog: upgrade 197 -> 198
        metacity: upgrade 3.50.0 -> 3.52.0
        python3-asgiref: upgrade 3.7.2 -> 3.8.1
        python3-blivet: upgrade 3.9.1 -> 3.9.2
        python3-cassandra-driver: upgrade 3.29.0 -> 3.29.1
        python3-djangorestframework: upgrade 3.14.0 -> 3.15.1
        python3-eth-rlp: upgrade 2.0.0 -> 2.1.0
        python3-eventlet: upgrade 0.35.2 -> 0.36.1
        python3-filelock: upgrade 3.13.1 -> 3.13.3
        python3-flask-marshmallow: upgrade 1.2.0 -> 1.2.1
        python3-flatbuffers: upgrade 24.3.7 -> 24.3.25
        python3-google-api-core: upgrade 2.17.1 -> 2.18.0
        python3-google-api-python-client: upgrade 2.122.0 -> 2.124.0
        python3-google-auth: upgrade 2.28.2 -> 2.29.0
        python3-graphviz: upgrade 0.20.1 -> 0.20.3
        python3-gspread: upgrade 6.0.2 -> 6.1.0
        python3-jdatetime: upgrade 4.1.1 -> 5.0.0
        python3-pdm: upgrade 2.12.4 -> 2.13.2
        python3-pyasn1-modules: upgrade 0.3.0 -> 0.4.0
        python3-pymisp: upgrade 2.4.187 -> 2.4.188
        python3-pytest-asyncio: upgrade 0.23.5 -> 0.23.6
        python3-pytest-cov: upgrade 4.1.0 -> 5.0.0
        python3-pytest-lazy-fixtures: upgrade 1.0.6 -> 1.0.7
        python3-pywbem: upgrade 1.6.2 -> 1.6.3
        python3-pywbemtools: upgrade 1.2.0 -> 1.2.1
        python3-pyzstd: upgrade 0.15.9 -> 0.15.10
        python3-requests-oauthlib: upgrade 1.4.0 -> 2.0.0
        python3-sentry-sdk: upgrade 1.42.0 -> 1.44.0
        python3-socketio: upgrade 5.11.1 -> 5.11.2
        python3-thrift: upgrade 0.16.0 -> 0.20.0
        python3-tox: upgrade 4.14.1 -> 4.14.2
        python3-web3: upgrade 6.15.1 -> 6.16.0
        st: upgrade 0.9 -> 0.9.1
        thingsboard-gateway: upgrade 3.4.5 -> 3.4.6
        thrift: upgrade 0.19.0 -> 0.20.0
        tracker-miners: upgrade 3.7.0 -> 3.7.1
        tracker: upgrade 3.7.0 -> 3.7.1
        wireshark: upgrade 4.2.3 -> 4.2.4
        wolfssl: upgrade 5.6.6 -> 5.7.0

  William Lyu (3):
        nftables: Fix ptest output format issues
        nftables: Fix ShellCheck violations in ptest wrapper script "run-ptest"
        nftables: Fix failed ptest testcases

  Yi Zhao (13):
        netplan: upgrade 0.106 -> 1.0
        networkmanager: 1.44.0 -> 1.46.0
        postfix: upgrade 3.8.5 -> 3.8.6
        net-snmp: upgrade 5.9.3 -> 5.9.4
        cryptsetup: upgrade 2.7.0 -> 2.7.1
        samba: upgrade 4.19.4 -> 4.19.5
        civetweb: remove buildpaths from civetweb-targets.cmake
        minifi-cpp: upgrade 0.7.0 -> 0.15.0
        openvpn: upgrade 2.6.9 -> 2.6.10
        rocksdb: upgrade 7.9.2 -> 9.0.0
        audit: upgrade 4.0 -> 4.0.1
        netplan: add missing config directory
        strongswan: upgrade 5.9.13 -> 5.9.14

  alperak (15):
        python3-icecream: add recipe
        python3-invoke: add recipe
        python3-traitlets: add ptest and update runtime dependencies
        python3-google-auth-oauthlib: add ptest
        python3-tomli-w: added recipe which is also include ptest
        python3-pytest-localserver: added recipe which is also include ptest
        python3-responses: add recipe
        python3-google-auth: add ptest and update runtime dependencies
        remove obsolete PIP_INSTALL_PACKAGE and PIP_INSTALL_DIST_PATH
        python3-a2wsgi: added recipe which is also include ptest
        python3-httptools: added recipe which is also include ptest
        python3-wsproto: Add recipe
        python3-portalocker: enable ptest
        python3-validators: upgrade 0.22.0 > 0.24.0 and enable ptest
        python3-pydbus: Drop ${PYTHON_PN}

  chenheyun (1):
        aer-inject:add new recipe

Change-Id: I3cf0e5c87ecdfa18c35d318cb64c0e6559348618
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/meta-openembedded/meta-python/conf/include/ptest-packagelists-meta-python.inc b/meta-openembedded/meta-python/conf/include/ptest-packagelists-meta-python.inc
index 5d9eb0f..2f7babe 100644
--- a/meta-openembedded/meta-python/conf/include/ptest-packagelists-meta-python.inc
+++ b/meta-openembedded/meta-python/conf/include/ptest-packagelists-meta-python.inc
@@ -7,6 +7,7 @@
 #
 # ptests which take less than ~30s each
 PTESTS_FAST_META_PYTHON = "\
+    python3-a2wsgi \
     python3-appdirs \
     python3-ansicolors \
     python3-asgiref \
@@ -19,9 +20,11 @@
     python3-execnet \
     python3-freezegun \
     python3-geojson \
+    python3-google-auth-oauthlib \
     python3-gpiod \
     python3-gunicorn \
     python3-html2text \
+    python3-httptools \
     python3-inflection \
     python3-inotify \
     python3-intervals \
@@ -37,6 +40,7 @@
     python3-parse-type \
     python3-platformdirs \
     python3-polyline \
+    python3-portalocker \
     python3-precise-runner \
     python3-prettytable \
     python3-pydantic \
@@ -50,6 +54,7 @@
     python3-pytest-mock \
     python3-pytoml \
     python3-pyyaml-include \
+    python3-pydbus \
     python3-rapidjson \
     python3-requests-file \
     python3-requests-toolbelt \
@@ -60,6 +65,7 @@
     python3-smpplib \
     python3-soupsieve \
     python3-sqlparse \
+    python3-tomli-w \
     python3-tomlkit \
     python3-trustme \
     python3-typeguard \
@@ -67,7 +73,9 @@
     python3-u-msgpack-python \
     python3-unidiff \
     python3-uritemplate \
+    python3-validators \
     python3-wrapt \
+    python3-wsproto \
     python3-xlrd \
     python3-xmltodict \
     python3-xxhash \
@@ -76,8 +84,11 @@
 
 PTESTS_SLOW_META_PYTHON = "\
     python3-arrow \
+    python3-google-auth \
     python3-lz4 \
     python3-marshmallow \
+    python3-pytest-localserver \
+    python3-traitlets \
     python3-yappi \
 "
 
diff --git a/meta-openembedded/meta-python/conf/layer.conf b/meta-openembedded/meta-python/conf/layer.conf
index add7801..f48b28b 100644
--- a/meta-openembedded/meta-python/conf/layer.conf
+++ b/meta-openembedded/meta-python/conf/layer.conf
@@ -14,6 +14,6 @@
 
 LAYERDEPENDS_meta-python = "core (>= 12) openembedded-layer"
 
-LAYERSERIES_COMPAT_meta-python = "nanbield"
+LAYERSERIES_COMPAT_meta-python = "scarthgap"
 
 LICENSE_PATH += "${LAYERDIR}/licenses"
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.16.0.bb b/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.20.0.bb
similarity index 84%
rename from meta-openembedded/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.16.0.bb
rename to meta-openembedded/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.20.0.bb
index 63065e0..6a0a66a 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.16.0.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.20.0.bb
@@ -2,7 +2,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=7145f7cdd263359b62d342a02f005515"
 
-SRC_URI[sha256sum] = "2b5b6488fcded21f9d312aa23c9ff6a0195d0f6ae26ddbd5ad9e3e25dfc14408"
+SRC_URI[sha256sum] = "4dd662eadf6b8aebe8a41729527bd69adf6ceaa2a8681cbef64d1273b3e8feba"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb b/meta-openembedded/meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb
index ef63755..ab39606 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb
@@ -17,5 +17,3 @@
 S = "${WORKDIR}/git"
 
 inherit setuptools3
-
-PIP_INSTALL_PACKAGE = "txWS"
diff --git a/meta-openembedded/meta-python/recipes-connectivity/telepathy/telepathy-python3_0.15.19.bb b/meta-openembedded/meta-python/recipes-connectivity/telepathy/telepathy-python3_0.15.19.bb
index f5e2f67..31f6ae3 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/telepathy/telepathy-python3_0.15.19.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/telepathy/telepathy-python3_0.15.19.bb
@@ -11,7 +11,6 @@
            file://remove_duplicate_install.patch \
            file://telepathy-python_fix_for_automake_1.12.patch"
 
-PR = "r6"
 
 S = "${WORKDIR}/telepathy-python-${PV}"
 
diff --git a/meta-openembedded/meta-python/recipes-core/images/meta-python-image-ptest.bb b/meta-openembedded/meta-python/recipes-core/images/meta-python-image-ptest.bb
index 9c54285..002bd7a 100644
--- a/meta-openembedded/meta-python/recipes-core/images/meta-python-image-ptest.bb
+++ b/meta-openembedded/meta-python/recipes-core/images/meta-python-image-ptest.bb
@@ -27,6 +27,10 @@
 QB_MEM = "-m 1024"
 # If a particular ptest needs more memory, it can be customized:
 #QB_MEM:virtclass-mcextend-<pn> = "-m 4096"
+# python3-scrypt ptests run into OOMs on RISCV64 qemu
+QB_MEM:virtclass-mcextend-python3-scrypt = "-m 2048"
+QB_MEM:virtclass-mcextend-python3-fastjsonschema = "-m 2048"
+QB_MEM:virtclass-mcextend-python3-pillow = "-m 2048"
 
 TEST_SUITES = "ping ssh parselogs ptest"
 
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 eb5a264..e0446da 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
@@ -311,6 +311,7 @@
     python3-pycodestyle \
     python3-pyconnman \
     python3-pycurl \
+    python3-pydbus \
     python3-pydicti \
     python3-pyephem \
     python3-pyexpect \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-libusb1_3.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-libusb1_3.1.0.bb
new file mode 100644
index 0000000..a045dfa
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-libusb1_3.1.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Pure-python wrapper for libusb-1.0"
+HOMEPAGE = "http://github.com/vpelletier/python-libusb1"
+AUTHOR = "Vincent Pelletier <plr.vincent@gmail.com>"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
+LIC_FILES_CHKSUM = " \
+    file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+    file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c \
+"
+
+SRC_URI = "https://github.com/vpelletier/${BPN}/releases/download/${PV}/libusb1-${PV}.tar.gz"
+SRC_URI[md5sum] = "7b4f094786d1dfc8d011c7649d8ccb97"
+SRC_URI[sha256sum] = "4ee9b0a55f8bd0b3ea7017ae919a6c1f439af742c4a4b04543c5fd7af89b828c"
+
+S = "${WORKDIR}/libusb1-${PV}"
+
+RDEPENDS:${PN} = "libusb1"
+
+inherit setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-a2wsgi/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-a2wsgi/run-ptest
new file mode 100644
index 0000000..8d2017d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-a2wsgi/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-a2wsgi_1.10.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-a2wsgi_1.10.4.bb
new file mode 100644
index 0000000..e6b9802
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-a2wsgi_1.10.4.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Convert WSGI app to ASGI app or ASGI app to WSGI app."
+HOMEPAGE = "https://github.com/abersheeran/a2wsgi"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e10d05d29ec6d8be8bfc503683f1bc9a"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI[sha256sum] = "50e81ac55aa609fa2c666e42bacc25c424c8884ce6072f1a7e902114b7ee5d63"
+
+DEPENDS += " \
+        python3-pdm-native \
+        python3-pdm-backend-native \
+"
+
+SRC_URI += " \
+        file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+        python3-httpx \
+        python3-pytest \
+        python3-pytest-asyncio \
+        python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+        install -d ${D}${PTEST_PATH}/tests
+        cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+        python3-asyncio \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.9.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.9.3.bb
index 2cdd352..10a3085 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.9.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.9.3.bb
@@ -13,7 +13,9 @@
     python3-aiohappyeyeballs \
     python3-aiosignal \
     python3-async-timeout \
+    python3-attrs \
     python3-frozenlist \
+    python3-misc \
     python3-multidict \
     python3-yarl \
     python3-aiodns \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-anyio_4.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-anyio_4.3.0.bb
similarity index 78%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-anyio_4.2.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-anyio_4.3.0.bb
index 0bf907d..2c7a9f8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-anyio_4.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-anyio_4.3.0.bb
@@ -5,7 +5,7 @@
 
 inherit pypi python_setuptools_build_meta
 
-SRC_URI[sha256sum] = "e1875bb4b4e2de1669f4bc7869b6d3f54231cdced71605e6e64c9be77e3be50f"
+SRC_URI[sha256sum] = "f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"
 
 DEPENDS += " \
 	python3-setuptools-scm-native \
@@ -20,4 +20,8 @@
 RDEPENDS:${PN} += "\
     python3-idna \
     python3-sniffio \
+    python3-core \
+    python3-numbers \
+    python3-io \
+    python3-asyncio \
 "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-apiflask_2.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-apiflask_2.1.1.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-apiflask_2.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-apiflask_2.1.1.bb
index 5bffa22..94f2e37 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-apiflask_2.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-apiflask_2.1.1.bb
@@ -7,7 +7,7 @@
 
 PYPI_PACKAGE = "APIFlask"
 
-SRC_URI[sha256sum] = "e7616d902d446eb9e1c67d1d8a34691b437f9da4fe7a3b4d49c91ba88c85ee2a"
+SRC_URI[sha256sum] = "88db5a539cc155e35d9636d99b434d00ca6c0b23e7c87c8321ec9dc980535366"
 
 RDEPENDS:${PN} += "\
     python3-flask \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.2.3.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.2.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.2.3.bb
index 90560fa..8d8c8a4e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.2.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.2.3.bb
@@ -3,7 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=2ee41112a44fe7014dce33e26468ba93"
 
-SRC_URI[sha256sum] = "f3e49e8ea59b4026ee29548e24488af46e30c9de57d48638e24f54a1ea1000a2"
+SRC_URI[sha256sum] = "bf7900329262e481be5a15f56f19736b376df6f82ed27576fa893652c5de6c23"
 
 PYPI_PACKAGE = "argcomplete"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-asgiref_3.7.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-asgiref_3.8.1.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-asgiref_3.7.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-asgiref_3.8.1.bb
index b7fa9f0..3b90eda 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-asgiref_3.7.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-asgiref_3.8.1.bb
@@ -7,7 +7,7 @@
 SRC_URI += "file://run-ptest \
 	    "
 
-SRC_URI[sha256sum] = "9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed"
+SRC_URI[sha256sum] = "c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590"
 
 export BUILD_SYS
 export HOST_SYS
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb
index 54e43e3..bc3315f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb
@@ -10,7 +10,6 @@
 SRCREV ?= "c7553c79f9222e20783fe9bd8a553f932e918072"
 
 inherit setuptools3
-PIP_INSTALL_PACKAGE = "astor"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_3.0.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_3.1.0.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_3.0.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_3.1.0.bb
index b02b151..3c68f1e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_3.0.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_3.1.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "LGPL-2.1-only"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a70cf540abf41acb644ac3b621b2fad1"
 
-SRC_URI[sha256sum] = "4148645659b08b70d72460ed1921158027a9e53ae8b7234149b1400eddacbb93"
+SRC_URI[sha256sum] = "ac248253bfa4bd924a0de213707e7ebeeb3138abeb48d798784ead1e56d419d4"
 
 inherit pypi python_setuptools_build_meta
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.8.bb
similarity index 84%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.7.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.8.bb
index 2de7fc7..8b09688 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.8.bb
@@ -2,7 +2,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
 
-SRC_URI[sha256sum] = "527906bec6088cb499aae31bc962864b4e77569e9d529ee51df3a93b4b8ab28a"
+SRC_URI[sha256sum] = "36de50f720856ab24a24dbaa5fee2c66050ed97c1477e0a1159deab1775eab6b"
 
 DEPENDS = "python3-pbr-native python3-git python3-pbr python3-pyyaml python3-six python3-stevedore"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_5.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_5.3.3.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_5.3.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_5.3.3.bb
index 22060ef..3ef75d4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_5.3.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_5.3.3.bb
@@ -6,7 +6,7 @@
 SECTION = "devel/python"
 
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1ec55353c80c662e4255f8889a0ca558"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=539275e657c6b7af026bb908356f7541"
 
 inherit pypi python_setuptools_build_meta ptest
 
@@ -28,6 +28,6 @@
 	cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
 }
 
-SRC_URI[sha256sum] = "086ee420196f7b2ab9ca2db2520aca326318b68fe5ba8bc4d49cca91add450f2"
+SRC_URI[sha256sum] = "ba29e2dfa0b8b556606f097407ed1aa62080ee108ab0dc5ec9d6a723a007d105"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.29.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.29.1.bb
similarity index 88%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.29.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.29.1.bb
index b8565d1..3003e84 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.29.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.29.1.bb
@@ -8,7 +8,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
 SRCNAME = "cassandra-driver"
 
-SRC_URI[sha256sum] = "0a34f9534356e5fd33af8cdda109d5e945b6335cb50399b267c46368c4e93c98"
+SRC_URI[sha256sum] = "38e9c2a2f2a9664bb03f1f852d5fccaeff2163942b5db35dffcf8bf32a51cfe5"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.6.2.bb
similarity index 88%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.6.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.6.2.bb
index e2493e4..c0987a9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.6.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.6.2.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
 
-SRC_URI[sha256sum] = "752130e38644319f3dae7f91fabb08f58bc454ca671b72875e6228d423890efd"
+SRC_URI[sha256sum] = "b7513c2dea8868991fad7ef8899890ebcf8b199b9b4461c3c11d7ad3aef4820d"
 
 inherit pypi python_setuptools_build_meta ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_2.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_2.0.3.bb
similarity index 60%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_2.0.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_2.0.3.bb
index 7f418b0..ad80574 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_2.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_2.0.3.bb
@@ -5,8 +5,12 @@
 
 PYPI_PACKAGE = "croniter"
 
-SRC_URI[sha256sum] = "d199b2ec3ea5e82988d1f72022433c5f9302b3b3ea9e6bfd6a1518f6ea5e700a"
+SRC_URI[sha256sum] = "28763ad39c404e159140874f08010cfd8a18f4c2a7cea1ce73e9506a4380cfc1"
 
 inherit pypi setuptools3
 
-RDEPENDS:${PN} += " python3-dateutil python3-natsort"
+RDEPENDS:${PN} += " \
+	python3-dateutil \
+	python3-natsort \
+	python3-pytz \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.9.0.bb
index bcb68d7..ac76ccc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.9.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.9.0.bb
@@ -7,7 +7,6 @@
 SRC_URI[sha256sum] = "78e73e19c63f5b20ffa567001531680d939dc042bf7850431877645523c66709"
 
 PYPI_PACKAGE = "python-dateutil"
-PIP_INSTALL_PACKAGE = "python_dateutil"
 inherit pypi python_setuptools_build_meta
 
 PACKAGES =+ "${PN}-zoneinfo"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb
index b1ba953..59da454 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb
@@ -12,8 +12,6 @@
 
 inherit setuptools3
 
-PIP_INSTALL_PACKAGE = "DBussy"
-
 RDEPENDS:${PN} += "\
     python3-asyncio \
     python3-core \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.2.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.2.11.bb
similarity index 60%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.2.10.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.2.11.bb
index c78c8aa..0642b7e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.2.10.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.2.11.bb
@@ -1,7 +1,7 @@
 require python-django.inc
 inherit setuptools3
 
-SRC_URI[sha256sum] = "b1260ed381b10a11753c73444408e19869f3241fc45c985cd55a30177c789d13"
+SRC_URI[sha256sum] = "6e6ff3db2d8dd0c986b4eec8554c8e4f919b5c1ff62a5b4390c17aff2ed6e5c4"
 
 RDEPENDS:${PN} += "\
     python3-sqlparse \
@@ -10,5 +10,5 @@
 
 # Set DEFAULT_PREFERENCE so that the LTS version of django is built by
 # default. To build the 4.x branch, 
-# PREFERRED_VERSION_python3-django = "4.0.2" can be added to local.conf
+# PREFERRED_VERSION_python3-django = "4.2.11" can be added to local.conf
 DEFAULT_PREFERENCE = "-1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_5.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_5.0.2.bb
deleted file mode 100644
index 3f61dab..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_5.0.2.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require python-django.inc
-inherit setuptools3
-
-SRC_URI[sha256sum] = "b5bb1d11b2518a5f91372a282f24662f58f66749666b0a286ab057029f728080"
-
-RDEPENDS:${PN} += "\
-    python3-sqlparse \
-    python3-asgiref \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_5.0.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_5.0.3.bb
new file mode 100644
index 0000000..14c41a6
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_5.0.3.bb
@@ -0,0 +1,9 @@
+require python-django.inc
+inherit setuptools3
+
+SRC_URI[sha256sum] = "5fb37580dcf4a262f9258c1f4373819aacca906431f505e4688e37f3a99195df"
+
+RDEPENDS:${PN} += "\
+    python3-sqlparse \
+    python3-asgiref \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.14.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.15.1.bb
similarity index 79%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.14.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.15.1.bb
index c39f37f..9515aa2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.14.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-djangorestframework_3.15.1.bb
@@ -5,7 +5,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.md;md5=7879a5a716147a784f7e524c9cf103c1"
 
-SRC_URI[sha256sum] = "579a333e6256b09489cbe0a067e66abe55c6595d8926be6b99423786334350c8"
+SRC_URI[sha256sum] = "f88fad74183dfc7144b2756d0d2ac716ea5b4c7c9840995ac3bfd8ec034333c1"
 
 PYPI_PACKAGE = "djangorestframework"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.6.1.bb
similarity index 88%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.6.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.6.1.bb
index c014371..13e31af 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.6.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "ISC"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=5af50906b5929837f667dfe31052bd34"
 
-SRC_URI[sha256sum] = "233f871ff384d84c33b2eaf4358ffe7f8927eae3b257ad8467f9bdba7e7ac6bc"
+SRC_URI[sha256sum] = "e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc"
 
 inherit pypi python_hatchling ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.18.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.18.0.bb
index d102289..12dd51e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.18.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.18.0.bb
@@ -3,14 +3,12 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=66ffc5e30f76cbb5358fe54b645e5a1d"
 
-DEPENDS += "python3-pip python3-pbr"
-
 PYPI_PACKAGE = "ecdsa"
 SRC_URI[sha256sum] = "190348041559e21b22a1d65cee485282ca11a6f81d503fddb84d5017e9ed1e49"
 
 inherit pypi setuptools3 python3native
 
-RDEPENDS:${PN} += "python3-six python3-gmpy2 python3-pbr"
+RDEPENDS:${PN} += "python3-six python3-gmpy2"
 
 BBCLASSEXTEND = "native nativesdk"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.4.0.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.3.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.4.0.bb
index 3e7f70f..e095cb8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.4.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=5dbb7fb7d72da3921202dd7b995d3ecf"
 
-SRC_URI[sha256sum] = "8d25db9150f5a6aa978c9f58e607fcd5ab6e6e3017140563439a9884ab1eb304"
+SRC_URI[sha256sum] = "dfc4b8ca3d87966dcb0df40b5b6d04a98f053683271930fad9e7fa000924dfb2"
 
 PYPI_PACKAGE = "elementpath"
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_5.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_5.0.1.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_5.0.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_5.0.1.bb
index 50b1340..a562961 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_5.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_5.0.1.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=731f4de9c79bfeba6d8d55f83d0d2423"
 
-SRC_URI[sha256sum] = "89c4454d794d9ed92ad5cb2794698c5cee6b7b3ca6009187d0e282adc7f9b6dc"
+SRC_URI[sha256sum] = "e9425110c6120c585c9f0db2e8a33d76c4b886b148a65e68fc0035d3917a3b9c"
 
 PYPI_PACKAGE = "eth_abi"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_1.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_2.1.0.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_1.0.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_2.1.0.bb
index 7ee20b9..4bdc0c8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_1.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_2.1.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3d7bdfe69b1ffbde073ca6e96f5c53f7"
 
-SRC_URI[sha256sum] = "d61dbda892ee1220f28fb3663c08f6383c305db9f1f5624dc585c9cd05115027"
+SRC_URI[sha256sum] = "d5b408a8cd20ed496e8e66d0559560d29bc21cee482f893936a1f05d0dddc4a0"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils/0001-setup-don-t-use-setuptools-markdown.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils/0001-setup-don-t-use-setuptools-markdown.patch
deleted file mode 100644
index 6584e60..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils/0001-setup-don-t-use-setuptools-markdown.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From bc86d603e632ce61de4ae7a5d4bcef080cbdb160 Mon Sep 17 00:00:00 2001
-From: Bartosz Golaszewski <brgl@bgdev.pl>
-Date: Wed, 11 May 2022 13:45:06 +0200
-Subject: [PATCH] setup: don't use setuptools-markdown
-
-This project is deprecated and irrelevant for the functionality of
-eth-utils. We don't support it in meta-python so just drop it from
-the dependencies.
-
-Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
----
-Upstream-Status: Pending
-
- setup.py | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 5717d5b..cb62132 100644
---- a/setup.py
-+++ b/setup.py
-@@ -37,7 +37,6 @@ setup(
-     # *IMPORTANT*: Don't manually change the version here. Use the 'bumpversion' utility.
-     version='1.1.2',
-     description="""Common utility functions for ethereum codebases.""",
--    long_description_markdown_filename='README.md',
-     author='Piper Merriam',
-     author_email='pipermerriam@gmail.com',
-     url='https://github.com/ethereum/eth_utils',
-@@ -48,7 +47,6 @@ setup(
-         "toolz>0.8.2,<1;implementation_name=='pypy'",
-         "cytoolz>=0.8.2,<1.0.0;implementation_name=='cpython'",
-     ],
--    setup_requires=['setuptools-markdown'],
-     extras_require=extras_require,
-     py_modules=['eth_utils'],
-     license="MIT",
--- 
-2.34.1
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.35.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.36.1.bb
similarity index 78%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.35.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.36.1.bb
index eb7f76b..f70099a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.35.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eventlet_0.36.1.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=56472ad6de4caf50e05332a34b66e778"
 
-SRC_URI[sha256sum] = "3b2eede94d64538cb894eec50302a881e056ed7e057f0e24fb45b28a19d6b2e8"
+SRC_URI[sha256sum] = "d227fe76a63d9e6a6cef53beb8ad0b2dc40a5e7737c801f4b474cfae1db07bc5"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.13.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.13.3.bb
similarity index 84%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.13.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.13.3.bb
index ab0b114..f1477d1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.13.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.13.3.bb
@@ -6,7 +6,7 @@
 LICENSE = "Unlicense"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=911690f51af322440237a253d695d19f"
 
-SRC_URI[sha256sum] = "521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"
+SRC_URI[sha256sum] = "a79895a25bbefdf55d1a2a0a80968f7dbb28edcd6d4234a0afb3f37ecde4b546"
 
 BBCLASSEXTEND = "native nativesdk"
 inherit pypi python_hatchling
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-marshmallow_1.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-marshmallow_1.2.1.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-marshmallow_1.2.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask-marshmallow_1.2.1.bb
index 573b202..8408ebd 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-marshmallow_1.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-marshmallow_1.2.1.bb
@@ -7,7 +7,7 @@
 
 PYPI_PACKAGE = "flask_marshmallow"
 
-SRC_URI[sha256sum] = "d0f79eb9743f0c530a3d9e848503e1f2228e6b35a819c91e913af02e68421805"
+SRC_URI[sha256sum] = "00ee96399ed664963afff3b5d6ee518640b0f91dbc2aace2b5abcf32f40ef23a"
 
 RDEPENDS:${PN} += "\
     python3-flask \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.7.bb
similarity index 79%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.7.bb
index 87553c1..bfd854a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.7.bb
@@ -2,7 +2,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b69377f79f3f48c661701236d5a6a85"
 
-SRC_URI[sha256sum] = "d3f437a8b5f3849d1bb1b60e1b818efc564c66e3fefe90b62e5db08db295e1b1"
+SRC_URI[sha256sum] = "dff7dd25113c210b069af280ea713b883f3840c1e3455274745d7355778c8622"
 
 PYPI_PACKAGE = "Flask-Migrate"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_7.2.bb
similarity index 84%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_7.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_7.2.bb
index 1a81a38..8a61a2d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_7.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_7.2.bb
@@ -5,12 +5,11 @@
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c5a58ca91c1758a53f896ba89d8aaac2"
 
 SRC_URI = "git://github.com/gcovr/gcovr.git;branch=main;protocol=https"
-SRCREV = "fc190bcb85a25f5738315434a11f8e993edce515"
+SRCREV = "c4b74b0859611283be646d590c7915e787911b6f"
 
 S = "${WORKDIR}/git"
 
 inherit setuptools3
-PIP_INSTALL_PACKAGE = "gcovr"
 
 RDEPENDS:${PN} += "python3-jinja2 python3-lxml python3-setuptools python3-pygments python3-multiprocessing"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-geomet_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-geomet_1.1.0.bb
index bdf4fc5..ceba10b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-geomet_1.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-geomet_1.1.0.bb
@@ -13,7 +13,6 @@
 SRCREV = "6ac73c312b52aca328db2e61d90c5e363b62639f"
 
 inherit setuptools3
-PIP_INSTALL_PACKAGE = "geomet"
 
 RDEPENDS:${PN} += "\
     python3-click \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.16.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.18.0.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.16.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.18.0.bb
index ecb15ba..b4cbafa 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.16.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.18.0.bb
@@ -5,7 +5,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "032d37b45d1d6bdaf68fb11ff621e2593263a239fa9246e2e94325f9c47876d2"
+SRC_URI[sha256sum] = "62d97417bfc674d6cef251e5c4d639a9655e00c45528c4364fbfebb478ce72a9"
 
 RDEPENDS:${PN} += "\
     python3-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.118.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.124.0.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.118.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.124.0.bb
index 6a27006..99b07d3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.118.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.124.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
-SRC_URI[sha256sum] = "ebf4927a3f5184096647be8f705d090e7f06d48ad82b0fa431a2fe80c2cbe182"
+SRC_URI[sha256sum] = "f6d3258420f7c76b0f5266b5e402e6f804e30351b018a10083f4a46c3ec33773"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth-oauthlib/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth-oauthlib/run-ptest
new file mode 100644
index 0000000..f1c8729
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth-oauthlib/run-ptest
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+pytest --automake
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.2.0.bb
index 5c071ac..70e843a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.2.0.bb
@@ -6,9 +6,26 @@
 
 SRC_URI[sha256sum] = "292d2d3783349f2b0734a0a0207b1e1e322ac193c2c09d8f7c613fb7cc501ea8"
 
-inherit pypi setuptools3
+inherit pypi setuptools3 ptest
 
-RDEPENDS:${PN} = " \
-    python3-google-auth \
-    python3-requests-oauthlib \
+SRC_URI += " \
+        file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+        python3-click \
+        python3-mock \
+        python3-pytest \
+        python3-unittest-automake-output \
+        python3-unixadmin \
+"
+
+do_install_ptest() {
+        install -d ${D}${PTEST_PATH}/tests
+        cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+        python3-google-auth \
+        python3-requests-oauthlib \
 "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth/run-ptest
new file mode 100644
index 0000000..f1c8729
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth/run-ptest
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+pytest --automake
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.28.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.28.1.bb
deleted file mode 100644
index 4524cca..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.28.1.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-DESCRIPTION = "Google Authentication Library"
-HOMEPAGE = "https://github.com/googleapis/google-auth-library-python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "34fc3046c257cedcf1622fc4b31fc2be7923d9b4d44973d481125ecc50d83885"
-
-RDEPENDS:${PN} += "\
-    python3-asyncio \
-    python3-datetime \
-    python3-io \
-    python3-json \
-    python3-logging \
-    python3-netclient \
-    python3-numbers \
-"
-
-RDEPENDS:${PN} += "\
-    python3-aiohttp \
-    python3-cachetools \
-    python3-pyasn1-modules \
-    python3-rsa \
-    python3-six \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.29.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.29.0.bb
new file mode 100644
index 0000000..e8d438d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.29.0.bb
@@ -0,0 +1,41 @@
+DESCRIPTION = "Google Authentication Library"
+HOMEPAGE = "https://github.com/googleapis/google-auth-library-python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI[sha256sum] = "672dff332d073227550ffc7457868ac4218d6c500b155fe6cc17d2b13602c360"
+
+SRC_URI += " \
+        file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+        python3-cryptography \
+        python3-flask \
+        python3-freezegun \
+        python3-grpcio \
+        python3-mock \
+        python3-oauth2client \
+        python3-pyopenssl \
+        python3-pytest \
+        python3-pytest-localserver \
+        python3-pyu2f \
+        python3-requests \
+        python3-responses \
+        python3-unittest-automake-output \
+        python3-unixadmin \
+"
+
+do_install_ptest() {
+        install -d ${D}${PTEST_PATH}/tests
+        cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += "\
+        python3-cachetools \
+        python3-json \
+        python3-pyasn1-modules \
+        python3-rsa \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.62.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.63.0.bb
similarity index 79%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.62.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.63.0.bb
index 5df1210..aee2337 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.62.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.63.0.bb
@@ -5,7 +5,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "83f0ece9f94e5672cced82f592d2a5edf527a96ed1794f0bab36d5735c996277"
+SRC_URI[sha256sum] = "17ad01b11d5f1d0171c06d3ba5c04c54474e883b66b949722b4938ee2694ef4e"
 
 RDEPENDS:${PN} += "\
     python3-grpcio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.3.bb
similarity index 60%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.3.bb
index d381699..0fd81b0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.3.bb
@@ -1,9 +1,9 @@
 DESCRIPTION = "Graphviz protocol implementation"
 HOMEPAGE = "https://graphviz.readthedocs.io/en/stable/"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=951dd0868a9606c867ffda0ea3ea6da2"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=bcdc1cf20245c598f9a563b550605785"
 
-SRC_URI[sha256sum] = "8c58f14adaa3b947daf26c19bc1e98c4e0702cdc31cf99153e6f06904d492bf8"
+SRC_URI[sha256sum] = "09d6bc81e6a9fa392e7ba52135a9d49f1ed62526f96499325930e87ca1b5925d"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.60.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.62.1.bb
similarity index 84%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.60.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.62.1.bb
index 07f5fe4..ffa2f84 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.60.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.62.1.bb
@@ -12,7 +12,7 @@
 SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch \
             file://0001-protobuf-Disable-musttail-attribute-on-mips.patch \
             "
-SRC_URI[sha256sum] = "da08224ab8675c6d464b988bd8ca02cccd2bf0275bceefe8f6219bfd4a4f5e85"
+SRC_URI[sha256sum] = "a4991e5ee8a97ab791296d3bf7e8700b1445635cc1828cc98df945ca1802d7f2"
 
 RDEPENDS:${PN} = "python3-grpcio"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch
index a5e7670..34ef787 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch
@@ -1,4 +1,4 @@
-From 6ede7d01b18a4d9eeaccd25f5c1ab9985cb65307 Mon Sep 17 00:00:00 2001
+From 671618df3e48619f0c7a5a3acd8982374a5e43db Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sun, 12 Feb 2023 21:25:04 -0800
 Subject: [PATCH] zlib: Include unistd.h for open/close C APIs
@@ -6,16 +6,15 @@
 Upstream-Status: Pending
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
 ---
  third_party/zlib/gzguts.h | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/third_party/zlib/gzguts.h b/third_party/zlib/gzguts.h
-index 57faf37..3c700c2 100644
+index f937504..341a68d 100644
 --- a/third_party/zlib/gzguts.h
 +++ b/third_party/zlib/gzguts.h
-@@ -19,6 +19,7 @@
+@@ -18,6 +18,7 @@
  #endif
  
  #include <stdio.h>
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch
index 4bb60b6..f39a961 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch
@@ -1,4 +1,4 @@
-From 9cec6297effa9fab6f0c71e342046daceecd7d4d Mon Sep 17 00:00:00 2001
+From 102dcce6610e6606fffd3a4986f84eb52177f8c8 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sat, 13 Mar 2021 10:26:25 -0800
 Subject: [PATCH] An all-in-one patch that fixes several issues:
@@ -13,7 +13,6 @@
 Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 Signed-off-by: Xu Huan <xuhuan.fnst@fujitsu.com>
-
 ---
  .../abseil-cpp/absl/base/internal/unscaledcycleclock.cc   | 4 ++--
  .../absl/base/internal/unscaledcycleclock_config.h        | 3 ++-
@@ -22,7 +21,7 @@
  4 files changed, 12 insertions(+), 5 deletions(-)
 
 diff --git a/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc b/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc
-index b1c396c..d62bfd6 100644
+index 05e0e7b..f11fecb 100644
 --- a/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc
 +++ b/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc
 @@ -20,7 +20,7 @@
@@ -58,10 +57,10 @@
  #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
  #else
 diff --git a/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc b/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc
-index 5786322..72c7c46 100644
+index 3dd6ba1..9f0601c 100644
 --- a/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc
 +++ b/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc
-@@ -33,6 +33,10 @@
+@@ -36,6 +36,10 @@
  #include <csignal>
  #include <cstdio>
  
@@ -72,7 +71,7 @@
  #include "absl/base/attributes.h"
  #include "absl/base/internal/raw_logging.h"
  #include "absl/base/macros.h"
-@@ -174,8 +178,10 @@ void* GetProgramCounter(void* const vuc) {
+@@ -177,8 +181,10 @@ void* GetProgramCounter(void* const vuc) {
      return reinterpret_cast<void*>(context->uc_mcontext.pc);
  #elif defined(__powerpc64__)
      return reinterpret_cast<void*>(context->uc_mcontext.gp_regs[32]);
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.60.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.62.1.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.60.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.62.1.bb
index b00f868..8405ebe 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.60.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.62.1.bb
@@ -10,12 +10,9 @@
            file://abseil-ppc-fixes.patch \
            file://0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch \
            "
-SRC_URI[sha256sum] = "dd1d3a8d1d2e50ad9b59e10aa7f07c7d1be2b367f3f2d33c5fade96ed5460962"
+SRC_URI[sha256sum] = "6c455e008fa86d9e9a9d85bb76da4277c0d7d9668a3bfa70dbe86e9f3c759947"
 
-RDEPENDS:${PN} = "python3-protobuf \
-                  python3-setuptools \
-                  python3-six \
-"
+RDEPENDS:${PN} = "python3-protobuf"
 
 inherit setuptools3
 inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-httptools/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-httptools/run-ptest
new file mode 100644
index 0000000..8d2017d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-httptools/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-httptools_0.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-httptools_0.6.1.bb
new file mode 100644
index 0000000..4192697
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-httptools_0.6.1.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A collection of framework independent HTTP protocol utils."
+HOMEPAGE = "https://github.com/MagicStack/httptools"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0a2d82955bf3facdf04cb882655e840e"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI[sha256sum] = "c6e26c30455600b95d94b1b836085138e82f177351454ee841c148f93a9bad5a"
+
+SRC_URI += " \
+        file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+        python3-pytest \
+        python3-unittest-automake-output \
+"
+
+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-httpx_0.26.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-httpx_0.27.0.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-httpx_0.26.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-httpx_0.27.0.bb
index 50bff7f..e4d3cbe 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-httpx_0.26.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-httpx_0.27.0.bb
@@ -5,7 +5,7 @@
 
 inherit pypi python_hatchling
 
-SRC_URI[sha256sum] = "451b55c30d5185ea6b23c2c793abf9bb237d2a7dfb901ced6ff69ad37ec1dfaf"
+SRC_URI[sha256sum] = "a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"
 
 DEPENDS += "\
     python3-hatch-fancy-pypi-readme-native \
@@ -22,6 +22,10 @@
     python3-httpcore \
     python3-idna \
     python3-sniffio \
+    python3-json \
+    python3-core \
+    python3-netclient \
+    python3-compression \
 "
 
 PACKAGES += "\
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-icecream_2.1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-icecream_2.1.3.bb
new file mode 100644
index 0000000..ec3a4b9
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-icecream_2.1.3.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Never use print() to debug again; inspect variables, expressions, and program execution with a single, simple function call."
+HOMEPAGE = "https://github.com/gruns/icecream"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=eca5ce1610d64ed40920efdce85ff8d1"
+
+SRC_URI[sha256sum] = "0aa4a7c3374ec36153a1d08f81e3080e83d8ac1eefd97d2f4fe9544e8f9b49de"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+        python3-asttokens \
+        python3-colorama \
+        python3-executing \
+        python3-numbers \
+        python3-pygments \
+        python3-pprint \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_git.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_git.bb
index 657f610..582599b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_git.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_git.bb
@@ -16,9 +16,6 @@
 S = "${WORKDIR}/git"
 
 inherit setuptools3 ptest
-PIP_INSTALL_PACKAGE = "inotify"
-PIP_INSTALL_DIST_PATH = "${S}/dist"
-
 
 RDEPENDS:${PN} += " \
     python3-ctypes \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-invoke_2.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-invoke_2.2.0.bb
new file mode 100644
index 0000000..3f2e623
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-invoke_2.2.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Pythonic task execution"
+HOMEPAGE = "https://www.pyinvoke.org/"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a8815068973f31b78c328dc067e297ab"
+
+SRC_URI[sha256sum] = "ee6cbb101af1a859c7fe84f2a264c059020b0cb7fe3535f9424300ab568f6bd5"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+        python3-fcntl \
+        python3-json \
+        python3-logging \
+        python3-pprint \
+        python3-terminal \
+        python3-unittest \
+        python3-unixadmin \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.21.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.22.2.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.21.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.22.2.bb
index 7f5dde7..b8595fe 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.21.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.22.2.bb
@@ -5,7 +5,7 @@
 
 PYPI_PACKAGE = "ipython"
 
-SRC_URI[sha256sum] = "48fbc236fbe0e138b88773fa0437751f14c3645fb483f1d4c5dee58b37e5ce73"
+SRC_URI[sha256sum] = "2dcaad9049f9056f1fef63514f176c7d41f930daa78d05b82a176202818f2c14"
 
 RDEPENDS:${PN} = "\
     python3-setuptools \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_4.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_5.0.0.bb
similarity index 79%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_4.1.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_5.0.0.bb
index 22a7985..f1dd368 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_4.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_5.0.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "Python-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c80be45b33471b4a23cf53d06a8172be"
 
-SRC_URI[sha256sum] = "1dd0ee210160c7bd30002803c443e6260ac602ea65b065652a1d567d3bfdca7a"
+SRC_URI[sha256sum] = "2cc603d913c0d8e328928454d3d295261cb037e9950227f67c9629ab4710fdf9"
 
 PYPI_PACKAGE = "jdatetime"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb
index 6c2af0d..ba18199 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb
@@ -7,11 +7,8 @@
 SRC_URI = "git://github.com/keras-team/keras-applications.git;branch=master;protocol=https"
 SRCREV ?= "3b180cb10eda683dda7913ecee2e6487288d292d"
 
-
 inherit setuptools3
 
-PIP_INSTALL_PACKAGE = "Keras_Applications"
-
 S = "${WORKDIR}/git"
 
 BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb
index 9e791c6..991aa0f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb
@@ -5,7 +5,6 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=6d3bc49400e35d5a2279d14c40dcfb09"
 
 inherit setuptools3 pkgconfig features_check
-PIP_INSTALL_PACKAGE = "Kivy"
 
 # Kivy's setup files only look for GLES libraries for Android, iOS, RPi,
 # and mali-based OS's. We need to patch the setup file to tell Kivy setup
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb
index 673d32c..8cd60d3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb
@@ -17,7 +17,6 @@
 "
 
 inherit setuptools3
-PIP_INSTALL_PACKAGE = "lrparsing"
 
 S = "${WORKDIR}/lrparsing-${PV}"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.21.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.21.1.bb
index 5a0a79a..bf1d8dd 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.21.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.21.1.bb
@@ -10,8 +10,6 @@
 
 inherit python_flit_core pypi ptest
 
-PIP_INSTALL_PACKAGE = "marshmallow"
-
 SRC_URI += " \
         file://run-ptest \
 "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb
index 2af7b57..aacc32a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb
@@ -11,5 +11,3 @@
 S = "${WORKDIR}/git"
 
 inherit setuptools3
-
-PIP_INSTALL_PACKAGE = "monotonic"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict/0001-Extend-aio-libs-multidict-909-to-3.12-as-well-to-add.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict/0001-Extend-aio-libs-multidict-909-to-3.12-as-well-to-add.patch
deleted file mode 100644
index c3cee46..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict/0001-Extend-aio-libs-multidict-909-to-3.12-as-well-to-add.patch
+++ /dev/null
@@ -1,324 +0,0 @@
-From 44eaa60cc6c86951ce36811e80c3411d1b1e4c39 Mon Sep 17 00:00:00 2001
-From: Charles Duffy <charles@dyfis.net>
-Date: Fri, 19 Jan 2024 17:47:59 -0600
-Subject: [PATCH] Extend aio-libs/multidict#909 to 3.12 as well to address aio-libs/multidict#926
-
-Upstream-Status: Submitted [https://github.com/aio-libs/multidict/pull/929]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- multidict/_multidict.c | 68 +++++++++++++++++++++---------------------
- 1 file changed, 34 insertions(+), 34 deletions(-)
-
-diff --git a/multidict/_multidict.c b/multidict/_multidict.c
-index 228d4df..6086495 100644
---- a/multidict/_multidict.c
-+++ b/multidict/_multidict.c
-@@ -9,7 +9,7 @@
- #include "_multilib/iter.h"
- #include "_multilib/views.h"
- 
--#if PY_MAJOR_VERSION < 3 || PY_MINOR_VERSION < 13
-+#if PY_MAJOR_VERSION < 3 || PY_MINOR_VERSION < 12
- #ifndef _PyArg_UnpackKeywords
- #define FASTCALL_OLD
- #endif
-@@ -444,7 +444,7 @@ fail:
- static inline PyObject *
- multidict_getall(
-     MultiDictObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     PyObject *args,
-     PyObject *kwds
- #else
-@@ -458,7 +458,7 @@ multidict_getall(
-              *key      = NULL,
-              *_default = NULL;
- 
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     static char *getall_keywords[] = {"key", "default", NULL};
- 
-     if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:getall",
-@@ -509,7 +509,7 @@ skip_optional_pos:
- static inline PyObject *
- multidict_getone(
-     MultiDictObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     PyObject *args,
-     PyObject *kwds
- #else
-@@ -522,7 +522,7 @@ multidict_getone(
-     PyObject *key      = NULL,
-              *_default = NULL;
- 
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     static char *getone_keywords[] = {"key", "default", NULL};
- 
-     if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:getone",
-@@ -563,7 +563,7 @@ skip_optional_pos:
- static inline PyObject *
- multidict_get(
-     MultiDictObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     PyObject *args,
-     PyObject *kwds
- #else
-@@ -577,7 +577,7 @@ multidict_get(
-              *_default = Py_None,
-              *ret;
- 
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     static char *getone_keywords[] = {"key", "default", NULL};
- 
-     if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:getone",
-@@ -833,7 +833,7 @@ multidict_tp_init(MultiDictObject *self, PyObject *args, PyObject *kwds)
- static inline PyObject *
- multidict_add(
-     MultiDictObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     PyObject *args,
-     PyObject *kwds
- #else
-@@ -846,7 +846,7 @@ multidict_add(
-     PyObject *key = NULL,
-              *val = NULL;
- 
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     static char *kwlist[] = {"key", "value", NULL};
-     if (!PyArg_ParseTupleAndKeywords(args, kwds, "OO:add",
-                                      kwlist, &key, &val))
-@@ -913,7 +913,7 @@ multidict_clear(MultiDictObject *self)
- static inline PyObject *
- multidict_setdefault(
-     MultiDictObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     PyObject *args,
-     PyObject *kwds
- #else
-@@ -926,7 +926,7 @@ multidict_setdefault(
-     PyObject *key      = NULL,
-              *_default = NULL;
- 
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     static char *setdefault_keywords[] = {"key", "default", NULL};
- 
-     if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:setdefault",
-@@ -967,7 +967,7 @@ skip_optional_pos:
- static inline PyObject *
- multidict_popone(
-     MultiDictObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     PyObject *args,
-     PyObject *kwds
- #else
-@@ -981,7 +981,7 @@ multidict_popone(
-              *_default = NULL,
-              *ret_val  = NULL;
- 
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     static char *popone_keywords[] = {"key", "default", NULL};
- 
-     if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:popone",
-@@ -1046,7 +1046,7 @@ skip_optional_pos:
- static inline PyObject *
- multidict_pop(
-     MultiDictObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     PyObject *args,
-     PyObject *kwds
- #else
-@@ -1060,7 +1060,7 @@ multidict_pop(
-              *_default = NULL,
-              *ret_val  = NULL;
- 
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     static char *pop_keywords[] = {"key", "default", NULL};
- 
-     if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:popone",
-@@ -1113,7 +1113,7 @@ skip_optional_pos:
- static inline PyObject *
- multidict_popall(
-     MultiDictObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     PyObject *args,
-     PyObject *kwds
- #else
-@@ -1128,7 +1128,7 @@ multidict_popall(
-              *ret_val  = NULL;
- 
- 
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     static char *popall_keywords[] = {"key", "default", NULL};
- 
-     if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:popall",
-@@ -1270,7 +1270,7 @@ static PyMethodDef multidict_methods[] = {
-     {
-         "getall",
-         (PyCFunction)multidict_getall,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-         METH_VARARGS
- #else
-         METH_FASTCALL
-@@ -1281,7 +1281,7 @@ static PyMethodDef multidict_methods[] = {
-     {
-         "getone",
-         (PyCFunction)multidict_getone,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-         METH_VARARGS
- #else
-         METH_FASTCALL
-@@ -1292,7 +1292,7 @@ static PyMethodDef multidict_methods[] = {
-     {
-         "get",
-         (PyCFunction)multidict_get,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-         METH_VARARGS
- #else
-         METH_FASTCALL
-@@ -1321,7 +1321,7 @@ static PyMethodDef multidict_methods[] = {
-     {
-         "add",
-         (PyCFunction)multidict_add,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-         METH_VARARGS
- #else
-         METH_FASTCALL
-@@ -1350,7 +1350,7 @@ static PyMethodDef multidict_methods[] = {
-     {
-         "setdefault",
-         (PyCFunction)multidict_setdefault,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-         METH_VARARGS
- #else
-         METH_FASTCALL
-@@ -1361,7 +1361,7 @@ static PyMethodDef multidict_methods[] = {
-     {
-         "popone",
-         (PyCFunction)multidict_popone,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-         METH_VARARGS
- #else
-         METH_FASTCALL
-@@ -1372,7 +1372,7 @@ static PyMethodDef multidict_methods[] = {
-     {
-         "pop",
-         (PyCFunction)multidict_pop,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-         METH_VARARGS
- #else
-         METH_FASTCALL
-@@ -1383,7 +1383,7 @@ static PyMethodDef multidict_methods[] = {
-     {
-         "popall",
-         (PyCFunction)multidict_popall,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-         METH_VARARGS
- #else
-         METH_FASTCALL
-@@ -1559,7 +1559,7 @@ multidict_proxy_tp_init(MultiDictProxyObject *self, PyObject *args,
- static inline PyObject *
- multidict_proxy_getall(
-     MultiDictProxyObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     PyObject *args,
-     PyObject *kwds
- #else
-@@ -1572,7 +1572,7 @@ multidict_proxy_getall(
-     return multidict_getall(
-         self->md,
-         args,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-         kwds
- #else
-         nargs,
-@@ -1584,7 +1584,7 @@ multidict_proxy_getall(
- static inline PyObject *
- multidict_proxy_getone(
-     MultiDictProxyObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     PyObject *args,
-     PyObject *kwds
- #else
-@@ -1596,7 +1596,7 @@ multidict_proxy_getone(
- {
-     return multidict_getone(
-         self->md, args,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-         kwds
- #else
-         nargs, kwnames
-@@ -1607,7 +1607,7 @@ multidict_proxy_getone(
- static inline PyObject *
- multidict_proxy_get(
-     MultiDictProxyObject *self,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-     PyObject *args,
-     PyObject *kwds
- #else
-@@ -1620,7 +1620,7 @@ multidict_proxy_get(
-     return multidict_get(
-         self->md,
-         args,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-         kwds
- #else
-         nargs,
-@@ -1734,7 +1734,7 @@ static PyMethodDef multidict_proxy_methods[] = {
-     {
-         "getall",
-         (PyCFunction)multidict_proxy_getall,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-         METH_VARARGS
- #else
-         METH_FASTCALL
-@@ -1745,7 +1745,7 @@ static PyMethodDef multidict_proxy_methods[] = {
-     {
-         "getone",
-         (PyCFunction)multidict_proxy_getone,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-         METH_VARARGS
- #else
-         METH_FASTCALL
-@@ -1756,7 +1756,7 @@ static PyMethodDef multidict_proxy_methods[] = {
-     {
-         "get",
-         (PyCFunction)multidict_proxy_get,
--#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
-+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
-         METH_VARARGS
- #else
-         METH_FASTCALL
--- 
-2.43.0
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_6.0.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_6.0.5.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_6.0.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_6.0.5.bb
index 19b94de..b12e180 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_6.0.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_6.0.5.bb
@@ -8,12 +8,11 @@
 
 PV .= "+git"
 
-SRCREV = "82b559cdd0b41548f3dadc5561a9aaaa7f93ae14"
+SRCREV = "a9b281b2ef4ab25d95d6b268aa88c428e75c3696"
 PYPI_SRC_URI = "git://github.com/aio-libs/multidict;branch=master;protocol=https"
 S = "${WORKDIR}/git"
 
 SRC_URI += " \
-  file://0001-Extend-aio-libs-multidict-909-to-3.12-as-well-to-add.patch \
 	file://run-ptest \
 "
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_1.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_1.9.0.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_1.8.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_1.9.0.bb
index 2e6c7cc..e51264f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_1.8.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_1.9.0.bb
@@ -5,7 +5,7 @@
 
 inherit pypi python_setuptools_build_meta
 
-SRC_URI[sha256sum] = "6ff8b244d7085a0b425b56d327b480c3b29cafbd2eff27316a004f9a7391ae07"
+SRC_URI[sha256sum] = "3cc5da0127e6a478cddd906068496a97a7618a21ce9b54bde5bf7e539c7af974"
 
 BBCLASSEXTEND = "native"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_2.0.0.bb
similarity index 69%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.6.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_2.0.0.bb
index 9055772..e4cf77a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.6.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_2.0.0.bb
@@ -5,9 +5,13 @@
 "
 SRCNAME = "paho-mqtt"
 
-inherit pypi setuptools3
+inherit pypi python_hatchling python_setuptools_build_meta
 
-SRC_URI[sha256sum] = "2a8291c81623aec00372b5a85558a372c747cbca8e9934dfe218638b8eefc26f"
+SRC_URI[sha256sum] = "13b205f29251e4f2c66a6c923c31fc4fd780561e03b2d775cff8e4f2915cf947"
+
+PYPI_SRC_URI = "https://files.pythonhosted.org/packages/73/b7/a4df0f93bbdae237e16ba402752151eceee576cbe80c235a2475fbf81eea/paho_mqtt-${PV}.tar.gz"
+
+S = "${WORKDIR}/paho_mqtt-${PV}"
 
 DEPENDS += "python3-pytest-runner-native"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.12.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.13.2.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.12.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.13.2.bb
index 0862eab..387f14b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.12.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.13.2.bb
@@ -4,7 +4,7 @@
 SECTION = "devel/python"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=2eb31a2cc1a758c34b499f287dd04ef2"
 
-SRC_URI[sha256sum] = "53cdab727c1469fdc196efd8d7ff8404a3ca91ee43c0a5714736f2020d0a5ddf"
+SRC_URI[sha256sum] = "e282bf1caf0a083fc0fb5e89ad6f79d7c579ff52c7bb58ee8587ea3d5bb9e14a"
 
 inherit pypi python_setuptools_build_meta
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pefile_2023.2.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pefile_2023.2.7.bb
index f3e0711..50dae7b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pefile_2023.2.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pefile_2023.2.7.bb
@@ -7,9 +7,6 @@
 inherit setuptools3 pypi ptest
 SRC_URI[sha256sum] = "82e6114004b3d6911c77c3953e3838654b04511b8b66e8583db70c65998017dc"
 
-PIP_INSTALL_PACKAGE = "pefile"
-PIP_INSTALL_DIST_PATH = "${S}/dist"
-
 BBCLASSEXTEND = "native nativesdk"
 
 RDEPENDS:${PN} += " \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.1.0.bb
index 91b02ea..e795bd4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.1.0.bb
@@ -14,9 +14,6 @@
 
 inherit setuptools3 ptest
 
-PIP_INSTALL_PACKAGE = "Pillow"
-PIP_INSTALL_DIST_PATH = "${S}/dist"
-
 DEPENDS += " \
     zlib \
     jpeg \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb
index a45ef45..a473299 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb
@@ -15,7 +15,6 @@
            file://0001-support-cross-complication.patch \
 "
 inherit setuptools3 python3native
-PIP_INSTALL_PACKAGE = "python_prctl"
 
 DEPENDS += "libcap"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.4.0.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.3.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.4.0.bb
index ccd6025..34f3639 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.4.0.bb
@@ -6,7 +6,7 @@
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=190f79253908c986e6cacf380c3a5f6d"
 
-SRC_URI[sha256sum] = "5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c"
+SRC_URI[sha256sum] = "831dbcea1b177b28c9baddf4c6d1013c24c3accd14a1873fffaa6a2e905f17b6"
 
 PYPI_PACKAGE = "pyasn1_modules"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch
index 37cb78a..91575d2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch
@@ -7,6 +7,8 @@
 
 Signed-off-by: Philip Balister <philip@balister.org>
 Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
+
+Upstream-Status: Pending
 ---
  tools/pybind11NewTools.cmake | 7 -------
  tools/pybind11Tools.cmake    | 6 ------
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.16.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.16.3.bb
index b264784..2086091 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.16.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.16.3.bb
@@ -17,9 +17,7 @@
 
 inherit pypi cargo-update-recipe-crates python_maturin
 
-S = "${WORKDIR}/pydantic_core-${PV}"
-
-PYPI_ARCHIVE_NAME = "pydantic_core-${PV}.${PYPI_PACKAGE_EXT}"
+PYPI_PACKAGE = "pydantic_core"
 
 RDEPENDS:${PN} += "python3-typing-extensions"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_2.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_2.6.4.bb
similarity index 93%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_2.6.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_2.6.4.bb
index 246f67c..ddc24d0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_2.6.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_2.6.4.bb
@@ -11,7 +11,7 @@
 
 inherit pypi python_hatchling
 
-SRC_URI[sha256sum] = "e07805c4c7f5c6826e33a1d4c9d47950d7eaf34868e2690f8594d2e30241f11f"
+SRC_URI[sha256sum] = "b1704e0847db01817624a6b86766967f552dd9dbf3afba4004409f908dcc84e6"
 
 DEPENDS += "python3-hatch-fancy-pypi-readme-native"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0001-make-direction-attribute-conforming-to-introspect.dt.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0001-make-direction-attribute-conforming-to-introspect.dt.patch
new file mode 100644
index 0000000..1bd1798
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0001-make-direction-attribute-conforming-to-introspect.dt.patch
@@ -0,0 +1,40 @@
+From 5fe65a35e0e7106347639f0258206fadb451c439 Mon Sep 17 00:00:00 2001
+From: Hiroaki KAWAI <hiroaki.kawai@gmail.com>
+Date: Wed, 1 Feb 2017 18:00:33 +0900
+Subject: [PATCH 1/3] make direction attribute conforming to introspect.dtd
+
+direction attribute defaults to "in" as
+in the DTD(*1), direction attribute is defined as following:
+
+```
+<!ATTRLIST arg direction (in|out) "in">
+```
+
+*1) http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
+
+Adapted from Fedora [https://src.fedoraproject.org/cgit/rpms/python-pydbus.git/]
+
+Upstream-Status: Inactive-Upstream (Last release 12/18/2016; Last commit 05/6/2018)
+
+Signed-off-by: Derek Straka <derek@asterius.io>
+---
+ pydbus/proxy_method.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pydbus/proxy_method.py b/pydbus/proxy_method.py
+index 8798edd..3e6e6ee 100644
+--- a/pydbus/proxy_method.py
++++ b/pydbus/proxy_method.py
+@@ -33,8 +33,8 @@ class ProxyMethod(object):
+ 		self.__name__ = method.attrib["name"]
+ 		self.__qualname__ = self._iface_name + "." + self.__name__
+ 
+-		self._inargs  = [(arg.attrib.get("name", ""), arg.attrib["type"]) for arg in method if arg.tag == "arg" and arg.attrib["direction"] == "in"]
+-		self._outargs = [arg.attrib["type"] for arg in method if arg.tag == "arg" and arg.attrib["direction"] == "out"]
++		self._inargs  = [(arg.attrib.get("name", ""), arg.attrib["type"]) for arg in method if arg.tag == "arg" and arg.attrib.get("direction", "in") == "in"]
++		self._outargs = [arg.attrib["type"] for arg in method if arg.tag == "arg" and arg.attrib.get("direction", "in") == "out"]
+ 		self._sinargs  = "(" + "".join(x[1] for x in self._inargs) + ")"
+ 		self._soutargs = "(" + "".join(self._outargs) + ")"
+ 
+-- 
+2.13.5
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-asynchronous-calls-58.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-asynchronous-calls-58.patch
new file mode 100644
index 0000000..b3c57ed
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-asynchronous-calls-58.patch
@@ -0,0 +1,206 @@
+From 31d6dd7893a5e1bb9eb14bfcee861a5b62f64960 Mon Sep 17 00:00:00 2001
+From: Vendula Poncova <vponcova@redhat.com>
+Date: Thu, 27 Jul 2017 18:41:29 +0200
+Subject: [PATCH 2/3] Support asynchronous calls (#58)
+
+Added support for asynchronous calls of methods. A method is called
+synchronously unless its callback parameter is specified. A callback
+is a function f(*args, returned=None, error=None), where args is
+callback_args specified in the method call, returned is a return
+value of the method and error is an exception raised by the method.
+
+Example of an asynchronous call:
+
+def func(x, y, returned=None, error=None):
+  pass
+
+proxy.Method(a, b, callback=func, callback_args=(x, y))
+
+Adapted from Fedora [https://src.fedoraproject.org/cgit/rpms/python-pydbus.git/]
+
+Upstream-Status: Inactive-Upstream (Last release 12/18/2016; Last commit 05/6/2018)
+
+Signed-off-by: Derek Straka <derek@asterius.io>
+---
+ doc/tutorial.rst       | 11 ++++++++-
+ pydbus/proxy_method.py | 44 ++++++++++++++++++++++++++++++-----
+ tests/publish_async.py | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ tests/run.sh           |  1 +
+ 4 files changed, 112 insertions(+), 7 deletions(-)
+ create mode 100644 tests/publish_async.py
+
+diff --git a/doc/tutorial.rst b/doc/tutorial.rst
+index 7474de3..b8479cf 100644
+--- a/doc/tutorial.rst
++++ b/doc/tutorial.rst
+@@ -84,7 +84,8 @@ All objects have methods, properties and signals.
+ Setting up an event loop
+ ========================
+ 
+-To handle signals emitted by exported objects, or to export your own objects, you need to setup an event loop.
++To handle signals emitted by exported objects, to asynchronously call methods
++or to export your own objects, you need to setup an event loop.
+ 
+ The only main loop supported by ``pydbus`` is GLib.MainLoop.
+ 
+@@ -156,6 +157,14 @@ To call a method::
+ 
+     dev.Disconnect()
+ 
++To asynchronously call a method::
++
++    def print_result(returned=None, error=None):
++        print(returned, error)
++
++    dev.GetAppliedConnection(0, callback=print_result)
++    loop.run()
++
+ To read a property::
+ 
+     print(dev.Autoconnect)
+diff --git a/pydbus/proxy_method.py b/pydbus/proxy_method.py
+index 3e6e6ee..442fe07 100644
+--- a/pydbus/proxy_method.py
++++ b/pydbus/proxy_method.py
+@@ -65,15 +65,34 @@ class ProxyMethod(object):
+ 
+ 		# Python 2 sux
+ 		for kwarg in kwargs:
+-			if kwarg not in ("timeout",):
++			if kwarg not in ("timeout", "callback", "callback_args"):
+ 				raise TypeError(self.__qualname__ + " got an unexpected keyword argument '{}'".format(kwarg))
+ 		timeout = kwargs.get("timeout", None)
++		callback = kwargs.get("callback", None)
++		callback_args = kwargs.get("callback_args", tuple())
++
++		call_args = (
++			instance._bus_name,
++			instance._path,
++			self._iface_name,
++			self.__name__,
++			GLib.Variant(self._sinargs, args),
++			GLib.VariantType.new(self._soutargs),
++			0,
++			timeout_to_glib(timeout),
++			None
++		)
++
++		if callback:
++			call_args += (self._finish_async_call, (callback, callback_args))
++			instance._bus.con.call(*call_args)
++			return None
++		else:
++			ret = instance._bus.con.call_sync(*call_args)
++			return self._unpack_return(ret)
+ 
+-		ret = instance._bus.con.call_sync(
+-			instance._bus_name, instance._path,
+-			self._iface_name, self.__name__, GLib.Variant(self._sinargs, args), GLib.VariantType.new(self._soutargs),
+-			0, timeout_to_glib(timeout), None).unpack()
+-
++	def _unpack_return(self, values):
++		ret = values.unpack()
+ 		if len(self._outargs) == 0:
+ 			return None
+ 		elif len(self._outargs) == 1:
+@@ -81,6 +100,19 @@ class ProxyMethod(object):
+ 		else:
+ 			return ret
+ 
++	def _finish_async_call(self, source, result, user_data):
++		error = None
++		return_args = None
++
++		try:
++			ret = source.call_finish(result)
++			return_args = self._unpack_return(ret)
++		except Exception as err:
++			error = err
++
++		callback, callback_args = user_data
++		callback(*callback_args, returned=return_args, error=error)
++
+ 	def __get__(self, instance, owner):
+ 		if instance is None:
+ 			return self
+diff --git a/tests/publish_async.py b/tests/publish_async.py
+new file mode 100644
+index 0000000..3f79b62
+--- /dev/null
++++ b/tests/publish_async.py
+@@ -0,0 +1,63 @@
++from pydbus import SessionBus
++from gi.repository import GLib
++from threading import Thread
++import sys
++
++done = 0
++loop = GLib.MainLoop()
++
++class TestObject(object):
++	'''
++<node>
++	<interface name='net.lew21.pydbus.tests.publish_async'>
++		<method name='HelloWorld'>
++			<arg type='i' name='x' direction='in'/>
++			<arg type='s' name='response' direction='out'/>
++		</method>
++	</interface>
++</node>
++	'''
++	def __init__(self, id):
++		self.id = id
++
++	def HelloWorld(self, x):
++		res = self.id + ": " + str(x)
++		print(res)
++		return res
++
++bus = SessionBus()
++
++with bus.publish("net.lew21.pydbus.tests.publish_async", TestObject("Obj")):
++	remote = bus.get("net.lew21.pydbus.tests.publish_async")
++
++	def callback(x, returned=None, error=None):
++		print("asyn: " + returned)
++		assert (returned is not None)
++		assert(error is None)
++		assert(x == int(returned.split()[1]))
++
++		global done
++		done += 1
++		if done == 3:
++			loop.quit()
++
++	def t1_func():
++		remote.HelloWorld(1, callback=callback, callback_args=(1,))
++		remote.HelloWorld(2, callback=callback, callback_args=(2,))
++		print("sync: " + remote.HelloWorld(3))
++		remote.HelloWorld(4, callback=callback, callback_args=(4,))
++
++	t1 = Thread(None, t1_func)
++	t1.daemon = True
++
++	def handle_timeout():
++		print("ERROR: Timeout.")
++		sys.exit(1)
++
++	GLib.timeout_add_seconds(2, handle_timeout)
++
++	t1.start()
++
++	loop.run()
++
++	t1.join()
+diff --git a/tests/run.sh b/tests/run.sh
+index 8d93644..271c58a 100755
+--- a/tests/run.sh
++++ b/tests/run.sh
+@@ -15,4 +15,5 @@ then
+ 	"$PYTHON" $TESTS_DIR/publish.py
+ 	"$PYTHON" $TESTS_DIR/publish_properties.py
+ 	"$PYTHON" $TESTS_DIR/publish_multiface.py
++	"$PYTHON" $TESTS_DIR/publish_async.py
+ fi
+-- 
+2.13.5
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0003-Support-transformation-between-D-Bus-errors-and-exce.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0003-Support-transformation-between-D-Bus-errors-and-exce.patch
new file mode 100644
index 0000000..a1b8a6c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/0003-Support-transformation-between-D-Bus-errors-and-exce.patch
@@ -0,0 +1,495 @@
+From 773858e1afd21cdf3ceef2cd35509f0b4882bf16 Mon Sep 17 00:00:00 2001
+From: Vendula Poncova <vponcova@redhat.com>
+Date: Tue, 1 Aug 2017 16:54:24 +0200
+Subject: [PATCH 3/3] Support transformation between D-Bus errors and
+ exceptions.
+
+Exceptions can be registered with decorators, raised in a remote
+method and recreated after return from the remote call.
+
+Adapted from Fedora [https://src.fedoraproject.org/cgit/rpms/python-pydbus.git/]
+
+Upstream-Status: Inactive-Upstream (Last release 12/18/2016; Last commit 05/6/2018)
+
+Signed-off-by: Derek Straka <derek@asterius.io>
+---
+ doc/tutorial.rst       |  47 ++++++++++++++++++
+ pydbus/error.py        |  97 ++++++++++++++++++++++++++++++++++++
+ pydbus/proxy_method.py |  18 +++++--
+ pydbus/registration.py |  16 ++++--
+ tests/error.py         |  67 +++++++++++++++++++++++++
+ tests/publish_error.py | 132 +++++++++++++++++++++++++++++++++++++++++++++++++
+ tests/run.sh           |   2 +
+ 7 files changed, 371 insertions(+), 8 deletions(-)
+ create mode 100644 pydbus/error.py
+ create mode 100644 tests/error.py
+ create mode 100644 tests/publish_error.py
+
+diff --git a/doc/tutorial.rst b/doc/tutorial.rst
+index b8479cf..7fe55e1 100644
+--- a/doc/tutorial.rst
++++ b/doc/tutorial.rst
+@@ -341,6 +341,53 @@ See ``help(bus.request_name)`` and ``help(bus.register_object)`` for details.
+ 
+ .. --------------------------------------------------------------------
+ 
++Error handling
++==============
++
++You can map D-Bus errors to your exception classes for better error handling.
++To handle D-Bus errors, use the ``@map_error`` decorator::
++
++    from pydbus.error import map_error
++
++    @map_error("org.freedesktop.DBus.Error.InvalidArgs")
++    class InvalidArgsException(Exception):
++        pass
++
++    try:
++        ...
++    catch InvalidArgsException as e:
++        print(e)
++
++To register new D-Bus errors, use the ``@register_error`` decorator::
++
++    from pydbus.error import register_error
++
++    @map_error("net.lew21.pydbus.TutorialExample.MyError", MY_DOMAIN, MY_EXCEPTION_CODE)
++    class MyException(Exception):
++        pass
++
++Then you can raise ``MyException`` from the D-Bus method of the remote object::
++
++    def Method():
++        raise MyException("Message")
++
++And catch the same exception on the client side::
++
++    try:
++        proxy.Method()
++    catch MyException as e:
++        print(e)
++
++To handle all unknown D-Bus errors, use the ``@map_by_default`` decorator to specify the default exception::
++
++    from pydbus.error import map_by_default
++
++    @map_by_default
++    class DefaultException(Exception):
++        pass
++
++.. --------------------------------------------------------------------
++
+ Data types
+ ==========
+ 
+diff --git a/pydbus/error.py b/pydbus/error.py
+new file mode 100644
+index 0000000..aaa3510
+--- /dev/null
++++ b/pydbus/error.py
+@@ -0,0 +1,97 @@
++from gi.repository import GLib, Gio
++
++
++def register_error(name, domain, code):
++	"""Register and map decorated exception class to a DBus error."""
++	def decorated(cls):
++		error_registration.register_error(cls, name, domain, code)
++		return cls
++
++	return decorated
++
++
++def map_error(error_name):
++	"""Map decorated exception class to a DBus error."""
++	def decorated(cls):
++		error_registration.map_error(cls, error_name)
++		return cls
++
++	return decorated
++
++
++def map_by_default(cls):
++	"""Map decorated exception class to all unknown DBus errors."""
++	error_registration.map_by_default(cls)
++	return cls
++
++
++class ErrorRegistration(object):
++	"""Class for mapping exceptions to DBus errors."""
++
++	_default = None
++	_map = dict()
++	_reversed_map = dict()
++
++	def map_by_default(self, exception_cls):
++		"""Set the exception class as a default."""
++		self._default = exception_cls
++
++	def map_error(self, exception_cls, name):
++		"""Map the exception class to a DBus name."""
++		self._map[name] = exception_cls
++		self._reversed_map[exception_cls] = name
++
++	def register_error(self, exception_cls, name, domain, code):
++		"""Map and register the exception class to a DBus name."""
++		self.map_error(exception_cls, name)
++		return Gio.DBusError.register_error(domain, code, name)
++
++	def is_registered_exception(self, obj):
++		"""Is the exception registered?"""
++		return obj.__class__ in self._reversed_map
++
++	def get_dbus_name(self, obj):
++		"""Get the DBus name of the exception."""
++		return self._reversed_map.get(obj.__class__)
++
++	def get_exception_class(self, name):
++		"""Get the exception class mapped to the DBus name."""
++		return self._map.get(name, self._default)
++
++	def transform_message(self, name, message):
++		"""Transform the message of the exception."""
++		prefix = "{}:{}: ".format("GDBus.Error", name)
++
++		if message.startswith(prefix):
++			return message[len(prefix):]
++
++		return message
++
++	def transform_exception(self, e):
++		"""Transform the remote error to the exception."""
++		if not isinstance(e, GLib.Error):
++			return e
++
++		if not Gio.DBusError.is_remote_error(e):
++			return e
++
++		# Get DBus name of the error.
++		name = Gio.DBusError.get_remote_error(e)
++		# Get the exception class.
++		exception_cls = self.get_exception_class(name)
++
++		# Return the original exception.
++		if not exception_cls:
++			return e
++
++		# Return new exception.
++		message = self.transform_message(name, e.message)
++		exception = exception_cls(message)
++		exception.dbus_name = name
++		exception.dbus_domain = e.domain
++		exception.dbus_code = e.code
++		return exception
++
++
++# Default error registration.
++error_registration = ErrorRegistration()
+diff --git a/pydbus/proxy_method.py b/pydbus/proxy_method.py
+index 442fe07..a73f9eb 100644
+--- a/pydbus/proxy_method.py
++++ b/pydbus/proxy_method.py
+@@ -2,6 +2,7 @@ from gi.repository import GLib
+ from .generic import bound_method
+ from .identifier import filter_identifier
+ from .timeout import timeout_to_glib
++from .error import error_registration
+ 
+ try:
+ 	from inspect import Signature, Parameter
+@@ -87,9 +88,20 @@ class ProxyMethod(object):
+ 			call_args += (self._finish_async_call, (callback, callback_args))
+ 			instance._bus.con.call(*call_args)
+ 			return None
++
+ 		else:
+-			ret = instance._bus.con.call_sync(*call_args)
+-			return self._unpack_return(ret)
++			result = None
++			error = None
++
++			try:
++				result = instance._bus.con.call_sync(*call_args)
++			except Exception as e:
++				error = error_registration.transform_exception(e)
++
++			if error:
++				raise error
++
++			return self._unpack_return(result)
+ 
+ 	def _unpack_return(self, values):
+ 		ret = values.unpack()
+@@ -108,7 +120,7 @@ class ProxyMethod(object):
+ 			ret = source.call_finish(result)
+ 			return_args = self._unpack_return(ret)
+ 		except Exception as err:
+-			error = err
++			error = error_registration.transform_exception(err)
+ 
+ 		callback, callback_args = user_data
+ 		callback(*callback_args, returned=return_args, error=error)
+diff --git a/pydbus/registration.py b/pydbus/registration.py
+index f531539..1d2cbcb 100644
+--- a/pydbus/registration.py
++++ b/pydbus/registration.py
+@@ -5,6 +5,7 @@ from . import generic
+ from .exitable import ExitableWithAliases
+ from functools import partial
+ from .method_call_context import MethodCallContext
++from .error import error_registration
+ import logging
+ 
+ try:
+@@ -91,11 +92,16 @@ class ObjectWrapper(ExitableWithAliases("unwrap")):
+ 			logger = logging.getLogger(__name__)
+ 			logger.exception("Exception while handling %s.%s()", interface_name, method_name)
+ 
+-			#TODO Think of a better way to translate Python exception types to DBus error types.
+-			e_type = type(e).__name__
+-			if not "." in e_type:
+-				e_type = "unknown." + e_type
+-			invocation.return_dbus_error(e_type, str(e))
++			if error_registration.is_registered_exception(e):
++				name = error_registration.get_dbus_name(e)
++				invocation.return_dbus_error(name, str(e))
++			else:
++				logger.info("name is not registered")
++				e_type = type(e).__name__
++				if not "." in e_type:
++					e_type = "unknown." + e_type
++
++				invocation.return_dbus_error(e_type, str(e))
+ 
+ 	def Get(self, interface_name, property_name):
+ 		type = self.readable_properties[interface_name + "." + property_name]
+diff --git a/tests/error.py b/tests/error.py
+new file mode 100644
+index 0000000..3ec507d
+--- /dev/null
++++ b/tests/error.py
+@@ -0,0 +1,67 @@
++from pydbus.error import ErrorRegistration
++
++
++class ExceptionA(Exception):
++	pass
++
++
++class ExceptionB(Exception):
++	pass
++
++
++class ExceptionC(Exception):
++	pass
++
++
++class ExceptionD(Exception):
++	pass
++
++
++class ExceptionE(Exception):
++	pass
++
++
++def test_error_mapping():
++	r = ErrorRegistration()
++	r.map_error(ExceptionA, "net.lew21.pydbus.tests.ErrorA")
++	r.map_error(ExceptionB, "net.lew21.pydbus.tests.ErrorB")
++	r.map_error(ExceptionC, "net.lew21.pydbus.tests.ErrorC")
++
++	assert r.is_registered_exception(ExceptionA("Test"))
++	assert r.is_registered_exception(ExceptionB("Test"))
++	assert r.is_registered_exception(ExceptionC("Test"))
++	assert not r.is_registered_exception(ExceptionD("Test"))
++	assert not r.is_registered_exception(ExceptionE("Test"))
++
++	assert r.get_dbus_name(ExceptionA("Test")) == "net.lew21.pydbus.tests.ErrorA"
++	assert r.get_dbus_name(ExceptionB("Test")) == "net.lew21.pydbus.tests.ErrorB"
++	assert r.get_dbus_name(ExceptionC("Test")) == "net.lew21.pydbus.tests.ErrorC"
++
++	assert r.get_exception_class("net.lew21.pydbus.tests.ErrorA") == ExceptionA
++	assert r.get_exception_class("net.lew21.pydbus.tests.ErrorB") == ExceptionB
++	assert r.get_exception_class("net.lew21.pydbus.tests.ErrorC") == ExceptionC
++	assert r.get_exception_class("net.lew21.pydbus.tests.ErrorD") is None
++	assert r.get_exception_class("net.lew21.pydbus.tests.ErrorE") is None
++
++	r.map_by_default(ExceptionD)
++	assert not r.is_registered_exception(ExceptionD("Test"))
++	assert r.get_exception_class("net.lew21.pydbus.tests.ErrorD") == ExceptionD
++	assert r.get_exception_class("net.lew21.pydbus.tests.ErrorE") == ExceptionD
++
++
++def test_transform_message():
++	r = ErrorRegistration()
++	n1 = "net.lew21.pydbus.tests.ErrorA"
++	m1 = "GDBus.Error:net.lew21.pydbus.tests.ErrorA: Message1"
++
++	n2 = "net.lew21.pydbus.tests.ErrorB"
++	m2 = "GDBus.Error:net.lew21.pydbus.tests.ErrorB: Message2"
++
++	assert r.transform_message(n1, m1) == "Message1"
++	assert r.transform_message(n2, m2) == "Message2"
++	assert r.transform_message(n1, m2) == m2
++	assert r.transform_message(n2, m1) == m1
++
++
++test_error_mapping()
++test_transform_message()
+diff --git a/tests/publish_error.py b/tests/publish_error.py
+new file mode 100644
+index 0000000..aa8a18a
+--- /dev/null
++++ b/tests/publish_error.py
+@@ -0,0 +1,132 @@
++import sys
++from threading import Thread
++from gi.repository import GLib, Gio
++from pydbus import SessionBus
++from pydbus.error import register_error, map_error, map_by_default, error_registration
++
++import logging
++logger = logging.getLogger('pydbus.registration')
++logger.disabled = True
++
++loop = GLib.MainLoop()
++DOMAIN = Gio.DBusError.quark()  # TODO: Register new domain.
++
++
++@register_error("net.lew21.pydbus.tests.ErrorA", DOMAIN, 1000)
++class ExceptionA(Exception):
++	pass
++
++
++@register_error("net.lew21.pydbus.tests.ErrorB", DOMAIN, 2000)
++class ExceptionB(Exception):
++	pass
++
++
++@map_error("org.freedesktop.DBus.Error.InvalidArgs")
++class ExceptionC(Exception):
++	pass
++
++
++@map_by_default
++class ExceptionD(Exception):
++	pass
++
++
++class ExceptionE(Exception):
++	pass
++
++
++class TestObject(object):
++	'''
++<node>
++	<interface name='net.lew21.pydbus.tests.TestInterface'>
++		<method name='RaiseA'>
++			<arg type='s' name='msg' direction='in'/>
++		</method>
++		<method name='RaiseB'>
++			<arg type='s' name='msg' direction='in'/>
++		</method>
++		<method name='RaiseD'>
++			<arg type='s' name='msg' direction='in'/>
++		</method>
++		<method name='RaiseE'>
++			<arg type='s' name='msg' direction='in'/>
++		</method>
++	</interface>
++</node>
++	'''
++
++	def RaiseA(self, msg):
++		raise ExceptionA(msg)
++
++	def RaiseB(self, msg):
++		raise ExceptionB(msg)
++
++	def RaiseD(self, msg):
++		raise ExceptionD(msg)
++
++	def RaiseE(self, msg):
++		raise ExceptionE(msg)
++
++bus = SessionBus()
++
++with bus.publish("net.lew21.pydbus.tests.Test", TestObject()):
++	remote = bus.get("net.lew21.pydbus.tests.Test")
++
++	def t_func():
++		# Test new registered errors.
++		try:
++			remote.RaiseA("Test A")
++		except ExceptionA as e:
++			assert str(e) == "Test A"
++
++		try:
++			remote.RaiseB("Test B")
++		except ExceptionB as e:
++			assert str(e) == "Test B"
++
++		# Test mapped errors.
++		try:
++			remote.Get("net.lew21.pydbus.tests.TestInterface", "Foo")
++		except ExceptionC as e:
++			assert str(e) == "No such property 'Foo'"
++
++		# Test default errors.
++		try:
++			remote.RaiseD("Test D")
++		except ExceptionD as e:
++			assert str(e) == "Test D"
++
++		try:
++			remote.RaiseE("Test E")
++		except ExceptionD as e:
++			assert str(e) == "Test E"
++
++		# Test with no default errors.
++		error_registration.map_by_default(None)
++
++		try:
++			remote.RaiseD("Test D")
++		except Exception as e:
++			assert not isinstance(e, ExceptionD)
++
++		try:
++			remote.RaiseE("Test E")
++		except Exception as e:
++			assert not isinstance(e, ExceptionD)
++			assert not isinstance(e, ExceptionE)
++
++		loop.quit()
++
++	t = Thread(None, t_func)
++	t.daemon = True
++
++	def handle_timeout():
++		print("ERROR: Timeout.")
++		sys.exit(1)
++
++	GLib.timeout_add_seconds(4, handle_timeout)
++
++	t.start()
++	loop.run()
++	t.join()
+diff --git a/tests/run.sh b/tests/run.sh
+index 271c58a..a08baf8 100755
+--- a/tests/run.sh
++++ b/tests/run.sh
+@@ -10,10 +10,11 @@ PYTHON=${1:-python}
+ 
+ "$PYTHON" $TESTS_DIR/context.py
+ "$PYTHON" $TESTS_DIR/identifier.py
++"$PYTHON" $TESTS_DIR/error.py
+ if [ "$2" != "dontpublish" ]
+ then
+ 	"$PYTHON" $TESTS_DIR/publish.py
+ 	"$PYTHON" $TESTS_DIR/publish_properties.py
+ 	"$PYTHON" $TESTS_DIR/publish_multiface.py
+ 	"$PYTHON" $TESTS_DIR/publish_async.py
+ fi
+-- 
+2.13.5
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/run-ptest
new file mode 100644
index 0000000..782ceed
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus/run-ptest
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+for case in `find tests -type f -name '*.sh'`; do
+    bash $case python3 >$case.output 2>&1
+    ret=$?
+    if [ $ret -ne 0 ]; then
+        cat $case.output
+        echo "FAIL: ${case}"
+    elif grep -i 'SKIP' $case.output; then
+        echo "SKIP: ${case}"
+    else
+        echo "PASS: ${case}"
+    fi
+    rm -f $case.output
+done
\ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb
new file mode 100644
index 0000000..7399ae1
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "Pythonic DBus library"
+HOMEPAGE = "https://pypi.python.org/pypi/pydbus/"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a916467b91076e631dd8edb7424769c7"
+
+SRCREV = "f2e6355a88351e7d644ccb2b4d67b19305507312"
+SRC_URI = " \
+    git://github.com/LEW21/pydbus.git;protocol=https;branch=master \
+    file://0001-make-direction-attribute-conforming-to-introspect.dt.patch \
+    file://0002-Support-asynchronous-calls-58.patch \
+    file://0003-Support-transformation-between-D-Bus-errors-and-exce.patch \
+    file://run-ptest \
+"
+
+inherit ptest setuptools3
+
+S = "${WORKDIR}/git"
+
+RDEPENDS:${PN} = "python3-pygobject \
+                  python3-io \
+                  python3-logging"
+
+RDEPENDS:${PN}-ptests = "bash"
+
+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-pylint/0001-Adjust-test-expectations-for-ptest.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint/0001-Adjust-test-expectations-for-ptest.patch
new file mode 100644
index 0000000..8edecbf
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint/0001-Adjust-test-expectations-for-ptest.patch
@@ -0,0 +1,44 @@
+From f3a213cf4922c122e554277ea2031c0c54cd3fe5 Mon Sep 17 00:00:00 2001
+From: Dan McGregor <dan.mcgregor@vecima.com>
+Date: Wed, 13 Mar 2024 14:08:25 -0600
+Subject: [PATCH] Adjust test expectations for ptest
+
+Because of the way we install ptests, some first party imports
+became third party. Reflect that in the test case.
+
+Upstream-Status: Inappropriate (embedded specific)
+Signed-off-by: Dan McGregor <dan.mcgregor@vecima.com>
+---
+ tests/functional/w/wrong_import_order.txt | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/tests/functional/w/wrong_import_order.txt b/tests/functional/w/wrong_import_order.txt
+index 068d2140d..9594ff9e0 100644
+--- a/tests/functional/w/wrong_import_order.txt
++++ b/tests/functional/w/wrong_import_order.txt
+@@ -3,14 +3,14 @@ wrong-import-order:14:0:14:10::"standard import ""sys"" should be placed before
+ wrong-import-order:15:0:15:15::"standard import ""datetime"" should be placed before third party imports ""six"", ""astroid.are_exclusive""":UNDEFINED

+ wrong-import-order:18:0:18:22::"third party import ""totally_missing"" should be placed before local import ""package.Class""":UNDEFINED

+ wrong-import-order:20:0:20:14::"third party import ""astroid"" should be placed before local imports ""package.Class"", "".package""":UNDEFINED

+-wrong-import-order:22:0:22:22::"first party import ""pylint.checkers"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED

+-wrong-import-order:23:0:23:25::"first party import ""pylint.config"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED

+-wrong-import-order:24:0:24:17::"first party import ""pylint.sys"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED

+-wrong-import-order:25:0:25:28::"first party import ""pylint.pyreverse"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED

+-wrong-import-order:30:0:30:40::"third party import ""six.moves.urllib.parse.quote"" should be placed before first party imports ""pylint.checkers"", ""pylint.config"", ""pylint.sys"", ""pylint.pyreverse"" and local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED

+-wrong-import-order:31:0:31:23::"first party import ""pylint.constants"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED

+-wrong-import-order:32:0:32:19::"standard import ""re"" should be placed before third party imports ""six"", ""astroid.are_exclusive"", ""unused_import"", ""totally_missing"", ""astroid"", ""six.moves.urllib.parse.quote"", first party imports ""pylint.checkers"", ""pylint.config"", ""pylint.sys"", ""pylint.pyreverse"", ""pylint.constants"", and local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED

+-wrong-import-order:32:0:32:19::"third party import ""requests"" should be placed before first party imports ""pylint.checkers"", ""pylint.config"", ""pylint.sys"", ""pylint.pyreverse"", ""pylint.constants"" and local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED

+-wrong-import-order:33:0:33:24::"first party import ""pylint.exceptions"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED

+-wrong-import-order:34:0:34:21::"first party import ""pylint.message"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED

+-wrong-import-order:35:0:35:11::"standard import ""time"" should be placed before third party imports ""six"", ""astroid.are_exclusive"", ""unused_import"" (...) ""astroid"", ""six.moves.urllib.parse.quote"", ""requests"", first party imports ""pylint.checkers"", ""pylint.config"", ""pylint.sys"" (...) ""pylint.constants"", ""pylint.exceptions"", ""pylint.message"", and local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED

++wrong-import-order:22:0:22:22::"third party import ""pylint.checkers"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED

++wrong-import-order:23:0:23:25::"third party import ""pylint.config"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED

++wrong-import-order:24:0:24:17::"third party import ""pylint.sys"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED

++wrong-import-order:25:0:25:28::"third party import ""pylint.pyreverse"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED

++wrong-import-order:30:0:30:40::"third party import ""six.moves.urllib.parse.quote"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED

++wrong-import-order:31:0:31:23::"third party import ""pylint.constants"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED

++wrong-import-order:32:0:32:19::"standard import ""re"" should be placed before third party imports ""six"", ""astroid.are_exclusive"", ""unused_import"" (...) ""pylint.pyreverse"", ""six.moves.urllib.parse.quote"", ""pylint.constants"" and local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED

++wrong-import-order:32:0:32:19::"third party import ""requests"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED

++wrong-import-order:33:0:33:24::"third party import ""pylint.exceptions"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED

++wrong-import-order:34:0:34:21::"third party import ""pylint.message"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED

++wrong-import-order:35:0:35:11::"standard import ""time"" should be placed before third party imports ""six"", ""astroid.are_exclusive"", ""unused_import"" (...) ""requests"", ""pylint.exceptions"", ""pylint.message"" and local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED

diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_3.0.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_3.1.0.bb
similarity index 91%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_3.0.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_3.1.0.bb
index eb4b9e8..12f4f90 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_3.0.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_3.1.0.bb
@@ -3,10 +3,11 @@
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c107cf754550e65755c42985a5d4e9c9"
 
-SRC_URI += "git://github.com/pylint-dev/pylint;branch=maintenance/3.0.x;protocol=https \
+SRC_URI += "git://github.com/pylint-dev/pylint;branch=maintenance/3.1.x;protocol=https \
+           file://0001-Adjust-test-expectations-for-ptest.patch \
            file://run-ptest \
            "
-SRCREV = "1a5ffc1f447b77071ffe18a9c6836c09147ee2ed"
+SRCREV = "053c2c3a25f97f043e10cdd41d2609e495a68f57"
 
 inherit python_setuptools_build_meta ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymetno_0.12.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymetno_0.12.0.bb
index 97985a8..5be6e63 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymetno_0.12.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymetno_0.12.0.bb
@@ -9,8 +9,6 @@
 
 inherit setuptools3
 
-PIP_INSTALL_PACKAGE = "PyMetno"
-
 RDEPENDS:${PN} = "\
 	python3-aiohttp (>=3.6.1) \
 	python3-async-timeout (>=3.0.1) \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.185.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.188.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.185.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.188.bb
index ce4671d..59a00be 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.185.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.188.bb
@@ -3,12 +3,10 @@
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20"
 
-SRC_URI[sha256sum] = "3ccdc6ee48d26d82c77ba3f5d8fd41a79eaaef0ad5619f37a65b060e92f6da4c"
+SRC_URI[sha256sum] = "c2313d059a9f4d1221243fcda64fb8ae11603c1745e92d57c4071aad04336696"
 
 inherit python_poetry_core pypi
 
-PIP_INSTALL_PACKAGE = "pymisp"
-
 RDEPENDS:${PN} += " \
     python3-dateutil \
     python3-json \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.6.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.6.6.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.6.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.6.6.bb
index 4f53d01..8e18164 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.6.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.6.6.bb
@@ -3,7 +3,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=eba8057aa82c058d2042b4b0a0e9cc63"
 
-SRC_URI[sha256sum] = "6eee2c7eedb794317784c967096fa1fe42200357e9b5a349d838ee9159624fe2"
+SRC_URI[sha256sum] = "c4d556a0954d00a9e1c8f1d0de03f41c4800336e6d785e820f2917eeb4ee7736"
 
 inherit pypi python_setuptools_build_meta
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.6.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.6.3.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.6.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.6.3.bb
index 84c61ec..6b37e18 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.6.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.6.3.bb
@@ -13,7 +13,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=78bc2e6e87c8c61272937b879e6dc2f8"
 
-SRC_URI[sha256sum] = "64d8fadce6a74f478f29832c1eaa2a04856655ebff17292d5237fc8317c3a3c5"
+SRC_URI[sha256sum] = "9752fe749c21e460a564bb3f52fc319b892c62ee61c5138b4a9bbf94ad2755e6"
 
 DEPENDS += "python3-six-native"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.2.1.bb
index 7a96635..2807c05 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.2.1.bb
@@ -24,8 +24,6 @@
 
 inherit python_setuptools3_rust cargo-update-recipe-crates
 
-PIP_INSTALL_DIST_PATH = "${S}/dist"
-
 # crossbeam-* -> std::sync::atomic AtomicI64, AtomicU64
 # not supported on mips/powerpc with 32-bit pointers
 # https://doc.rust-lang.org/std/sync/atomic/#portability
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.6.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.6.bb
index 2eda16f..4920204 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.6.bb
@@ -3,7 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=136e4f49dbf29942c572a3a8f6e88a77"
 
-SRC_URI[sha256sum] = "3a048872a9c4ba14c3e90cc1aa20cbc2def7d01c7c8db3777ec281ba9c057675"
+SRC_URI[sha256sum] = "ffe523a89c1c222598c76856e76852b787504ddb72dd5d9b6617ffa8aa2cde5f"
 
 inherit pypi python_setuptools_build_meta
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_4.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_5.0.0.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_4.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_5.0.0.bb
index 0be97e5..e3e4aff 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_4.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_5.0.0.bb
@@ -5,7 +5,7 @@
     file://LICENSE;md5=cbc4e25353c748c817db2daffe605e43 \
 "
 
-SRC_URI[sha256sum] = "3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"
+SRC_URI[sha256sum] = "5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixtures_1.0.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixtures_1.0.7.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixtures_1.0.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixtures_1.0.7.bb
index dcf662a..f5e6dbf 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixtures_1.0.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-lazy-fixtures_1.0.7.bb
@@ -12,7 +12,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=4475e66fcfabe27395e6764c8f69c876"
 
-SRC_URI[sha256sum] = "066b253a94c249e6d9cdfad465e2503d2219139fb468d8f687243dfde39ab9cb"
+SRC_URI[sha256sum] = "87ef7424dc0229ff9cb72d482f49b7806535c3500641f612c13ddf243c9adacb"
 
 inherit pypi python_poetry_core
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-localserver/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-localserver/run-ptest
new file mode 100644
index 0000000..8d2017d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-localserver/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-localserver_0.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-localserver_0.8.1.bb
new file mode 100644
index 0000000..6698178
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-localserver_0.8.1.bb
@@ -0,0 +1,29 @@
+SUMMARY = "pytest plugin to test server connections locally."
+HOMEPAGE = "https://github.com/pytest-dev/pytest-localserver"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b8da7a541d738b054dcbf70c31530432"
+
+DEPENDS += "python3-setuptools-scm-native"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI[sha256sum] = "66569c34fef31a5750b16effd1cd1288a7a90b59155d005e7f916accd3dee4f1"
+
+SRC_URI += " \
+        file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+	python3-pytest \
+	python3-requests \
+	python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+        install -d ${D}${PTEST_PATH}/tests
+        cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+	python3-werkzeug \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.3.1.bb
similarity index 76%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.2.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.3.1.bb
index a7daa05..b56c26a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-timeout_2.3.1.bb
@@ -5,7 +5,7 @@
 
 PYPI_PACKAGE = "pytest-timeout"
 
-SRC_URI[sha256sum] = "3b0b95dabf3cb50bac9ef5ca912fa0cfc286526af17afc806824df20c2f72c90"
+SRC_URI[sha256sum] = "12397729125c6ecbdaca01035b9e5239d4db97352320af155b3f5de1ba5165d9"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.9.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.10.bb
similarity index 74%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.9.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.10.bb
index 81bffac..c094a8d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.9.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.10.bb
@@ -4,11 +4,11 @@
 SECTION = "devel/python"
 
 LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8458383225d7107f3383ee5c521628d2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=aedb5a2679cd1552fb61c181ef974b9e"
 
 PYPI_PACKAGE = "pyzstd"
 
-SRC_URI[sha256sum] = "cbfdde6c5768ffa5d2f14127bbc1d7c3c2d03c0ceaeb0736946197e06275ccc7"
+SRC_URI[sha256sum] = "83603a97fdbcf2139f475c940789f09e32703f931f29f4a8ddf3551e6700108b"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_1.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_2.0.0.bb
similarity index 65%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_1.3.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_2.0.0.bb
index 8c2f891..71cafb5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_1.3.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_2.0.0.bb
@@ -1,7 +1,7 @@
 LICENSE = "ISC"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=22d117a849df10d047ed9b792838e863"
 
-SRC_URI[sha256sum] = "75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a"
+SRC_URI[sha256sum] = "b3dffaebd884d8cd778494369603a9e7b58d29111bf6b41bdc2dcd87203af4e9"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-responses_0.25.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-responses_0.25.0.bb
new file mode 100644
index 0000000..f4b59c7
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-responses_0.25.0.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "A utility library for mocking out the requests Python library."
+HOMEPAGE = "https://github.com/getsentry/responses"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0e601511a8517f4daf688a8eb95be7a2"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "01ae6a02b4f34e39bffceb0fc6786b67a25eae919c6368d05eabc8d9576c2a66"
+
+RDEPENDS:${PN} += " \
+	python3-mock \
+	python3-pyyaml \
+	python3-requests \
+	python3-urllib3 \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt/0001-py-scrypt-remove-the-hard-coded-include-paths.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt/0001-py-scrypt-remove-the-hard-coded-include-paths.patch
index d535e43..3678d46 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt/0001-py-scrypt-remove-the-hard-coded-include-paths.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt/0001-py-scrypt-remove-the-hard-coded-include-paths.patch
@@ -1,4 +1,4 @@
-From d8db473ce9346cd6254c90e13ac45b3bbde494c4 Mon Sep 17 00:00:00 2001
+From 47ede0950740e8919c28774840e77f223d5f3124 Mon Sep 17 00:00:00 2001
 From: Derek Straka <derek@asterius.io>
 Date: Sun, 11 Mar 2018 19:55:38 -0400
 Subject: [PATCH] py-scrypt: remove the hard coded include paths
@@ -11,16 +11,14 @@
  1 file changed, 1 deletion(-)
 
 diff --git a/setup.py b/setup.py
-index e36adc4..2ebfbf1 100644
+index 419a982..3f1fe52 100644
 --- a/setup.py
 +++ b/setup.py
-@@ -24,7 +24,6 @@ if sys.platform.startswith('linux'):
-                      ('HAVE_SYS_SYSINFO_H', '1'),
-                      ('_FILE_OFFSET_BITS', '64')]
+@@ -26,7 +26,6 @@ if sys.platform.startswith('linux'):
+         ('_FILE_OFFSET_BITS', '64'),
+     ]
      libraries = ['crypto', 'rt']
 -    includes = ['/usr/local/include', '/usr/include']
      CFLAGS.append('-O2')
- elif sys.platform.startswith('win32'):
-     define_macros = [('inline', '__inline')]
--- 
-2.7.4
+ elif sys.platform.startswith('win32') and os.environ.get('MSYSTEM'):
+     msys2_env = os.getenv('MSYSTEM')
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.20.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.24.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.20.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.24.bb
index ce0d4de..94c83e4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.20.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-scrypt_0.8.24.bb
@@ -5,7 +5,7 @@
 
 SRC_URI += "file://0001-py-scrypt-remove-the-hard-coded-include-paths.patch"
 
-SRC_URI[sha256sum] = "0d226c1c6744fb2e308b391410669b1df5cfe82637ffcb5ed489bf82b2d2eb78"
+SRC_URI[sha256sum] = "98ffde45e4a95461d73ded54ba7a26857679920d4f8ff320f6f7ade6e29531bd"
 
 inherit pypi ptest setuptools3 dos2unix
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.40.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.44.0.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.40.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.44.0.bb
index f3f2a5d..1b371ef 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.40.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.44.0.bb
@@ -15,7 +15,7 @@
 	python3-datetime \
 "
 
-SRC_URI[sha256sum] = "657abae98b0050a0316f0873d7149f951574ae6212f71d2e3a1c4c88f62d6456"
+SRC_URI[sha256sum] = "f7125a9235795811962d52ff796dc032cd1d0dd98b59beaced8380371cd9c13c"
 
 PYPI_PACKAGE = "sentry-sdk"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb
index 7373b02..b668056 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb
@@ -34,4 +34,3 @@
 CLEANBROKEN = "1"
 
 inherit setuptools3
-PIP_INSTALL_PACKAGE = "slip"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.11.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.11.2.bb
similarity index 88%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.11.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.11.2.bb
index 91feec9..4251a81 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.11.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.11.2.bb
@@ -9,7 +9,7 @@
 
 PYPI_PACKAGE = "python-socketio"
 
-SRC_URI[sha256sum] = "bbcbd758ed8c183775cb2853ba001361e2fa018babf5cbe11a5b77e91c2ec2a2"
+SRC_URI[sha256sum] = "ae6a1de5c5209ca859dc574dccc8931c4be17ee003e74ce3b8d1306162bb4a37"
 
 PACKAGECONFIG ?= "asyncio_client client"
 PACKAGECONFIG[asyncio_client] = ",,,python3-aiohttp python3-websockets"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tomli-w/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-tomli-w/run-ptest
new file mode 100644
index 0000000..8d2017d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tomli-w/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tomli-w_1.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tomli-w_1.0.0.bb
new file mode 100644
index 0000000..8a8a484
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tomli-w_1.0.0.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "Tomli-W is a Python library for writing TOML. It is a write-only counterpart to Tomli, which is a read-only TOML parser."
+HOMEPAGE = "https://github.com/hukkin/tomli-w"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=aaaaf0879d17df0110d1aa8c8c9f46f5"
+
+SRCREV = "19099125f32e7c491603e393263754262b356956"
+PYPI_SRC_URI = "git://github.com/hukkin/tomli-w.git;protocol=https;branch=master"
+
+inherit pypi python_flit_core ptest
+
+S = "${WORKDIR}/git"
+
+SRC_URI += " \
+        file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+        python3-pytest \
+        python3-tomli \
+        python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+        install -d ${D}${PTEST_PATH}/tests
+        install -d ${D}${PTEST_PATH}/benchmark
+        cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+        cp -rf ${S}/benchmark/* ${D}${PTEST_PATH}/benchmark/
+}
+
+RDEPENDS:${PN} += " \
+        python3-datetime \
+        python3-numbers \
+        python3-stringold \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.13.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.14.2.bb
similarity index 91%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.13.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.14.2.bb
index dd352e4..f451de3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.13.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.14.2.bb
@@ -6,7 +6,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=11610a9d8fd95649cf8159be12b98cb7"
 
-SRC_URI[sha256sum] = "dd789a554c16c4b532924ba393c92fc8991323c4b3d466712bfecc8c9b9f24f7"
+SRC_URI[sha256sum] = "0defb44f6dafd911b61788325741cc6b2e12ea71f987ac025ad4d649f1f1a104"
 
 BBCLASSEXTEND = "native nativesdk"
 inherit pypi python_hatchling
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets/run-ptest
new file mode 100644
index 0000000..8d2017d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.1.bb
deleted file mode 100644
index e650906..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.1.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Traitlets Python config system"
-HOMEPAGE = "http://ipython.org"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=13bed0ee6f46a6f6dbf1f9f9572f250a"
-
-SRC_URI[sha256sum] = "8585105b371a04b8316a43d5ce29c098575c2e477850b62b848b964f1444527e"
-
-inherit pypi python_hatchling
-
-RDEPENDS:${PN} = "\
-    python3-ipython-genutils \
-    python3-decorator \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.2.bb
new file mode 100644
index 0000000..af5a2f3
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.2.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Traitlets Python config system"
+HOMEPAGE = "https://github.com/ipython/traitlets"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=13bed0ee6f46a6f6dbf1f9f9572f250a"
+
+SRC_URI[sha256sum] = "8cdd83c040dab7d1dee822678e5f5d100b514f7b72b01615b26fc5718916fdf9"
+
+inherit pypi python_hatchling ptest
+
+SRC_URI += " \
+        file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+        python3-argcomplete \
+        bash \
+        python3-mypy \
+        python3-pytest \
+        python3-pytest-mock \
+        python3-unittest-automake-output \
+"
+
+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-typeguard_4.1.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.2.1.bb
similarity index 84%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.1.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.2.1.bb
index 1e9f668..e0e84df 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.1.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.2.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=f0e423eea5c91e7aa21bdb70184b3e53"
 
-SRC_URI[sha256sum] = "ea0a113bbc111bcffc90789ebb215625c963411f7096a7e9062d4e4630c155fd"
+SRC_URI[sha256sum] = "c556a1b95948230510070ca53fa0341fb0964611bd05d598d87fb52115d65fee"
 
 inherit pypi python_setuptools_build_meta ptest
 
@@ -12,8 +12,10 @@
 "
 
 RDEPENDS:${PN} += " \
+    python3-core \
     python3-compression \
     python3-unittest \
+    python3-typing-extensions \
 "
 
 RDEPENDS:${PN}-ptest += " \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-types-psutil_5.9.5.20240205.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-types-psutil_5.9.5.20240316.bb
similarity index 74%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-types-psutil_5.9.5.20240205.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-types-psutil_5.9.5.20240316.bb
index 736024d..c6f1569 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-types-psutil_5.9.5.20240205.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-types-psutil_5.9.5.20240316.bb
@@ -5,6 +5,6 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "51df36a361aa597bf483dcc5b58f2ab7aa87452a36d2da97c90994d6a81ef743"
+SRC_URI[sha256sum] = "5636f5714bb930c64bb34c4d47a59dc92f9d610b778b5364a31daa5584944848"
 
 BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-types-python-dateutil_2.8.19.20240106.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-types-python-dateutil_2.9.0.20240316.bb
similarity index 72%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-types-python-dateutil_2.8.19.20240106.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-types-python-dateutil_2.9.0.20240316.bb
index 2075d96..4b78606 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-types-python-dateutil_2.8.19.20240106.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-types-python-dateutil_2.9.0.20240316.bb
@@ -3,6 +3,6 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=ef4dc1e740f5c928f1608a4a9c7b578e"
 
-SRC_URI[sha256sum] = "1f8db221c3b98e6ca02ea83a58371b22c374f42ae5bbdf186db9c9a76581459f"
+SRC_URI[sha256sum] = "5d2f2e240b86905e40944dd787db6da9263f0deabef1076ddaed797351ec0202"
 
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-validators/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-validators/run-ptest
new file mode 100644
index 0000000..8d2017d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-validators/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-validators_0.22.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-validators_0.22.0.bb
deleted file mode 100644
index 1da7ee4..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-validators_0.22.0.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "Python Data Validation for Humans"
-HOMEPAGE = "https://python-validators.github.io/validators"
-LICENSE = "MIT"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fcf28bd09a60e145c3171c531b9e677d"
-SRC_URI[sha256sum] = "77b2689b172eeeb600d9605ab86194641670cdb73b60afd577142a9397873370"
-
-inherit pypi python_setuptools_build_meta
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-validators_0.24.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-validators_0.24.0.bb
new file mode 100644
index 0000000..78261dd
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-validators_0.24.0.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Python Data Validation for Humans"
+HOMEPAGE = "https://python-validators.github.io/validators"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b3fb4b9e6db86c69a33d5e3ee013ab59"
+SRC_URI[sha256sum] = "cd23defb36de42d14e7559cf0757f761bb46b10d9de2998e6ef805f769d859e3"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI += " \
+	file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+	python3-pytest \
+	python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+	install -d ${D}${PTEST_PATH}/tests
+	cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+	python3-crypt \
+	python3-datetime \
+	python3-netclient \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.15.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.16.0.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.15.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.16.0.bb
index 4eea0f0..01738f2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.15.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.16.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=373fede350846fdffd23648fba504635"
 
-SRC_URI[sha256sum] = "f9e7eefc1b3c3d194868a4ef9583b625c18ea3f31a48ebe143183db74898f381"
+SRC_URI[sha256sum] = "b10c93476c106acc44b8428e47c61c385b7d0885e82cdc24049d27f521833552"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wsproto/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-wsproto/run-ptest
new file mode 100644
index 0000000..8d2017d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-wsproto/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wsproto_1.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-wsproto_1.2.0.bb
new file mode 100644
index 0000000..09f5565
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-wsproto_1.2.0.bb
@@ -0,0 +1,27 @@
+SUMMARY = "WebSockets state-machine based protocol implementation"
+HOMEPAGE = "https://github.com/python-hyper/wsproto/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=69fabf732409f4ac61875827b258caaf"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI[sha256sum] = "ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065"
+
+SRC_URI += " \
+        file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+        python3-pytest \
+        python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+        install -d ${D}${PTEST_PATH}/tests
+        cp -rf ${S}/test/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+        python3-h11 \
+        python3-netclient \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb
index 8a9af14..aedf483 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb
@@ -17,8 +17,6 @@
 S = "${WORKDIR}/git"
 
 inherit ptest setuptools3
-PIP_INSTALL_PACKAGE = "xlrd"
-PIP_INSTALL_DIST_PATH = "${S}/dist"
 
 RDEPENDS:${PN} += " \
     python3-compression \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_6.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_6.1.0.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_6.0.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_6.1.0.bb
index 18338df..4821558 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_6.0.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_6.1.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9488e21983675fa56dc05af558b83e2f"
 
-SRC_URI[sha256sum] = "0982beeb07fa3ec4482a3aaa96ca13a1e6b427a0aca4058beab4cdc33c0cbb64"
+SRC_URI[sha256sum] = "576b72b628b251d2ee41e02b982d3c714d511d2a5aa3a88e587ed9efc4d6e752"
 
 RDEPENDS:${PN} = " \
 	python3-google-auth \
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch
index 5b38859..d277e8b 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch
@@ -1,4 +1,4 @@
-From 713cf821ebe17f9e1771502a85e0905ea04dafae Mon Sep 17 00:00:00 2001
+From 8a18a6c1dea7cce6669d0eeb4230e85aa88d8e44 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Fri, 23 Nov 2018 17:03:58 +0800
 Subject: [PATCH 02/11] run_program support timeout
@@ -7,14 +7,14 @@
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
 ---
- blivet/util.py | 70 ++++++++++++++++++++++++++++++++++------------------------
+ blivet/util.py | 70 +++++++++++++++++++++++++++++---------------------
  1 file changed, 41 insertions(+), 29 deletions(-)
 
 diff --git a/blivet/util.py b/blivet/util.py
-index 4eac8b9..4f05076 100644
+index f8a8f88..a5da7b6 100644
 --- a/blivet/util.py
 +++ b/blivet/util.py
-@@ -158,6 +158,30 @@ class Path(str):
+@@ -171,6 +171,30 @@ class Path(str):
      def __hash__(self):
          return self._path.__hash__()
  
@@ -45,7 +45,7 @@
  
  def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=False, binary_output=False):
      if env_prune is None:
-@@ -180,35 +204,23 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
+@@ -193,35 +217,23 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
              stderr_dir = subprocess.STDOUT
          else:
              stderr_dir = subprocess.PIPE
@@ -98,6 +98,3 @@
  
  
  def run_program(*args, **kwargs):
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch
index 861b2cd..8ab65a3 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch
@@ -1,4 +1,4 @@
-From 5d5436dfa3bdde7b4e87ce5a40cbc724199847d6 Mon Sep 17 00:00:00 2001
+From 112b825541f498762f373cfc9918e444dda74095 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Mon, 8 May 2017 16:18:02 +0800
 Subject: [PATCH 03/11] support infinit timeout
@@ -11,10 +11,10 @@
  1 file changed, 8 insertions(+), 4 deletions(-)
 
 diff --git a/blivet/util.py b/blivet/util.py
-index 4f05076..7e89949 100644
+index a5da7b6..58117ae 100644
 --- a/blivet/util.py
 +++ b/blivet/util.py
-@@ -158,6 +158,7 @@ class Path(str):
+@@ -171,6 +171,7 @@ class Path(str):
      def __hash__(self):
          return self._path.__hash__()
  
@@ -22,7 +22,7 @@
  def timeout_command(argv, timeout, *args, **kwargs):
      """call shell-command and either return its output or kill it
      if it doesn't normally exit within timeout seconds and return None"""
-@@ -169,7 +170,7 @@ def timeout_command(argv, timeout, *args, **kwargs):
+@@ -182,7 +183,7 @@ def timeout_command(argv, timeout, *args, **kwargs):
          while proc.poll() is None:
              time.sleep(0.1)
              now = datetime.datetime.now()
@@ -31,7 +31,7 @@
                  os.kill(proc.pid, signal.SIGKILL)
                  os.waitpid(-1, os.WNOHANG)
                  program_log.debug("%d seconds timeout" % timeout)
-@@ -183,7 +184,7 @@ def timeout_command(argv, timeout, *args, **kwargs):
+@@ -196,7 +197,7 @@ def timeout_command(argv, timeout, *args, **kwargs):
      program_log.debug("Return code: %d", proc.returncode)
      return (proc.returncode, proc.stdout.read())
  
@@ -40,7 +40,7 @@
      if env_prune is None:
          env_prune = []
  
-@@ -192,7 +193,10 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
+@@ -205,7 +206,10 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
              os.chroot(root)
  
      with program_log_lock:  # pylint: disable=not-context-manager
@@ -52,7 +52,7 @@
  
          env = os.environ.copy()
          env.update({"LC_ALL": "C",
-@@ -205,7 +209,7 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
+@@ -218,7 +222,7 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
          else:
              stderr_dir = subprocess.PIPE
  
@@ -61,6 +61,3 @@
                                     stdin=stdin,
                                     stdout=subprocess.PIPE,
                                     stderr=stderr_dir,
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0005-fix-incorrect-timeout-while-system-time-changed.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0005-fix-incorrect-timeout-while-system-time-changed.patch
index 9c5d53b..795e4f1 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0005-fix-incorrect-timeout-while-system-time-changed.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0005-fix-incorrect-timeout-while-system-time-changed.patch
@@ -1,4 +1,4 @@
-From f783b9b00da5df176fcd7927b752f574ca6db319 Mon Sep 17 00:00:00 2001
+From c645c83628b2290855cbd225e13c038ab75a7f74 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Fri, 26 Aug 2016 02:02:49 -0400
 Subject: [PATCH 05/11] fix incorrect timeout while system time changed
@@ -22,10 +22,10 @@
  1 file changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/blivet/util.py b/blivet/util.py
-index 7e89949..5571e73 100644
+index 58117ae..5bc5804 100644
 --- a/blivet/util.py
 +++ b/blivet/util.py
-@@ -163,14 +163,14 @@ def timeout_command(argv, timeout, *args, **kwargs):
+@@ -176,14 +176,14 @@ def timeout_command(argv, timeout, *args, **kwargs):
      """call shell-command and either return its output or kill it
      if it doesn't normally exit within timeout seconds and return None"""
      import subprocess, datetime, os, time, signal
@@ -43,6 +43,3 @@
                  os.kill(proc.pid, signal.SIGKILL)
                  os.waitpid(-1, os.WNOHANG)
                  program_log.debug("%d seconds timeout" % timeout)
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch
index 2e53a64..6c53f03 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch
@@ -1,7 +1,7 @@
-From 8932ae933f2b6acf5e98c9956beff69ae430eed2 Mon Sep 17 00:00:00 2001
+From b55b1023f8f1ad3121928eb9d0ee9902f5474752 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Mon, 8 May 2017 16:33:15 +0800
-Subject: [PATCH 06/11] tweak btrfs packages
+Subject: [PATCH] tweak btrfs packages
 
 In oe-cre/yocto, we name btrfs package with btrfs-tools,
 rather than btrfs-progs.
@@ -15,10 +15,10 @@
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/blivet/devices/btrfs.py b/blivet/devices/btrfs.py
-index cada940..7e4d4b8 100644
+index c446e7e..37c183e 100644
 --- a/blivet/devices/btrfs.py
 +++ b/blivet/devices/btrfs.py
-@@ -55,7 +55,7 @@ class BTRFSDevice(StorageDevice):
+@@ -58,7 +58,7 @@ class BTRFSDevice(StorageDevice):
  
      """ Base class for BTRFS volume and sub-volume devices. """
      _type = "btrfs"
@@ -28,10 +28,10 @@
  
      def __init__(self, *args, **kwargs):
 diff --git a/blivet/formats/fs.py b/blivet/formats/fs.py
-index 81e367f..55e5d57 100644
+index 1e102b6..f16941e 100644
 --- a/blivet/formats/fs.py
 +++ b/blivet/formats/fs.py
-@@ -926,7 +926,7 @@ class BTRFS(FS):
+@@ -1050,7 +1050,7 @@ class BTRFS(FS):
      _formattable = True
      _linux_native = True
      _supported = True
@@ -40,6 +40,3 @@
      _min_size = Size("256 MiB")
      _max_size = Size("16 EiB")
      _mkfs_class = fsmkfs.BTRFSMkfs
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch
index b2606d7..809f4e1 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch
@@ -1,4 +1,4 @@
-From f53481dc4a56b8a996628733553e080bb0aafdd7 Mon Sep 17 00:00:00 2001
+From f159d71d742ace5640c7810bcc27365f8fde95a3 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Fri, 23 Nov 2018 17:07:22 +0800
 Subject: [PATCH 07/11] invoking mount with infinite timeout
@@ -14,10 +14,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/blivet/util.py b/blivet/util.py
-index 5571e73..02c8033 100644
+index 5bc5804..9de77e1 100644
 --- a/blivet/util.py
 +++ b/blivet/util.py
-@@ -258,7 +258,7 @@ def mount(device, mountpoint, fstype, options=None):
+@@ -271,7 +271,7 @@ def mount(device, mountpoint, fstype, options=None):
          makedirs(mountpoint)
  
      argv = ["mount", "-t", fstype, "-o", options, device, mountpoint]
@@ -26,6 +26,3 @@
  
  
  def umount(mountpoint):
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch
index 1e8bcac..d3ab8f8 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch
@@ -1,4 +1,4 @@
-From 12e2579333258d1a690f8718e91b0f217078e886 Mon Sep 17 00:00:00 2001
+From 6a85945c060154581f5a129a6a946258bf9333c4 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Mon, 8 May 2017 03:54:12 -0400
 Subject: [PATCH 08/11] use oe variable to replace hardcoded dir
@@ -15,10 +15,10 @@
  1 file changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/setup.py b/setup.py
-index b745a79..b5b4258 100644
+index e6bb3f3..700085b 100644
 --- a/setup.py
 +++ b/setup.py
-@@ -61,10 +61,10 @@ class blivet_sdist(sdist):
+@@ -73,10 +73,10 @@ class blivet_sdist(sdist):
  
  
  data_files = [
@@ -33,6 +33,3 @@
  ]
  
  
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0010-invoking-mkfs-with-infinite-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0010-invoking-mkfs-with-infinite-timeout.patch
index c441acd..394a818 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0010-invoking-mkfs-with-infinite-timeout.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0010-invoking-mkfs-with-infinite-timeout.patch
@@ -1,4 +1,4 @@
-From 33844f6773a676bd57240954e402ae9a843663a4 Mon Sep 17 00:00:00 2001
+From abadd821acffd5dbc870f86dad3c3a6bf3f2f74f Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Fri, 16 Jun 2017 15:43:00 +0800
 Subject: [PATCH 10/11] invoking mkfs with infinite timeout
@@ -18,10 +18,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/blivet/tasks/fsmkfs.py b/blivet/tasks/fsmkfs.py
-index e4a6aaa8..9730f7e5 100644
+index e9daa9e..2174cc3 100644
 --- a/blivet/tasks/fsmkfs.py
 +++ b/blivet/tasks/fsmkfs.py
-@@ -203,7 +203,7 @@ class FSMkfs(task.BasicApplication, FSMkfsTask):
+@@ -207,7 +207,7 @@ class FSMkfs(task.BasicApplication, FSMkfsTask):
          options = options or []
          cmd = self._mkfs_command(options, label, set_uuid, nodiscard)
          try:
@@ -30,6 +30,3 @@
          except OSError as e:
              raise FSError(e)
  
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-dd-with-infinite-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-dd-with-infinite-timeout.patch
index 13c2933..ea4cffa 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-dd-with-infinite-timeout.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-dd-with-infinite-timeout.patch
@@ -1,7 +1,7 @@
-From 21ca2b859a49e96a230d55a7866dfc7ed5d1366c Mon Sep 17 00:00:00 2001
+From 5ee527fab06f9d33b162a6cd0c068d7b3ac2ecb0 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Tue, 6 Mar 2018 17:28:56 +0800
-Subject: [PATCH 11/11] invoking dd with infinite timeout
+Subject: [PATCH] invoking dd with infinite timeout
 
 This large timeout is needed when running on machines with
 lots of disks, or with slow disks.
@@ -14,10 +14,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/blivet/devices/partition.py b/blivet/devices/partition.py
-index 623e1c9..141d8ad 100644
+index 2d67be8..a4cf9a0 100644
 --- a/blivet/devices/partition.py
 +++ b/blivet/devices/partition.py
-@@ -618,7 +618,7 @@ class PartitionDevice(StorageDevice):
+@@ -677,7 +677,7 @@ class PartitionDevice(StorageDevice):
          cmd = ["dd", "if=/dev/zero", "of=%s" % device, "bs=%d" % bs,
                 "seek=%d" % start, "count=%d" % count]
          try:
@@ -26,6 +26,3 @@
          except OSError as e:
              log.error(str(e))
          finally:
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.8.2.bb b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.9.2.bb
similarity index 93%
rename from meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.8.2.bb
rename to meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.9.2.bb
index 52b3aa7..f0ce981 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.8.2.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.9.2.bb
@@ -16,7 +16,7 @@
            file://0010-invoking-mkfs-with-infinite-timeout.patch \
            file://0011-invoking-dd-with-infinite-timeout.patch \
 "
-SRC_URI[sha256sum] = "88d1500c76c4660aec7da9e9aa54f7f574546571b52c07a67e1417883c2cb25b"
+SRC_URI[sha256sum] = "9d97e37ebba01db28a1e6155cbd71c54fb55e9c2be5921982dc85bed316d8cfe"
 
 inherit pypi features_check systemd setuptools3_legacy
 
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.4.2.bb b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.5.0.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.4.2.bb
rename to meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.5.0.bb
index b6e04e0..124f36c 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.4.2.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.5.0.bb
@@ -6,15 +6,13 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
 SRC_URI = "git://github.com/storaged-project/blivet-gui.git;branch=main;protocol=https"
-SRCREV = "9b6a83a7aef546ddacafcc656984c9bbed67a8ec"
+SRCREV = "626b44610a30ad26734dd20642538caab5a9178a"
 
 S = "${WORKDIR}/git"
 
 inherit features_check setuptools3
 REQUIRED_DISTRO_FEATURES = "x11 systemd gobject-introspection-data"
 
-PIP_INSTALL_PACKAGE = "blivet_gui"
-
 RDEPENDS:${PN} = "python3-pygobject python3 \
                   python3-blivet gtk+3  \
                   python3-pid libreport \
diff --git a/meta-openembedded/meta-python/recipes-extended/python-cson/python3-cson_git.bb b/meta-openembedded/meta-python/recipes-extended/python-cson/python3-cson_git.bb
index aba1d8f..489733c 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-cson/python3-cson_git.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-cson/python3-cson_git.bb
@@ -18,8 +18,6 @@
 
 inherit setuptools3
 
-PIP_INSTALL_PACKAGE = "python_cson"
-
 do_configure:prepend() {
     echo "__version__=${PV}" > ${S}/version.py
 }
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.48.bb b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.48.bb
index 3c6c478..953068f 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.48.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.48.bb
@@ -23,5 +23,3 @@
 UPSTREAM_CHECK_GITTAGREGEX = "r(?P<pver>\d+(\.\d+)+(-\d+)*)"
 
 inherit setuptools3
-PIP_INSTALL_PACKAGE = "pykickstart"
-PIP_INSTALL_DIST_PATH = "${S}/dist"
diff --git a/meta-openembedded/meta-python/recipes-extended/python3-portalocker/python3-portalocker/run-ptest b/meta-openembedded/meta-python/recipes-extended/python3-portalocker/python3-portalocker/run-ptest
new file mode 100644
index 0000000..8d2017d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/python3-portalocker/python3-portalocker/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.8.2.bb b/meta-openembedded/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.8.2.bb
index 69578ba..c45a3fc 100644
--- a/meta-openembedded/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.8.2.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.8.2.bb
@@ -8,11 +8,29 @@
 
 DEPENDS += "python3-setuptools-scm-native"
 
-inherit pypi python_setuptools_build_meta
+inherit pypi python_setuptools_build_meta ptest
 
-BBCLASSEXTEND = "native nativesdk"
+SRC_URI += " \
+	file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+	python3-multiprocessing \
+	python3-pytest \
+	python3-redis \
+	python3-unittest-automake-output \
+	redis \
+"
+
+do_install_ptest() {
+	install -d ${D}${PTEST_PATH}/tests
+	cp -rf ${S}/portalocker_tests/* ${D}${PTEST_PATH}/tests/
+	rm -rf ${D}${PTEST_PATH}/tests/test_combined.py
+}
 
 RDEPENDS:${PN} += " \
-        python3-fcntl \
-        python3-logging \
+	python3-fcntl \
+	python3-logging \
 "
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.6.2.bb b/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.6.3.bb
similarity index 94%
rename from meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.6.2.bb
rename to meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.6.3.bb
index f607de7..7d1ff28 100644
--- a/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.6.2.bb
+++ b/meta-openembedded/meta-python/recipes-extended/pywbem/python3-pywbem_1.6.3.bb
@@ -16,7 +16,7 @@
 LICENSE = "LGPL-2.1-only"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=fbc093901857fcd118f065f900982c24"
 
-SRC_URI[sha256sum] = "26e8179bc17e3176b4cd576b9f5a7730f848d51be0513768fd7f31fd9b270a96"
+SRC_URI[sha256sum] = "78df30dee98c508620b599b8951f322a81c6c0a9d7b78ffe5e017b9417cd97b9"
 
 inherit pypi setuptools3 update-alternatives
 
diff --git a/meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.2.0.bb b/meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.2.1.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.2.0.bb
rename to meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.2.1.bb
index 89c05c2..c0a5368 100644
--- a/meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.2.1.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa"
 
-SRC_URI[sha256sum] = "921fb57ea2ae3ae2806e18895bb0457697f27221b345c8b05afa4cb304a7f939"
+SRC_URI[sha256sum] = "d2ad6c383490ddb3bbb0f737d23a07c7e8c345df65f8309bc554d8455cc913dc"
 
 inherit pypi setuptools3