subtree updates

meta-security: 93f2146211..7628a3e90b:
  Anton Antonov (3):
        Parsec-service: Update installation procedure
        Parsec-service: Fix arm32 build
        meta-parsec: Update Parsec runtime tests

  Armin Kuster (20):
        fscrypt: add distro_check on pam
        meta-security: move perl and python recipes to dynamic layers structure
        packagegroup-core-security: remove pkgs
        packagegroup-core-security: add perl pkgs grps
        packagegroup-core-security: add dynamic python pkgs
        arpwatch: add postfix to pkg config
        suricata: drop nfnetlink from pkg config
        packagegroup-core-security.bb: fix suricata inclusion
        layer.conf: fix up layer dependancies.
        ima-evm-utils: Update to 1.4
        aide: Update 01.17.4
        ossec-hids: update to 3.7.0
        suricata: update to 5.0.5
        samhain: update to 4.4.9
        tpm2-pkcs11: tpm2-pkcs11 module missing
        tpm2-tools: Add missing rdepends
        oeqa/cases/tpm2: fix and enhance test suite
        meta-parsec: Add pkg grps
        meta-parsec: add build image.
        oeqa: add parsec runtime tests

  Jeremy A. Puhlman (2):
        aide: Add depend on audit when audit is enabled.
        lib-perl: prefix man pages to avoid conflicting with base perl

  Josh Harley (1):
        Add EROFS support to dm-verity-img class

  Lei Maohui (1):
        layer.conf: Added BBFILES_DYNAMIC for dynamic-layers.

meta-openembedded: 77c2fda04e..a9e6d16e66:
  Alejandro Enedino Hernandez Samaniego (1):
        cryptsetup: Add luks2 configure options defaults

  Alex Kiernan (2):
        ulogd2: Add recipe
        libcoap: Add recipe

  Armin Kuster (13):
        meta-python-image: Fix build depends
        crda: move to a dynamic-layer for python
        cyrus-sasl: move from meta-networking to meta-oe
        netplan: move from meta-networking to meta-oe
        nvmetcli: move recipe to meta-oe
        packagegroup-meta-oe: update pkg group
        python3-ldap: move to meta-python
        packagegroup-meta-python.bb: update pkg group
        firewalld: move to dynamic meta-python layer
        packagegroup-meta-networking: update pkg group
        meta-networking: drop meta-python layer depends
        meta-gnome: fix layer depends.
        layer.conf: Post release codename changes

  Bartosz Golaszewski (19):
        python3-pyfanotify: new package
        python3-toolz: new package
        python3-cytoolz: new package
        python3-decouple: new package
        python3-eth-hash: new package
        python3-eth-typing: new package
        python3-eth-utils: new package
        python3-eth-keys: new package
        python3-eth-keyfile: new package
        python3-hexbytes: new package
        python3-rlp: new package
        python3-eth-rlp: new package
        python3-parsimonious: new package
        python3-eth-abi: new package
        python3-eth-account: new package
        python3-lru-dict: new package
        python3-web3: new package
        python3-inotify: new package
        speedtest-cli: drop the recipe

  Changqing Li (1):
        zabbix: upgrade 5.2.6 -> 6.0.4

  Chase Qi (1):
        kernel-selftest: install kselftest runner

  Claudius Heine (1):
        btrfsmaintenance: add recipe for btrfsmaintenance scripts

  Denys Dmytriyenko (2):
        devmem2: reinstate previous patches, removed by mistake
        devmem2: add support for different page sizes

  Diego Sueiro (1):
        bats: upgrade 1.6.0 -> 1.6.1

  Gianfranco (3):
        sdbus-c++-libsystemd: Bump SRCREV to last commit of 250-stable branch
        sdbus-c++: Bump version from 1.00 to 1.1.0
        libmtp: Add doxygen-native dependency in case documentation build is enabled in PACKAGECONFIG. This fixes a FTBFS due to missing dependency.

  Gianfranco Costamagna (1):
        vboxguestdrivers: upgrade 6.1.32 -> 6.1.34

  Jiaqing Zhao (2):
        openldap: Remove libgcrypt dependency
        openldap: Upgrade 2.5.9 -> 2.5.12

  Joerg Vehlow (1):
        jq: Fix typo OE_EXTRACONF -> EXTRA_OECONF

  Julien STEPHAN (1):
        libcamera: fix packaging

  Kai Kang (3):
        conntrack-tools: fix postinst script
        wxwidgets: enable to use private fonts
        python3-wxgtk4: backport patch to fix svg issue

  Khem Raj (12):
        ufw: Fix packaging errors found with ppc64
        libcereal: Enable for glibc/ppc
        mimic: Use special rateconv.c license
        makedumpfile: Use right TARGET for ppc32
        evince: Add dbus to depnedencies on non-x11 builds
        evolution-data-server: Do not pass --library-path to gir compiler
        python3-wxgtk4: Needs x11 for sip module
        zfs: Fix build on musl systems
        zfs: Disable on riscv32
        zfs: Disable on mips
        zfs: Make systemd and sysvinit into packageconfigs
        sdbus-c++: Link with libatomic on mips/ppc32

  Markus Volk (1):
        minidlna: fix obsolete license warning

  Martin Jansa (1):
        ostree: prevent ostree-native depending on target virtual/kernel to provide kernel-module-overlay

  Michael Opdenacker (1):
        devmem2: update SRC_URI according to redirect

  Mingli Yu (1):
        s-nail: Set VAL_MTA

  Nicolas Dechesne (1):
        imlib2: update SRC_URI

  Peter Kjellerstedt (1):
        libwebsockets: Avoid absolute paths in *.cmake files in the sysroot

  Portia (1):
        cpulimit: introduce support for this package

  Randy MacLeod (1):
        intel-speed-select: Add libnl dependency and extend CFLAGS

  Richard Neill (1):
        bats: Add patch to fix false-negatives caused by teardown code

  Ross Burton (1):
        Revert "python3-cbor2: upgrade 5.4.2 -> 5.4.3"

  Samuli Piippo (1):
        python3-qface: upgrade 2.0.7 -> 2.0.8

  Teresa Remmet (1):
        meta-networking: Add meta-python to BBFILES_DYNAMIC

  Vyacheslav Yurkov (1):
        polkit: add udisks2 rule

  Windel Bouwman (1):
        Add zfs recipe

  Xu Huan (17):
        python3-astroid: upgrade 2.11.2 -> 2.11.3
        python3-bitstruct: upgrade 8.14.0 -> 8.14.1
        python3-cachecontrol: upgrade 0.12.10 -> 0.12.11
        python3-engineio: upgrade 4.3.1 -> 4.3.2
        python3-flask-socketio: upgrade 5.1.1 -> 5.1.2
        python3-google-api-python-client: upgrade 2.43.0 -> 2.45.0
        python3-graphviz: upgrade 0.19.2 -> 0.20
        python3-cbor2: upgrade 5.4.2 -> 5.4.3
        python3-click: upgrade 8.1.2 -> 8.1.3
        python3-flask-login: upgrade 0.6.0 -> 0.6.1
        python3-flask: upgrade 2.1.1 -> 2.1.2
        python3-google-api-core: upgrade 2.7.1 -> 2.7.3
        python3-google-auth: upgrade 2.6.3 -> 2.6.6
        python3-mypy: upgrade 0.942 -> 0.950
        python3-pyalsaaudio: upgrade 0.9.0 -> 0.9.2
        python3-grpcio-tools: upgrade 1.45.0 -> 1.46.0
        python3-pychromecast: upgrade 11.0.0 -> 12.1.1

  Yi Zhao (1):
        networkmanager: fix parallel build failure

  wangmy (41):
        python3-sentry-sdk: upgrade 1.5.8 -> 1.5.10
        python3-socketio: upgrade 5.5.2 -> 5.6.0
        python3-textparser: upgrade 0.23.0 -> 0.24.0
        python3-twisted: upgrade 22.2.0 -> 22.4.0
        python3-websockets: upgrade 10.2 -> 10.3
        fuse3: upgrade 3.10.5 -> 3.11.0
        zenity: upgrade 3.42.0 -> 3.42.1
        babeld: upgrade 1.11 -> 1.12
        cifs-utils: upgrade 6.14 -> 6.15
        nbdkit: upgrade 1.31.1 -> 1.31.2
        stunnel: upgrade 5.63 -> 5.64
        tgt: upgrade 1.0.79 -> 1.0.82
        wolfssl: upgrade 5.2.0 -> 5.3.0
        ctags: upgrade 5.9.20220417.0 -> 5.9.20220501.0
        freerdp: upgrade 2.6.1 -> 2.7.0
        fwupd-efi: upgrade 1.2 -> 1.3
        htop: upgrade 3.1.2 -> 3.2.0
        hwdata: upgrade 0.358 -> 0.359
        icewm: upgrade 2.9.6 -> 2.9.7
        iwd: upgrade 1.26 -> 1.27
        jemalloc: upgrade 5.2.1 -> 5.3.0
        libmbim: upgrade 1.26.2 -> 1.26.4
        libyang: upgrade 2.0.164 -> 2.0.194
        nano: upgrade 6.2 -> 6.3
        phoronix-test-suite: upgrade 10.8.2 -> 10.8.3
        php: upgrade 8.1.4 -> 8.1.5
        pkcs11-helper: upgrade 1.28.0 -> 1.29.0
        poppler: upgrade 22.04.0 -> 22.05.0
        toybox: upgrade 0.8.6 -> 0.8.7
        unixodbc: upgrade 2.3.9 -> 2.3.11
        xmlsec1: upgrade 1.2.33 -> 1.2.34
        gtk4: upgrade 4.6.3 -> 4.6.4
        nbdkit: upgrade 1.31.2 -> 1.31.5
        ctags: upgrade 5.9.20220501.0 -> 5.9.20220508.0
        openjpeg: upgrade 2.4.0 -> 2.5.0
        php: upgrade 8.1.5 -> 8.1.6
        postgresql: upgrade 14.2 -> 14.3
        phpmyadmin: upgrade 5.1.3 -> 5.2.0
        python3-aiohue: upgrade 3.0.11 -> 4.4.1
        python3-awesomeversion : add recipe
        python3-traitlets: upgrade 5.1.1 -> 5.2.0

  zhengrq.fnst (12):
        glibmm-2.68: upgrade 2.70.0 -> 2.72.1
        gnome-text-editor: upgrade 42.0 -> 42.1
        apitrace: upgrade 10.0 -> 11.0
        libconfig-general-perl: upgrade 2.63 -> 2.65
        gpsd: upgrade 3.23.1 -> 3.24
        mbw: upgrade 1.4 -> 1.5
        gtk4: upgrade 4.6.2 -> 4.6.3
        python3-antlr4-runtime: upgrade 4.9.2 -> 4.10
        python3-booleanpy: upgrade 3.8 -> 4.0
        python3-pika: upgrade 1.2.0 -> 1.2.1
        python3-autobahn: upgrade 22.3.2 -> 22.4.2
        python3-bitarray: upgrade 2.4.1 -> 2.5.0

  zhengruoqin (7):
        python3-imageio: upgrade 2.17.0 -> 2.18.0
        python3-langtable: upgrade 0.0.57 -> 0.0.58
        python3-paramiko: upgrade 2.10.3 -> 2.10.4
        python3-protobuf: upgrade 3.20.0 -> 3.20.1
        python3-pylint: upgrade 2.13.5 -> 2.13.7
        python3-pymongo: upgrade 4.1.0 -> 4.1.1
        python3-regex: upgrade 2022.3.15 -> 2022.4.24

poky: 9e55696042..13d70e57f8:
  Alex Kiernan (7):
        eudev: Upgrade 3.2.10 -> 3.2.11
        eudev: Add PACKAGECONFIG for manpages & selinux
        pypi.bbclass: Set CVE_PRODUCT to PYPI_PACKAGE
        openssh: Add openssh-sftp-server to openssh RDEPENDS
        eudev: Convert dependencies to PACKAGECONFIG
        eudev: Cleanup redundant configuration
        eudev: Use PACKAGE_BEFORE_PN/${PN}, clean up spaces

  Alexander Kanavin (106):
        systemd: upgrade 250.4 -> 250.5
        python3-cryptography: upgrade 36.0.2 -> 37.0.1
        util-linux: upgrade 2.37.4 -> 2.38
        vulkan: upgrade 1.3.204.1 -> 1.3.211.0
        libnl: upgrade 3.5.0 -> 3.6.0
        libsdl2: upgrade 2.0.20 -> 2.0.22
        mesa: upgrade 22.0.0 -> 22.0.2
        python3-babel: upgrade 2.9.1 -> 2.10.1
        python3-mako: upgrade 1.1.6 -> 1.2.0
        python3-pygments: upgrade 2.11.2 -> 2.12.0
        at-spi2-core: upgrade 2.44.0 -> 2.44.1
        bind: upgrade 9.18.1 -> 9.18.2
        cronie: upgrade 1.6.0 -> 1.6.1
        diffoscope: upgrade 208 -> 211
        dnf: upgrade 4.11.1 -> 4.12.0
        ell: upgrade 0.49 -> 0.50
        epiphany: upgrade 42.0 -> 42.2
        ffmpeg: upgrade 5.0 -> 5.0.1
        fribidi: upgrade 1.0.11 -> 1.0.12
        harfbuzz: upgrade 4.2.0 -> 4.2.1
        libinput: upgrade 1.19.3 -> 1.19.4
        libmnl: upgrade 1.0.4 -> 1.0.5
        libnotify: upgrade 0.7.9 -> 0.7.11
        libpipeline: upgrade 1.5.5 -> 1.5.6
        libseccomp: upgrade 2.5.3 -> 2.5.4
        libx11: upgrade 1.7.5 -> 1.8
        lttng-tools: upgrade 2.13.4 -> 2.13.7
        mmc-utils: upgrade to latest revision
        neard: upgrade 0.16 -> 0.18
        pango: upgrade 1.50.6 -> 1.50.7
        parted: upgrade 3.4 -> 3.5
        piglit: upgrade to latest revision
        python3-cryptography-vectors: upgrade 36.0.2 -> 37.0.1
        python3-dtschema: upgrade 2022.1 -> 2022.4
        python3-hypothesis: upgrade 6.44.0 -> 6.46.0
        python3-jinja2: upgrade 3.1.1 -> 3.1.2
        python3-pygobject: upgrade 3.42.0 -> 3.42.1
        python3-pytest: upgrade 7.1.1 -> 7.1.2
        repo: upgrade 2.23 -> 2.24.1
        sqlite3: upgrade 3.38.2 -> 3.38.3
        vala: upgrade 0.56.0 -> 0.56.1
        vte: upgrade 0.66.2 -> 0.68.0
        webkitgtk: upgrade 2.36.0 -> 2.36.1
        xorgproto: upgrade 2021.5 -> 2022.1
        xwayland: upgrade 22.1.0 -> 22.1.1
        sysvinit: update 3.02 -> 3.04
        pciutils: update 3.7.0 -> 3.8.0
        elfutils: update 0.186 -> 0.187
        git: update 2.35.3 -> 2.36.0
        libdnf: update 0.66.0 -> 0.67.0
        llvm: update 14.0.1 -> 14.0.3
        rsync: update 3.2.3 -> 3.2.4
        lsof: update 4.94.0 -> 4.95.0
        libhandy: update 1.5.0 -> 1.6.2
        librsvg: update 2.54.0 -> 2.54.1
        xauth: update 1.1.1 -> 1.1.2
        gnupg: update 2.3.4 -> 2.3.6
        qemu: update 6.2.0 -> 7.0.0
        stress-ng: disable apparmor from the correct spot
        coreutils: update 9.0 -> 9.1
        python3-setuptools: upgrade 59.5.0 -> 62.3.1
        go: upgrade 1.18.1 -> 1.18.2
        iptables: upgrade 1.8.7 -> 1.8.8
        gnu-config: update to latest version
        u-boot: upgrade 2022.01 -> 2022.04
        python3-pip: update 22.0.4 -> 22.1
        libxcb: update 1.14 -> 1.15
        xcb-proto: upgrade 1.14.1 -> 1.15
        systemtap: update 4.6 -> 4.7
        vulkan-samples: update to latest revision
        curl: upgrade 7.83.0 -> 7.83.1
        diffoscope: upgrade 211 -> 212
        git: upgrade 2.36.0 -> 2.36.1
        gnutls: upgrade 3.7.4 -> 3.7.5
        gst-devtools: upgrade 1.20.1 -> 1.20.2
        gstreamer1.0-libav: upgrade 1.20.1 -> 1.20.2
        gstreamer1.0-omx: upgrade 1.20.1 -> 1.20.2
        gstreamer1.0-plugins-bad: upgrade 1.20.1 -> 1.20.2
        gstreamer1.0-plugins-base: upgrade 1.20.1 -> 1.20.2
        gstreamer1.0-plugins-good: upgrade 1.20.1 -> 1.20.2
        gstreamer1.0-plugins-ugly: upgrade 1.20.1 -> 1.20.2
        gstreamer1.0-python: upgrade 1.20.1 -> 1.20.2
        gstreamer1.0-rtsp-server: upgrade 1.20.1 -> 1.20.2
        gstreamer1.0: upgrade 1.20.1 -> 1.20.2
        gstreamer1.0-vaapi: upgrade 1.20.1 -> 1.20.2
        libcgroup: upgrade 2.0.1 -> 2.0.2
        libnotify: upgrade 0.7.11 -> 0.7.12
        librsvg: upgrade 2.54.1 -> 2.54.3
        mesa: upgrade 22.0.2 -> 22.0.3
        mobile-broadband-provider-info: upgrade 20220315 -> 20220511
        piglit: upgrade to latest revision
        psmisc: upgrade 23.4 -> 23.5
        python3-bcrypt: upgrade 3.2.0 -> 3.2.2
        python3-cryptography: upgrade 37.0.1 -> 37.0.2
        python3-cryptography-vectors: upgrade 37.0.1 -> 37.0.2
        python3-hypothesis: upgrade 6.46.0 -> 6.46.4
        python3-jsonschema: upgrade 4.4.0 -> 4.5.1
        python3-markdown: upgrade 3.3.6 -> 3.3.7
        python3-more-itertools: upgrade 8.12.0 -> 8.13.0
        python3-pbr: upgrade 5.8.1 -> 5.9.0
        python3-pyparsing: upgrade 3.0.8 -> 3.0.9
        repo: upgrade 2.24.1 -> 2.25
        sqlite3: upgrade 3.38.3 -> 3.38.5
        stress-ng: upgrade 0.14.00 -> 0.14.01
        python3-setuptools-rust: update 1.1.2 -> 1.3.0
        python3: use built-in distutils for ptest, rather than setuptools' 'fork'

  Andrej Valek (1):
        kernel: add missing path to search for debug files

  Arkadiusz Drabczyk (1):
        overview-manual: fix a forgotten link

  Aryaman Gupta (1):
        e2fsprogs: update upstream status

  Bruce Ashfield (23):
        linux-yocto/5.15: arm: poky-tiny cleanup and fixes
        linux-yocto/5.10: update to v5.10.110
        linux-yocto/5.10: base: enable kernel crypto userspace API
        linux-yocto/5.15: update to v5.15.33
        linux-yocto/5.15: base: enable kernel crypto userspace API
        linux-yocto/5.15: kasan: fix BUG: sleeping function called from invalid context
        linux-yocto/5.15: fix ppc boot
        linux-yocto/5.15: netfilter: conntrack: avoid useless indirection during conntrack destruction
        linux-yocto/5.10: update to v5.10.112
        linux-yocto/5.15: update to v5.15.35
        linux-yocto/5.15: Fix CVE-2022-28796
        linux-yocto: enable powerpc debug fragment
        linux-yocto/5.15: fix -standard kernel build issue
        linux-yocto/5.15: update to v5.15.36
        linux-yocto/5.15: fix qemuarm graphical boot
        strace: fix ptest failure in landlock
        yocto-bsps: update to v5.15.36
        yocto-bsps: update to v5.10.113
        linux-yocto/5.15: update to v5.15.37
        linux-yocto/5.10: update to v5.10.113
        linux-yocto/5.15: update to v5.15.38
        linux-yocto/5.10: update to v5.10.114
        lttng-modules: fix build against 5.18-rc7+

  Changqing Li (1):
        eudev: create static-nodes in init script

  Chanho Park (2):
        externalsrc.bbclass: support crate fetcher on externalsrc
        cargo_common.bbclass: enable bitbake vendoring for externalsrc

  Claudius Heine (3):
        classes: rootfs-postcommands: add skip option to overlayfs_qa_check
        overlayfs: add docs about skipping QA check & service dependencies
        wic: added fspassno parameter to partition

  Davide Gardenal (4):
        cve-check: add JSON format to summary output
        cve-check: fix symlinks where link and output path are equal
        rootfs-postcommands: fix symlinks where link and output path are equal
        openssl: minor security upgrade 3.0.2 -> 3.0.3

  Dmitry Baryshkov (3):
        linux-firmware: upgrade 20220411 -> 20220509
        linux-firmware: package new Qualcomm firmware
        image.bbclass: allow overriding dependency on virtual/kernel:do_deploy

  Felix Moessbauer (1):
        wic/plugins/rootfs: Fix permissions when splitting rootfs folders across partitions

  Gunjan Gupta (2):
        bitbake: fetch2/osc: Small fixes for osc fetcher
        bitbake: fetch2/osc: Add support to query latest revision

  Jacob Kroon (1):
        Revert "image.bbclass: allow overriding dependency on virtual/kernel:do_deploy"

  Jiaqing Zhao (5):
        libxml2: Upgrade 2.9.13 -> 2.9.14
        systemd: Drop 0001-test-parse-argument-Include-signal.h.patch
        systemd: Remove __compare_fn_t type in musl-specific patch
        systemd: Drop 0002-don-t-use-glibc-specific-qsort_r.patch
        systemd: Correct path returned in sd_path_lookup()

  Jon Mason (1):
        qemuarmv5: use arm-versatile-926ejs KMACHINE

  Kai Kang (1):
        wpa-supplicant: update config for gnutls

  Khem Raj (15):
        qemu: Add packageconfig for libbpf support
        linux-yocto: Enable powerpc-debug fragment for ppc64 LE
        musl: Upgrade to tip of trunk
        systemd: Fix build regression with latest update
        gcc: upgrade 11.3 -> 12.1
        libstd-rs: Forward port rust libc patches
        gdb: Upgrade to 12.1
        bash: build with bash_cv_getcwd_malloc=yes on musl too
        ovmf: Fix native build with gcc-12
        elfutils: Disable stringop-overflow warning for build host
        musl-locales: Switch SRC_URI to new location
        systemd: Drop redundant musl patches
        systemd: Document future actions needed for set of musl patches
        systemd: Drop 0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
        systemd: Update patch status

  Konrad Weihmann (1):
        linux-firmware: replace mkdir by install

  Kory Maincent (1):
        images_types: isolate the write of UBI configuration

  Leon Anavi (1):
        image_types/runqemu-addptable2image: Fix a minor typo

  Markus Volk (2):
        mesa.inc: package 00-radv-defaults.conf
        libsdl2: add PACKAGECONFIG for libusb1 and remove obsolete options

  Marta Rybczynska (3):
        cve-update-db-native: update the CVE database once a day only
        cve-update-db-native: let the user to drive the update interval
        cve-check: Fix report generation

  Martin Jansa (1):
        bitbake: osc: fix DeprecationWarning

  Michael Halstead (5):
        releases: update to include 3.1.16
        scripts/autobuilder-worker-prereq-tests: update to use yocto 4.0
        scripts/autobuilder-worker-prereq-tests: add additional limit testing
        releases: update to include 3.4.4
        releases: include 4.0.1

  Michael Opdenacker (12):
        MAINTAINERS.md: no more need for a prelink-cross maintainer
        dev-manual: further gdb usage simplifications
        doc/Makefile: fix epub and latexpdf targets
        manuals: fix name capitalization issues
        doc: standards for project and file names
        manuals: improve the width of diagrams
        manuals: improve documentation for TEMPLATECONF
        overview-manual: remove confusing and unnecessary paragraph about site.conf
        manuals: add quoting to references to bitbake.conf
        manuals: add missing space in appends
        manuals: add documentation for WKS_FILES
        migration guides: release notes for 3.4.3 and 3.4.4

  Mingli Yu (1):
        python3-cryptography: remove --benchmark-disable option

  Peter Kjellerstedt (4):
        base-passwd: Regenerate the patches
        base-passwd: Update to 3.5.52
        base-passwd: Update the status for two patches
        librsvg: Drop the dependency on libcroco

  Quentin Schulz (2):
        docs: set_versions.py: remove hardknott from active releases list
        docs: set_versions.py: show release name in switchers.js

  Raphael Teller (1):
        kernel.bbclass: Do not overwrite recipe's custom postinst

  Richard Purdie (25):
        bitbake: cookerdata: Change emphasis in error message to be clearer to users
        cairo: Add missing GPLv3 license checksum entry
        libgcrypt: Drop GPLv3 license after upstream changes
        base: Avoid circular references to our own scripts
        scripts: Make git intercept global
        scripts/git: Ensure we don't have circular references
        abi_version/sstate: Bump hashequiv and sstate versions due to git changes
        vim: Upgrade 8.2.4681 -> 8.2.4912
        package: Ensure we track whether PRSERV was active or not
        libgcrypt: Fix reproducibility issues in ptest
        liberror-perl: Update sstate/equiv versions to clean cache
        freetype: Upgrade 2.12.0 -> 2.12.1
        bitbake: fetch/git : Use cat as pager
        pciutils: Add make-native dependency
        sanity: Don't warn about make 4.2.1 for mint
        bitbake: build: Add clean_stamp API function to allow removal of task stamps
        staging: Fix rare sysroot corruption issue
        selftest/imagefeatures/overlayfs: Always append to DISTRO_FEATURES
        udev-extraconf/initrdscripts/parted: Rename mount.blacklist -> mount.ignorelist
        layer.conf: Don't use indirect help2man-native dependencies
        rust-common: Fix sstate signatures between arm hf and non-hf
        rust-common: Drop LLVM_TARGET and simplify
        rust-common: Fix native signature dependency issues
        scripts/patchreview: Add commit to stored json data
        scripts/patchreview: Make json output human parsable

  Robert Joslyn (1):
        powerpc: Remove invalid GLIBC_EXTRA_OECONF

  Roland Hieber (1):
        bitbake: cache: correctly handle file names containing colons

  Ross Burton (4):
        oeqa/selftest: add test for git working correctly inside pseudo
        Revert "bitbake.conf: mark all directories as safe for git to read"
        kernel-yocto.bbclass: say what SRC_URI entry is being dropped
        oeqa/selftest/cve_check: add tests for recipe and image reports

  Rouven Czerwinski (1):
        kbd: fix pam DISTRO_FEATURES check

  Samuli Piippo (1):
        binutils: Bump to latest 2.38 release branch

  Schmidt, Adriaan (1):
        bitbake: bitbake-diffsigs: break on first dependent task difference

  Simone Weiss (1):
        libgcrypt: Add ptest

  Steve Sakoman (2):
        virgl: skip headless test on alma 8.6
        python3: fix reproducibility issue with python3-core

  Sundeep KOKKONDA (3):
        dev-manual: improvements for gdbserver configuration
        rust-common: Ensure sstate signatures have correct dependencues for do_rust_gen_targets
        rust-common: Fix for target definitions returning 'NoneType' for arm

  Thomas Epperson (1):
        dev-manual: fix documentation for bmaptool usage

  Thomas Perrot (1):
        man-pages: add an alternative link name for crypt_r.3

  Tomasz Dziendzielski (1):
        bitbake: data: Do not depend on vardepvalueexclude flag

  Trevor Woerner (1):
        DISTRO_FEATURES: remove uclibc remnants

  Zoltán Böszörményi (2):
        npm.bbclass: Fix file permissions before opening it for writing
        npm.bbclass: Don't create /usr/lib/node symlink

  leimaohui (1):
        cve-check.bbclass: Added do_populate_sdk[recrdeptask].

  wangmy (1):
        librepo: upgrade 1.14.2 -> 1.14.3

meta-raspberrypi: c97a9e34ab..62a84833d9:
  Andrei Gherzan (1):
        Revert "kmod: Enable xz compression"

  Khem Raj (3):
        rpi-config: Add option to enable One-wire interface
        linux-firmware-rpidistro: Create brcmfmac43455-sdio.raspberrypi,4-model-b.bin symlink
        linux-raspberrypi: Upgrade to 5.15.38

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: If15534d7da5bfa78ef2224bb09ff1a8eb96a0e10
diff --git a/meta-openembedded/meta-python/conf/layer.conf b/meta-openembedded/meta-python/conf/layer.conf
index e444498..481e4ea 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 = "kirkstone"
+LAYERSERIES_COMPAT_meta-python = "kirkstone langdale"
 
 LICENSE_PATH += "${LAYERDIR}/licenses"
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 f7bf365..6ca652e 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
@@ -12,9 +12,9 @@
 # FORTRAN:forcevariable = ",fortran"
 RDEPENDS:packagegroup-meta-python3 = "\
     ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "python3-systemd", "", d)} \
-    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "python3-blivetgui", "", d)} \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11 systemd", "python3-blivetgui", "", d)} \
     gyp \
-    pamela \
+    ${@bb.utils.contains("DISTRO_FEATURES", "pam", "pamela", "", d)} \
     pyrtm \
     python3-absl \
     python3-aenum \
@@ -52,7 +52,7 @@
     python3-bitstring \
     python3-bitstruct \
     python3-blinker \
-    python3-blivet \
+    ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "python3-blivet", "", d)} \
     python3-booleanpy \
     python3-cachecontrol \
     python3-cached-property \
@@ -84,13 +84,15 @@
     python3-croniter \
     python3-cson \
     python3-custom-inherit \
-    python3-cvxopt \
+    ${@bb.utils.contains_any('FORTRAN', [',fortran',',f77'], 'python3-cvxopt', '', d)} \
     python3-cycler \
+    python3-cytoolz \
     python3-dateparser \
     python3-dateutil \
     python3-dbus-next \
     python3-dbussy \
     python3-decorator \
+    python3-decouple \
     python3-defusedxml \
     python3-dill \
     python3-diskcache \
@@ -108,6 +110,14 @@
     python3-email-validator \
     python3-engineio \
     python3-et-xmlfile \
+    python3-eth-abi \
+    python3-eth-account \
+    python3-eth-hash \
+    python3-eth-keyfile \
+    python3-eth-keys \
+    python3-eth-rlp \
+    python3-eth-typing \
+    python3-eth-utils \
     python3-evdev \
     python3-execnet \
     python3-fann2 \
@@ -176,6 +186,7 @@
     python3-imgtool \
     python3-incremental \
     python3-inflection \
+    python3-inotify \
     python3-intelhex \
     python3-intervals \
     python3-ipaddress \
@@ -209,9 +220,11 @@
     python3-lazy-object-proxy \
     python3-libconf \
     python3-license-expression \
+    python3-ldap \
     python3-lockfile \
     python3-lorem \
     python3-lrparsing \
+    python3-lru-dict \
     python3-luma-core \
     python3-luma-oled \
     python3-lxml \
@@ -252,6 +265,7 @@
     python3-paramiko \
     python3-parse \
     python3-parse-type \
+    python3-parsimonious \
     python3-parso \
     python3-passlib \
     python3-pastedeploy \
@@ -300,6 +314,7 @@
     python3-pydicti \
     python3-pyephem \
     python3-pyexpect \
+    python3-pyfanotify \
     python3-pyfirmata \
     python3-pyflakes \
     python3-pyhamcrest \
@@ -327,7 +342,7 @@
     python3-pyscaffold \
     python3-pyserial \
     python3-pysonos \
-    python3-pystemd \
+    ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "python3-pystemd", "", d)} \
     python3-pytest-asyncio \
     python3-pytest-benchmark \
     python3-pytest-cache \
@@ -363,6 +378,7 @@
     python3-rfc3339-validator \
     python3-rfc3986-validator \
     python3-rfc3987 \
+    python3-rlp \
     python3-robotframework \
     python3-robotframework-seriallibrary \
     python3-rsa \
@@ -403,6 +419,7 @@
     python3-thrift \
     python3-tinyrecord \
     python3-tornado \
+    python3-toolz \
     python3-tqdm \
     python3-trafaret \
     python3-trafaret-config \
@@ -427,6 +444,7 @@
     python3-visitor \
     python3-waitress \
     python3-watchdog \
+    python3-web3 \
     python3-webcolors \
     python3-webencodings \
     python3-websocket-client \
@@ -464,6 +482,7 @@
     python3-dominate-ptest \
     python3-geojson-ptest \
     python3-gunicorn-ptest \
+    python3-hexbytes \
     python3-html2text-ptest \
     python3-inflection-ptest \
     python3-intervals-ptest \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_3.0.11.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_4.4.1.bb
similarity index 73%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_3.0.11.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_4.4.1.bb
index 47d9964..b3a88fb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_3.0.11.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_4.4.1.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=dab31a1d28183826937f4b152143a33f"
 
-SRC_URI[sha256sum] = "31c0b90d7dc2b62f5e1a93e78b2c0d6360ef6c0a87485c217a4f394c937fce7d"
+SRC_URI[sha256sum] = "fa3bb0cf68aefdd0710704443c896abda69ae227500ad9539ac6c3d1d6dad804"
 
 inherit pypi setuptools3
 
@@ -12,4 +12,5 @@
 	${PYTHON_PN}-aiohttp \
 	${PYTHON_PN}-asyncio-throttle \
 	${PYTHON_PN}-profile \
+        ${PYTHON_PN}-awesomeversion \
 "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.10.bb
new file mode 100644
index 0000000..01f1720
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.10.bb
@@ -0,0 +1,11 @@
+SUMMARY = "ANTLR runtime for Python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=6e514123aedb5d9fb133d1bc6c598d46"
+
+SRC_URI[sha256sum] = "061a49bc72ae05a35d9b61c0ba0ac36c0397708819f02fbfb20a80e47d287a1b"
+
+PYPI_PACKAGE = "antlr4-python3-runtime"
+
+inherit pypi python_setuptools_build_meta
+
+BBCLASSEXTEND = "nativesdk native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.9.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.9.2.bb
deleted file mode 100644
index 8a19b6c..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.9.2.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "ANTLR runtime for Python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=c96f0ee5f5d08fd4387e5f00507bb13e"
-
-SRC_URI[sha256sum] = "31f5abdc7faf16a1a6e9bf2eb31565d004359b821b09944436a34361929ae85a"
-
-PYPI_PACKAGE = "antlr4-python3-runtime"
-
-inherit pypi python_setuptools_build_meta
-
-BBCLASSEXTEND = "nativesdk native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.11.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.11.3.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.11.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.11.3.bb
index c52008e..a2e9111 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.11.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.11.3.bb
@@ -4,7 +4,7 @@
 LICENSE = "LGPL-2.1-only"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a70cf540abf41acb644ac3b621b2fad1"
 
-SRC_URI[sha256sum] = "8d0a30fe6481ce919f56690076eafbb2fb649142a89dc874f1ec0e7a011492d0"
+SRC_URI[sha256sum] = "4e5ba10571e197785e312966ea5efb2f5783176d4c1a73fa922d474ae2be59f7"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_22.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_22.4.2.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_22.3.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_22.4.2.bb
index 78514a4..3dc3083 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_22.3.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_22.4.2.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=97c0bda20ad1d845c6369c0e47a1cd98"
 
-SRC_URI[sha256sum] = "58a887c7a196bb08d8b6624cb3695f493a9e5c9f00fd350d8d6f829b47ff9036"
+SRC_URI[sha256sum] = "57b7acf228d50d83cf327372b889e2a168a869275b26e17917ed0b4cf4d823a6"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-awesomeversion_22.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-awesomeversion_22.5.1.bb
new file mode 100644
index 0000000..cdb8969
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-awesomeversion_22.5.1.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "One version package to rule them all, One version package to find them, One version package to bring them all, and in the darkness bind them."
+HOMEPAGE = "https://pypi.org/project/awesomeversion/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENCE.md;md5=92622b5a8e216099be741d78328bae5d"
+
+SRC_URI[sha256sum] = "84bcd85ab1bb9a287cfd1b2e5145f888b6e02ef3e3a63a07453f10f2f6e50fe3"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.5.0.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.4.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.5.0.bb
index fbb89b8..bb80c4a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.4.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.5.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "PSF-2.0"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=2ad702cdcd49e8d2ac01d7e7d0810d2d"
 
-SRC_URI[sha256sum] = "faeca03f979e992cc76f7406af7eb9795cb111b8d8969c891a032bd7497c87da"
+SRC_URI[sha256sum] = "5abed04adcd2031f6e714993d95223bf9ae85354c640c270b2ed6f46b83573ba"
 
 inherit setuptools3 pypi
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.14.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.14.1.bb
similarity index 79%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.14.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.14.1.bb
index f0aa321..77ef985 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.14.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.14.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd"
 
-SRC_URI[sha256sum] = "230c191c75f1526f6922cdb08eab6f52c055452e2239bf5638f02e9cfd382c91"
+SRC_URI[sha256sum] = "d38131bd447b6af5b8f464c4878797c87a5d9da1c95b9357e071c424fde5f055"
 
 PYPI_PACKAGE = "bitstruct"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-booleanpy_3.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-booleanpy_3.8.bb
deleted file mode 100644
index a1ce7ea..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-booleanpy_3.8.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Define boolean algebras, create and parse boolean expressions and create custom boolean DSL"
-HOMEPAGE = "https://github.com/bastikr/boolean.py"
-
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9b58494d4f385978ca5a7ef4f6abca53"
-
-SRC_URI[md5sum] = "83ccc145ba74a585637124c8bc648333"
-SRC_URI[sha256sum] = "cc24e20f985d60cd4a3a5a1c0956dd12611159d32a75081dabd0c9ab981acaa4"
-
-PYPI_PACKAGE = "boolean.py"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-booleanpy_4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-booleanpy_4.0.bb
new file mode 100644
index 0000000..41fd3d9
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-booleanpy_4.0.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Define boolean algebras, create and parse boolean expressions and create custom boolean DSL"
+HOMEPAGE = "https://github.com/bastikr/boolean.py"
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d118b5feceee598ebeca76e13395c2bd"
+
+SRC_URI[sha256sum] = "17b9a181630e43dde1851d42bef546d616d5d9b4480357514597e78b203d06e4"
+
+PYPI_PACKAGE = "boolean.py"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.11.bb
similarity index 84%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.10.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.11.bb
index 58c157b..fc2b0ae 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.10.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.11.bb
@@ -1,13 +1,13 @@
 SUMMARY = "httplib2 caching for requests"
 HOMEPAGE = "https://pypi.org/project/CacheControl/"
 LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=12;endline=12;md5=62d6ee40749ec0b76d8a1200a1562369"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=12;endline=12;md5=942a721dac34d073453642ffe5fcf546"
 
 # On PyPi, this is "CacheControl", rather than "cachecontrol", so we need to
 # override PYPI_PACKAGE so fetch succeeds.
 PYPI_PACKAGE = "CacheControl"
 
-SRC_URI[sha256sum] = "d8aca75b82eec92d84b5d6eb8c8f66ea16f09d2adb09dbca27fe2d5fc8d3732d"
+SRC_URI[sha256sum] = "a5b9fcc986b184db101aa280b42ecdcdfc524892596f606858e0b7a8b4d9e144"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.3.bb
similarity index 91%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.3.bb
index a623fe1..006742f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.3.bb
@@ -8,7 +8,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=1fa98232fd645608937a0fdc82e999b8"
 
-SRC_URI[sha256sum] = "479707fe14d9ec9a0757618b7a100a0ae4c4e236fac5b7f80ca68028141a1a72"
+SRC_URI[sha256sum] = "7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"
 
 inherit pypi setuptools3 ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cytoolz_0.11.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cytoolz_0.11.2.bb
new file mode 100644
index 0000000..14f597c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cytoolz_0.11.2.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Cython implementation of the toolz package, which provides high \
+performance utility functions for iterables, functions, and dictionaries."
+HOMEPAGE = "https://github.com/pytoolz/cytoolz"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=efbcddfa5610ca0c07ecfa274a82b373"
+
+SRC_URI[sha256sum] = "ea23663153806edddce7e4153d1d407d62357c05120a4e8485bddf1bd5ab22b4"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-toolz"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-decouple_3.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-decouple_3.6.bb
new file mode 100644
index 0000000..772ee7f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-decouple_3.6.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Strict separation of settings from code."
+HOMEPAGE = "https://github.com/henriquebastos/python-decouple/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a46375b26bb7d7603565d829a2a51782"
+
+SRC_URI[sha256sum] = "2838cdf77a5cf127d7e8b339ce14c25bceb3af3e674e039d4901ba16359968c7"
+
+PYPI_PACKAGE = "python-decouple"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    python3-shell \
+    python3-stringold \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.2.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.2.bb
index 35e8d79..e9891bc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.2.bb
@@ -17,4 +17,4 @@
 	python3-asyncio \
 "
 
-SRC_URI[sha256sum] = "6e1d26977ffefe3b7da1b5df7a8750aedc7686da8201cd90daf36693db122489"
+SRC_URI[sha256sum] = "e02f8d6686663408533726be2d4ceb403914fd17285d247791c6a91623777bdd"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_3.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_3.0.0.bb
new file mode 100644
index 0000000..e1f220a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_3.0.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Python utilities for working with Ethereum ABI definitions, especially encoding and decoding."
+HOMEPAGE = "https://github.com/ethereum/eth-abi"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bf9691ead96f1163622689e47ce3f366"
+
+SRC_URI[sha256sum] = "31578b179cf9430c21ac32a4e5f401c14b6e2cc1fd64ca3587cd354068217804"
+
+PYPI_PACKAGE = "eth_abi"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    python3-eth-typing \
+    python3-eth-utils \
+    python3-parsimonious \
+    python3-setuptools \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-account_0.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-account_0.6.1.bb
new file mode 100644
index 0000000..9c87d3f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-account_0.6.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Assign Ethereum transactions and messages with local private keys."
+HOMEPAGE = "https://github.com/ethereum/eth-account"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=287820ad3553117aa2f92bf84c219324"
+
+SRC_URI[sha256sum] = "54b0b7d661e73f4cd12d508c9baa5c9a6e8c194aa7bafc39277cd673683ae50e"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    python3-bitarray \
+    python3-cytoolz \
+    python3-eth-abi \
+    python3-eth-keyfile \
+    python3-eth-rlp \
+    python3-hexbytes \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-hash_0.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-hash_0.3.2.bb
new file mode 100644
index 0000000..c9630b1
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-hash_0.3.2.bb
@@ -0,0 +1,9 @@
+SUMMARY = "The Ethereum hashing function, keccak256, sometimes (erroneously) called sha3."
+HOMEPAGE = "https://github.com/ethereum/eth-hash"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=287820ad3553117aa2f92bf84c219324"
+
+SRC_URI[sha256sum] = "3f40cecd5ead88184aa9550afc19d057f103728108c5102f592f8415949b5a76"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keyfile/0001-setup-don-t-use-setuptools-markdown.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keyfile/0001-setup-don-t-use-setuptools-markdown.patch
new file mode 100644
index 0000000..7b81203
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keyfile/0001-setup-don-t-use-setuptools-markdown.patch
@@ -0,0 +1,36 @@
+From 4348c72877e049804c7cdb7eec7a6bcd7ac2ea1d Mon Sep 17 00:00:00 2001
+From: Bartosz Golaszewski <brgl@bgdev.pl>
+Date: Wed, 11 May 2022 13:21:30 +0200
+Subject: [PATCH] setup: don't use setuptools-markdown
+
+This project is deprecated and irrelevant for the functionality of
+eth-keyfile. We don't support it in meta-python so just drop it from
+the dependencies.
+
+Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
+---
+ setup.py | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index cbb7f4c..7702aa4 100644
+--- a/setup.py
++++ b/setup.py
+@@ -51,14 +51,12 @@ setup(
+         "A library for handling the encrypted keyfiles used to store ethereum "
+         "private keys."
+     ),
+-    long_description_markdown_filename='README.md',
+     author='Piper Merriam',
+     author_email='pipermerriam@gmail.com',
+     url='https://github.com/ethereum/eth-keyfile',
+     include_package_data=True,
+     install_requires=install_requires,
+     extras_require=deps,
+-    setup_requires=['setuptools-markdown'],
+     py_modules=['eth_keyfile'],
+     license="MIT",
+     zip_safe=False,
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keyfile_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keyfile_0.6.0.bb
new file mode 100644
index 0000000..9477632
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keyfile_0.6.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "A library for handling the encrypted keyfiles used to store ethereum private keys."
+HOMEPAGE = "https://github.com/ethereum/eth-keyfile"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2beaef1b1764f4d6b46084c885b4bcad"
+
+SRC_URI[sha256sum] = "d30597cdecb8ccd3b56bb275cd86fcdc7a279f86eafa92ddc49f66512f0bff67"
+SRC_URI += "file://0001-setup-don-t-use-setuptools-markdown.patch"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    python3-eth-keys \
+    python3-pycryptodome \
+    python3-setuptools \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keys_0.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keys_0.4.0.bb
new file mode 100644
index 0000000..b0b1aad
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keys_0.4.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "A common API for Ethereum key operations with pluggable backends."
+HOMEPAGE = "https://github.com/ethereum/eth-keys"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2beaef1b1764f4d6b46084c885b4bcad"
+
+SRC_URI[sha256sum] = "7d18887483bc9b8a3fdd8e32ddcb30044b9f08fcb24a380d93b6eee3a5bb3216"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-eth-utils"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_0.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_0.3.0.bb
new file mode 100644
index 0000000..d19a657
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_0.3.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "RLP definitions for common Ethereum objects in Python"
+HOMEPAGE = "https://github.com/ethereum/eth-rlp"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=287820ad3553117aa2f92bf84c219324"
+
+SRC_URI[sha256sum] = "f3263b548df718855d9a8dbd754473f383c0efc82914b0b849572ce3e06e71a6"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = " \
+    python3-eth-utils \
+    python3-hexbytes \
+    python3-rlp \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-typing_3.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-typing_3.0.0.bb
new file mode 100644
index 0000000..a500d5b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-typing_3.0.0.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Common type annotations for ethereum python packages."
+HOMEPAGE = "https://github.com/ethereum/eth-typing"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bf9691ead96f1163622689e47ce3f366"
+
+SRC_URI[sha256sum] = "079e4c41e98cf2635d3830a99f3cbd7b1d73d2368464d4493c002bece545184a"
+
+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
new file mode 100644
index 0000000..3c3c527
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils/0001-setup-don-t-use-setuptools-markdown.patch
@@ -0,0 +1,37 @@
+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>
+---
+ 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-eth-utils_2.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils_2.0.0.bb
new file mode 100644
index 0000000..ff7caf5
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils_2.0.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Common utility functions for codebases which interact with ethereum."
+HOMEPAGE = "https://github.com/ethereum/eth-utils"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=287820ad3553117aa2f92bf84c219324"
+
+SRC_URI[sha256sum] = "32f50edb14c5be0c4f0e8c2e6117286ccc5dfda21d170f358add554a048398e3"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    python3-eth-hash \
+    python3-eth-typing \
+    python3-setuptools \
+    python3-toolz \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-login_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-login_0.6.1.bb
similarity index 84%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-login_0.6.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask-login_0.6.1.bb
index dd295cf..d19acd9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-login_0.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-login_0.6.1.bb
@@ -6,7 +6,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=8aa87a1cd9fa41d969ad32cfdac2c596"
 
-SRC_URI[sha256sum] = "aa84fcfb4c3cf09ca58c08e816b7bce73f1349ba1cf13d00d8dffc5872d5fcf6"
+SRC_URI[sha256sum] = "1306d474a270a036d6fd14f45640c4d77355e4f1c67ca4331b372d3448997b8c"
 
 PYPI_PACKAGE = "Flask-Login"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.2.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.2.bb
index 00e9580..1e5d775 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.2.bb
@@ -9,7 +9,7 @@
 
 PYPI_PACKAGE = "Flask-SocketIO"
 
-SRC_URI[sha256sum] = "1efdaacc7a26e94f2b197a80079b1058f6aa644a6094c0a322349e2b9c41f6b1"
+SRC_URI[sha256sum] = "933bcc887ef463a9b78d76f8f86174f63a32d12a5406b99f452cdf3b129ebba3"
 
 RDEPENDS:${PN} += "\
     ${PYTHON_PN}-flask \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.1.2.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.1.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.1.2.bb
index 24a7047..7d290a4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.1.2.bb
@@ -6,7 +6,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
 
-SRC_URI[sha256sum] = "a8c9bd3e558ec99646d177a9739c41df1ded0629480b4c8d2975412f3c9519c8"
+SRC_URI[sha256sum] = "315ded2ddf8a6281567edb27393010fe3406188bafbfe65a3339d5787d89e477"
 
 PYPI_PACKAGE = "Flask"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.7.3.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.7.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.7.3.bb
index 55884e9..3422dd7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.7.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.7.3.bb
@@ -6,7 +6,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "b0fa577e512f0c8e063386b974718b8614586a798c5894ed34bedf256d9dae24"
+SRC_URI[sha256sum] = "17957f0704cbe95bd2ce25019efd2046423978594d181d4263e5dcffd2dbbc79"
 
 RDEPENDS:${PN} += "\
     ${PYTHON_PN}-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.43.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.45.0.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.43.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.45.0.bb
index b645686..070a5b5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.43.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.45.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
-SRC_URI[sha256sum] = "ccd16b3aa92070d3777c4b188669820aacdd70695a87cfc8dbb330f6be9578f7"
+SRC_URI[sha256sum] = "375ce07994fdc187b25cc86788048ad30f8d55ff077d5e34cfcd6cbbea697128"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.6.6.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.6.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.6.6.bb
index ee5311f..d51790f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.6.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.6.6.bb
@@ -6,7 +6,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "d65bb0e3701eaaa64fd2aa85e1325580524b0bddc6dc5db3ab89c481b6a20141"
+SRC_URI[sha256sum] = "1ba4938e032b73deb51e59c4656a00e0939cf0b1112575099f136babb4563312"
 
 RDEPENDS:${PN} += "\
     ${PYTHON_PN}-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.19.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.bb
similarity index 79%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.19.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.bb
index 3cae196..81b5912 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.19.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=951dd0868a9606c867ffda0ea3ea6da2"
 
-SRC_URI[sha256sum] = "7c90cebc147c18bcdffcd3c76db58cbface5d45fe0247a2f3bfb144d32a8c77c"
+SRC_URI[sha256sum] = "76bdfb73f42e72564ffe9c7299482f9d72f8e6cb8d54bce7b48ab323755e9ba5"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.45.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.46.0.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.45.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.46.0.bb
index 1e919dd..9569e8e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.45.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.46.0.bb
@@ -10,7 +10,7 @@
 DEPENDS += "${PYTHON_PN}-grpcio"
 
 SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch"
-SRC_URI[sha256sum] = "a016cfc21e0d91b3b036d3d4f968d1fdea865dfa03524cb1fbeca84719fd45a2"
+SRC_URI[sha256sum] = "9295bf9b1e6dd5bcb260d594745fa3d6a089daade28f3a80cb2bc976b5359b7d"
 
 RDEPENDS:${PN} = "${PYTHON_PN}-grpcio"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-hexbytes_0.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-hexbytes_0.2.2.bb
new file mode 100644
index 0000000..89792d9
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-hexbytes_0.2.2.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Python bytes subclass that decodes hex, with a readable console output."
+HOMEPAGE = "https://github.com/ethereum/hexbytes"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=287820ad3553117aa2f92bf84c219324"
+
+SRC_URI[sha256sum] = "a5881304d186e87578fb263a85317c808cf130e1d4b3d37d30142ab0f7898d03"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.17.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.18.0.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.17.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.18.0.bb
index 53f61e8..2aa6b09 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.17.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.18.0.bb
@@ -5,7 +5,7 @@
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=24cb9a367a9e641b459a01c4d15256ba"
 
-SRC_URI[sha256sum] = "b21f009e52eb22b02b839f3bf2ae5374aaf0886317313c1358c6014e5383b539"
+SRC_URI[sha256sum] = "090898c48532631ab11c74ae743e64c24dabda45c16db46f7e3bec9e2d8f422f"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_0.2.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_0.2.10.bb
new file mode 100644
index 0000000..524c3a0
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_0.2.10.bb
@@ -0,0 +1,14 @@
+SUMMARY = "An adapter to Linux kernel support for inotify directory-watching."
+AUTHOR = "Dustin Oprea"
+HOMEPAGE = "https://pypi.org/project/inotify/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://setup.py;md5=79b7ec72aa0d446a552d3cceb5799e41;beginline=28;endline=28"
+
+SRC_URI[sha256sum] = "974a623a338482b62e16d4eb705fb863ed33ec178680fc3e96ccdf0df6c02a07"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    python3-ctypes \
+    python3-logging \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.57.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.58.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.57.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.58.bb
index 948f765..025ceb6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.57.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.58.bb
@@ -6,7 +6,7 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
-SRC_URI[sha256sum] = "6c3c0a6577652c81871cbaf139046e1c88ead8439c585bd83976b3092f57e9d7"
+SRC_URI[sha256sum] = "47128c06008acedee1745f2d56151461d94526b2be95a4124692013af35496b6"
 
 inherit pypi setuptools3 python3native
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lru-dict_1.1.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lru-dict_1.1.7.bb
new file mode 100644
index 0000000..0a0682e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lru-dict_1.1.7.bb
@@ -0,0 +1,9 @@
+SUMMARY = "A fixed size dict like container which evicts Least Recently Used (LRU) items once size limit is exceeded."
+HOMEPAGE = "https://github.com/amitdev/lru-dict"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9d10a486ee04034fdef5162fd791f153"
+
+SRC_URI[sha256sum] = "45b81f67d75341d4433abade799a47e9c42a9e22a118531dcb5e549864032d7c"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.942.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.950.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.942.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.950.bb
index 5b4b6d5..c268ade 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.942.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.950.bb
@@ -7,7 +7,7 @@
 
 inherit pypi python_setuptools_build_meta
 
-SRC_URI[sha256sum] = "17e44649fec92e9f82102b48a3bf7b4a5510ad0cd22fa21a104826b5db4903e2"
+SRC_URI[sha256sum] = "1b333cfbca1762ff15808a0ef4f71b5d3eed8528b23ea1c3fb50543c867d68de"
 
 BBCLASSEXTEND = "native"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.10.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.10.4.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.10.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.10.4.bb
index 9f7f458..3173687 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.10.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.10.4.bb
@@ -3,7 +3,7 @@
 LICENSE = "LGPL-2.1-only"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=fd0120fc2e9f841c73ac707a30389af5"
 
-SRC_URI[sha256sum] = "ddb1977853aef82804b35d72a0e597b244fa326c404c350bd00c5b01dbfee71a"
+SRC_URI[sha256sum] = "3d2e650b6812ce6d160abff701d6ef4434ec97934b13e95cf1ad3da70ffb5c58"
 
 PYPI_PACKAGE = "paramiko"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-parsimonious_0.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-parsimonious_0.9.0.bb
new file mode 100644
index 0000000..5a604fa
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-parsimonious_0.9.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Parsimonious aims to be the fastest arbitrary-lookahead parser written in pure Python."
+HOMEPAGE = "https://github.com/erikrose/parsimonious"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3396ea30f9d21389d7857719816f83b5"
+
+SRC_URI[sha256sum] = "b2ad1ae63a2f65bd78f5e0a8ac510a98f3607a43f1db2a8d46636a5d9e4a30c1"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-regex"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pika_1.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pika_1.2.1.bb
similarity index 73%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pika_1.2.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pika_1.2.1.bb
index aa3179f..38f84cf 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pika_1.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pika_1.2.1.bb
@@ -6,9 +6,9 @@
 SECTION = "devel/python"
 HOMEPAGE = "https://pika.readthedocs.io"
 LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=278bdfee5b51616941c1f6b2f1cfcb99"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=678ec81495ba50edf81e84e4f1aa69f3"
 
-SRC_URI[sha256sum] = "f023d6ac581086b124190cb3dc81dd581a149d216fa4540ac34f9be1e3970b89"
+SRC_URI[sha256sum] = "e5fbf3a0a3599f4e114f6e4a7af096f9413a8f24f975c2657ba2fac3c931434f"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.20.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.20.1.bb
similarity index 91%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.20.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.20.1.bb
index 5c4de4a..976d2aa 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.20.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.20.1.bb
@@ -7,7 +7,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "71b2c3d1cd26ed1ec7c8196834143258b2ad7f444efff26fdc366c6f5e752702"
+SRC_URI[sha256sum] = "adc31566d027f45efe3f44eeb5b1f329da43891634d61c75a5944e9be6dd42c9"
 
 # http://errors.yoctoproject.org/Errors/Details/184715/
 # Can't find required file: ../src/google/protobuf/descriptor.proto
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.2.bb
similarity index 61%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.2.bb
index 862c3d5..e7e706c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.2.bb
@@ -5,8 +5,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[md5sum] = "48c40424a79c2568676a41643d93f1f7"
-SRC_URI[sha256sum] = "3ca069c736c8ad2a3047b5033468d983a2480f94fad4feb0169c056060e01e69"
+SRC_URI[sha256sum] = "e74a66d6c7a6bcceb990df66d3ebc0fe382fc9d765f35f050f9d98c695304b36"
 
 DEPENDS += "alsa-lib"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_11.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_12.1.1.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_11.0.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_12.1.1.bb
index f556963..b34c78e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_11.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_12.1.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b1dbd4e85f47b389bdadee9c694669f5"
 
-SRC_URI[sha256sum] = "151723b178110052b673b8765a120c85d16eae8c22d75575dceebe2be1eb1ef6"
+SRC_URI[sha256sum] = "9545a22acdadc96603f76d7878c6ea17baf1328260cf560c887c8c12aad4c82c"
 
 PYPI_PACKAGE = "PyChromecast"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify/0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify/0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch
new file mode 100644
index 0000000..933e086
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify/0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch
@@ -0,0 +1,31 @@
+From 9e7894b97ae7afe43a9901b774de5aef401549ac Mon Sep 17 00:00:00 2001
+From: Bartosz Golaszewski <brgl@bgdev.pl>
+Date: Thu, 28 Apr 2022 16:32:06 +0200
+Subject: [PATCH] ext: define FNM_EXTMATCH if not already defined
+
+On musl this constant is not defined. Define it locally if not present.
+
+Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
+---
+Upstream-Status: Inappropriate
+
+ src/ext.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/ext.c b/src/ext.c
+index 2ba9a14..98ffc20 100644
+--- a/src/ext.c
++++ b/src/ext.c
+@@ -18,6 +18,9 @@
+ #include <sys/un.h>
+ #include <unistd.h>
+ 
++#ifndef FNM_EXTMATCH
++#define FNM_EXTMATCH 0
++#endif
+ 
+ PyDoc_STRVAR(ext__doc__,
+ "Wrapper for fanotify.\n"
+-- 
+2.32.0
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.1.3.bb
new file mode 100644
index 0000000..a7c8f95
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.1.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Python wrapper for Linux fanotify."
+HOMEPAGE = "https://github.com/baskiton/pyfanotify"
+AUTHOR = "Alexander Baskikh"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=636a36c9df04efcfacf839b8866d9a37"
+
+SRC_URI += "file://0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch"
+SRC_URI[sha256sum] = "0efa73922fd705b4e8f8f0b51cb88198ceef66cc309e1de21674ef44c879029d"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    python3-crypt \
+    python3-datetime \
+    python3-logging \
+    python3-multiprocessing \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.13.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.13.7.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.13.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.13.7.bb
index f64d976..0aa645c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.13.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.13.7.bb
@@ -3,7 +3,7 @@
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c107cf754550e65755c42985a5d4e9c9"
 
-SRC_URI[sha256sum] = "dab221658368c7a05242e673c275c488670144123f4bd262b2777249c1c0de9b"
+SRC_URI[sha256sum] = "911d3a97c808f7554643bcc5416028cfdc42eae34ed129b150741888c688d5d5"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.1.1.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.1.1.bb
index d47dfec..7bde4ff 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.1.1.bb
@@ -8,7 +8,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
-SRC_URI[sha256sum] = "dbba77bc0b706c7ee496fc75a6c6ed406d85f6091d5fec488a8944c3828e6462"
+SRC_URI[sha256sum] = "d7b8f25c9b0043cbaf77b8b895814e33e7a3c807a097377c07e1bd49946030d5"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.8.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.7.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.8.bb
index c42b91f..47a34d4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.8.bb
@@ -2,7 +2,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=eee61e10a40b0e3045ee5965bcd9a8b5"
 
-SRC_URI[sha256sum] = "fae48ba129c55da8445580eb711905c03911c4250761c0cd53c67e33495b0cee"
+SRC_URI[sha256sum] = "eccee7dbc4290c5a4e394df8d527f39148e0de0ff22c6b260f48c48f12b3beb4"
 
 inherit pypi python_setuptools_build_meta
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.3.15.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.4.24.bb
similarity index 78%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.3.15.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.4.24.bb
index 9633385..28e1600 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.3.15.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.4.24.bb
@@ -5,7 +5,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "0a7b75cc7bb4cc0334380053e4671c560e31272c9d2d5a6c4b8e9ae2c9bd0f82"
+SRC_URI[sha256sum] = "92183e9180c392371079262879c6532ccf55f808e6900df5d9f03c9ca8807255"
 
 RDEPENDS:${PN} += " \
 	python3-stringold \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rlp/0001-setup-don-t-use-setuptools-markdown.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-rlp/0001-setup-don-t-use-setuptools-markdown.patch
new file mode 100644
index 0000000..643d296
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-rlp/0001-setup-don-t-use-setuptools-markdown.patch
@@ -0,0 +1,35 @@
+From 5a2db801c6520be296cee9cba0e0e4ffac68430c Mon Sep 17 00:00:00 2001
+From: Bartosz Golaszewski <brgl@bgdev.pl>
+Date: Wed, 11 May 2022 15:11:19 +0200
+Subject: [PATCH] setup: don't use setuptools-markdown
+
+This project is deprecated and irrelevant for the functionality of
+pyrlp. We don't support it in meta-python so just drop it from the
+dependencies.
+
+Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
+---
+ setup.py | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 1055fb1..55fca24 100755
+--- a/setup.py
++++ b/setup.py
+@@ -46,13 +46,11 @@ setup(
+     # *IMPORTANT*: Don't manually change the version here. See README for more.
+     version='3.0.0',
+     description="A package for Recursive Length Prefix encoding and decoding",
+-    long_description_markdown_filename='README.md',
+     author="jnnk",
+     author_email='jnnknnj@gmail.com',
+     url='https://github.com/ethereum/pyrlp',
+     packages=find_packages(exclude=["tests", "tests.*"]),
+     include_package_data=True,
+-    setup_requires=['setuptools-markdown'],
+     install_requires=[
+         "eth-utils>=2.0.0,<3",
+     ],
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rlp_3.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-rlp_3.0.0.bb
new file mode 100644
index 0000000..e747ae3
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-rlp_3.0.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "A Python implementation of Recursive Length Prefix encoding (RLP)."
+HOMEPAGE = "https://github.com/ethereum/pyrlp"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=00854fa80a84236706b11f47f23e61e7"
+
+SRC_URI[sha256sum] = "63b0465d2948cd9f01de449d7adfb92d207c1aef3982f20310f8009be4a507e8"
+SRC_URI += "file://0001-setup-don-t-use-setuptools-markdown.patch"
+
+inherit pypi setuptools3
+
+DEPENDS += "python3-pip-native"
+
+RDEPENDS:${PN} += "python3-eth-utils"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.10.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.8.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.10.bb
index cf1337e..7076e19 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.8.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.10.bb
@@ -7,7 +7,7 @@
 
 RDEPENDS:${PN} += "python3-urllib3"
 
-SRC_URI[sha256sum] = "38fd16a92b5ef94203db3ece10e03bdaa291481dd7e00e77a148aa0302267d47"
+SRC_URI[sha256sum] = "0a9eb20a84f4c17c08c57488d59fdad18669db71ebecb28fb0721423a33535f9"
 
 PYPI_PACKAGE = "sentry-sdk"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.6.0.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.5.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.6.0.bb
index 6611743..d762611 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.5.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.6.0.bb
@@ -9,7 +9,7 @@
 
 PYPI_PACKAGE = "python-socketio"
 
-SRC_URI[sha256sum] = "6213f7dfbb87e554472d11151f96bae9059854aa88e4a1e0fa6e97cca1c3fcf4"
+SRC_URI[sha256sum] = "f1f2eabdea500dbcb384902418cacedd98b7fe4d0fed818415ddf8af10e428fa"
 
 PACKAGECONFIG ?= "asyncio_client client"
 PACKAGECONFIG[asyncio_client] = ",,,${PYTHON_PN}-aiohttp ${PYTHON_PN}-websockets"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-textparser_0.23.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-textparser_0.24.0.bb
similarity index 66%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-textparser_0.23.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-textparser_0.24.0.bb
index 0c626e7..8db949d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-textparser_0.23.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-textparser_0.24.0.bb
@@ -3,8 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=fe9942a8bba5458a9dbd11277bc347ad"
 
-SRC_URI[md5sum] = "d5378eac93406156e9029114aaa1b515"
-SRC_URI[sha256sum] = "f009d0f6f78aa7c1e648dca4e3961f6d67495f7f520f1a705245ffad33f4b470"
+SRC_URI[sha256sum] = "56f708e75aa9d002adb76d823ba6ef166d7ecec1e3e4ca4c1ca103f817568335"
 
 PYPI_PACKAGE = "textparser"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-toolz_0.11.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-toolz_0.11.2.bb
new file mode 100644
index 0000000..a597641
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-toolz_0.11.2.bb
@@ -0,0 +1,14 @@
+SUMMARY = "A set of utility functions for iterators, functions, and dictionaries."
+HOMEPAGE = "https://github.com/pytoolz/toolz"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ca09cab178326d18433aae982d1edf5d"
+
+SRC_URI[sha256sum] = "6b312d5e15138552f1bda8a4e66c30e236c831b612b2bf0005f8a1df10a4bc33"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    python3-json \
+    python3-math \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.2.0.bb
similarity index 65%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.1.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.2.0.bb
index 8f80426..56ebaac 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.2.0.bb
@@ -2,11 +2,11 @@
 HOMEPAGE = "http://ipython.org"
 AUTHOR = "IPython Development Team <ipython-dev@scipy.org>"
 LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING.md;md5=eec4de4d599518742e54e75954e33b46"
+LIC_FILES_CHKSUM = "file://COPYING.md;md5=9c125dfc5ff5364d40b5f56f02cd9de3"
 
 PYPI_PACKAGE = "traitlets"
 
-SRC_URI[sha256sum] = "059f456c5a7c1c82b98c2e8c799f39c9b8128f6d0d46941ee118daace9eb70c7"
+SRC_URI[sha256sum] = "60474f39bf1d39a11e0233090b99af3acee93bbc2281777e61dd8c87da8a0014"
 
 RDEPENDS:${PN} = "\
     ${PYTHON_PN}-ipython-genutils \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_22.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_22.4.0.bb
similarity index 98%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_22.2.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_22.4.0.bb
index f4575c9..9429f8f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_22.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_22.4.0.bb
@@ -7,7 +7,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=0f8d67f84b6e178c92d471011b2245fc"
 
-SRC_URI[sha256sum] = "57f32b1f6838facb8c004c89467840367ad38e9e535f8252091345dba500b4f2"
+SRC_URI[sha256sum] = "a047990f57dfae1e0bd2b7df2526d4f16dcdc843774dc108b78c52f2a5f13680"
 
 PYPI_PACKAGE = "Twisted"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_5.29.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_5.29.0.bb
new file mode 100644
index 0000000..660d4f6
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_5.29.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A Python library for interacting with Ethereum."
+HOMEPAGE = "https://github.com/ethereum/web3.py"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1dc2732bdc5e50382737979791cbb3b7"
+
+SRC_URI[sha256sum] = "a78acc0f0150013755398ae185c8c7063d9db0777aa09733de22242a746bd30c"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    python3-aiohttp \
+    python3-distutils \
+    python3-eth-account \
+    python3-idna \
+    python3-lru-dict \
+    python3-requests \
+    python3-setuptools \
+    python3-websockets \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.3.bb
similarity index 78%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.3.bb
index c8179df..64b96d3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.3.bb
@@ -6,7 +6,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "8351c3c86b08156337b0e4ece0e3c5ec3e01fcd14e8950996832a23c99416098"
+SRC_URI[sha256sum] = "fc06cc8073c8e87072138ba1e431300e2d408f054b27047d047b549455066ff4"
 
 BBCLASSEXTEND = "native nativesdk"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-Update-Cython-version-to-fix-NanoSVG-issues-with-Pyt.patch b/meta-openembedded/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-Update-Cython-version-to-fix-NanoSVG-issues-with-Pyt.patch
new file mode 100644
index 0000000..6be56cb
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-Update-Cython-version-to-fix-NanoSVG-issues-with-Pyt.patch
@@ -0,0 +1,861 @@
+Upstream-Status: Backport [https://github.com/wxWidgets/Phoenix/commit/b40ab0f8]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From b40ab0f806bdf7aa0c0a51a8c4876ac47754515d Mon Sep 17 00:00:00 2001
+From: Scott Talbert <swt@techie.net>
+Date: Thu, 7 Oct 2021 17:53:05 -0400
+Subject: [PATCH] Update Cython version to fix NanoSVG issues with Python 3.10
+
+---
+ requirements/devel.txt |   2 +-
+ wx/svg/_nanosvg.c      | 554 ++++++++++++++++++++++++++---------------
+ 2 files changed, 359 insertions(+), 197 deletions(-)
+
+diff --git a/requirements/devel.txt b/requirements/devel.txt
+index 1d427be0..18164bdc 100644
+--- a/requirements/devel.txt
++++ b/requirements/devel.txt
+@@ -9,7 +9,7 @@ wheel
+ twine
+ requests
+ requests[security]
+-cython==0.29.21
++cython==0.29.24
+ pytest
+ pytest-xdist
+ pytest-forked
+diff --git a/wx/svg/_nanosvg.c b/wx/svg/_nanosvg.c
+index d8f1e158..fd4a5a67 100644
+--- a/wx/svg/_nanosvg.c
++++ b/wx/svg/_nanosvg.c
+@@ -1,4 +1,4 @@
+-/* Generated by Cython 0.29.21 */
++/* Generated by Cython 0.29.24 */
+ 
+ /* BEGIN: Cython Metadata
+ {
+@@ -33,15 +33,17 @@
+ }
+ END: Cython Metadata */
+ 
++#ifndef PY_SSIZE_T_CLEAN
+ #define PY_SSIZE_T_CLEAN
++#endif /* PY_SSIZE_T_CLEAN */
+ #include "Python.h"
+ #ifndef Py_PYTHON_H
+     #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+     #error Cython requires Python 2.6+ or Python 3.3+.
+ #else
+-#define CYTHON_ABI "0_29_21"
+-#define CYTHON_HEX_VERSION 0x001D15F0
++#define CYTHON_ABI "0_29_24"
++#define CYTHON_HEX_VERSION 0x001D18F0
+ #define CYTHON_FUTURE_DIVISION 0
+ #include <stddef.h>
+ #ifndef offsetof
+@@ -459,8 +461,12 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
+ #endif
+ #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
+   #define CYTHON_PEP393_ENABLED 1
++  #if defined(PyUnicode_IS_READY)
+   #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
+                                               0 : _PyUnicode_Ready((PyObject *)(op)))
++  #else
++  #define __Pyx_PyUnicode_READY(op)       (0)
++  #endif
+   #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
+   #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
+   #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
+@@ -469,7 +475,11 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
+   #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
+   #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, ch)
+   #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE)
++  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
++  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
++  #else
+   #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
++  #endif
+   #else
+   #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_LENGTH(u))
+   #endif
+@@ -1736,33 +1746,38 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
+ static void __Pyx_AddTraceback(const char *funcname, int c_line,
+                                int py_line, const char *filename);
+ 
++/* GCCDiagnostics.proto */
++#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
++#define __Pyx_HAS_GCC_DIAGNOSTIC
++#endif
++
+ /* CIntToPy.proto */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
+ 
++/* CIntFromPy.proto */
++static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
++
+ /* CIntToPy.proto */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);
+ 
+ /* CIntToPy.proto */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_char(char value);
+ 
++/* CIntFromPy.proto */
++static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *);
++
+ /* CIntToPy.proto */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value);
+ 
++/* CIntFromPy.proto */
++static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
++
+ /* CIntToPy.proto */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGpaintType(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType value);
+ 
+ /* CIntToPy.proto */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value);
+ 
+-/* CIntFromPy.proto */
+-static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
+-
+-/* CIntFromPy.proto */
+-static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *);
+-
+-/* CIntFromPy.proto */
+-static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
+-
+ /* CIntToPy.proto */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGfillRule(enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule value);
+ 
+@@ -1844,6 +1859,7 @@ typedef struct {
+     PyObject *gi_qualname;
+     PyObject *gi_modulename;
+     PyObject *gi_code;
++    PyObject *gi_frame;
+     int resume_label;
+     char is_running;
+ } __pyx_CoroutineObject;
+@@ -14641,11 +14657,9 @@ if (!__Pyx_RefNanny) {
+   #endif
+   /*--- Library function declarations ---*/
+   /*--- Threads initialization code ---*/
+-  #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
+-  #ifdef WITH_THREAD /* Python build with threading support? */
++  #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
+   PyEval_InitThreads();
+   #endif
+-  #endif
+   /*--- Module creation code ---*/
+   #if CYTHON_PEP489_MULTI_PHASE_INIT
+   __pyx_m = __pyx_pyinit_module;
+@@ -16766,7 +16780,7 @@ invalid_keyword:
+ #if CYTHON_COMPILING_IN_CPYTHON
+ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
+     PyObject *result;
+-    ternaryfunc call = func->ob_type->tp_call;
++    ternaryfunc call = Py_TYPE(func)->tp_call;
+     if (unlikely(!call))
+         return PyObject_Call(func, arg, kw);
+     if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
+@@ -17149,7 +17163,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec
+         if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
+             return __Pyx_PyObject_CallMethO(func, arg);
+ #if CYTHON_FAST_PYCCALL
+-        } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) {
++        } else if (__Pyx_PyFastCFunction_Check(func)) {
+             return __Pyx_PyCFunction_FastCall(func, &arg, 1);
+ #endif
+         }
+@@ -18800,7 +18814,8 @@ static PyObject *
+ __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args)
+ {
+ #if PY_MAJOR_VERSION >= 3
+-    return PyUnicode_FromString(m->func.m_ml->ml_name);
++    Py_INCREF(m->func_qualname);
++    return m->func_qualname;
+ #else
+     return PyString_FromString(m->func.m_ml->ml_name);
+ #endif
+@@ -19443,37 +19458,6 @@ bad:
+     Py_XDECREF(py_frame);
+ }
+ 
+-/* CIntToPy */
+-static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
+-    const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0;
+-    const int is_unsigned = neg_one > const_zero;
+-    if (is_unsigned) {
+-        if (sizeof(long) < sizeof(long)) {
+-            return PyInt_FromLong((long) value);
+-        } else if (sizeof(long) <= sizeof(unsigned long)) {
+-            return PyLong_FromUnsignedLong((unsigned long) value);
+-#ifdef HAVE_LONG_LONG
+-        } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
+-            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
+-#endif
+-        }
+-    } else {
+-        if (sizeof(long) <= sizeof(long)) {
+-            return PyInt_FromLong((long) value);
+-#ifdef HAVE_LONG_LONG
+-        } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
+-            return PyLong_FromLongLong((PY_LONG_LONG) value);
+-#endif
+-        }
+-    }
+-    {
+-        int one = 1; int little = (int)*(unsigned char *)&one;
+-        unsigned char *bytes = (unsigned char *)&value;
+-        return _PyLong_FromByteArray(bytes, sizeof(long),
+-                                     little, !is_unsigned);
+-    }
+-}
+-
+ /* CIntFromPyVerify */
+ #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
+     __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
+@@ -19497,148 +19481,31 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
+     }
+ 
+ /* CIntToPy */
+-static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
+-    const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0;
+-    const int is_unsigned = neg_one > const_zero;
+-    if (is_unsigned) {
+-        if (sizeof(int) < sizeof(long)) {
+-            return PyInt_FromLong((long) value);
+-        } else if (sizeof(int) <= sizeof(unsigned long)) {
+-            return PyLong_FromUnsignedLong((unsigned long) value);
+-#ifdef HAVE_LONG_LONG
+-        } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
+-            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
+-#endif
+-        }
+-    } else {
+-        if (sizeof(int) <= sizeof(long)) {
+-            return PyInt_FromLong((long) value);
+-#ifdef HAVE_LONG_LONG
+-        } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
+-            return PyLong_FromLongLong((PY_LONG_LONG) value);
+-#endif
+-        }
+-    }
+-    {
+-        int one = 1; int little = (int)*(unsigned char *)&one;
+-        unsigned char *bytes = (unsigned char *)&value;
+-        return _PyLong_FromByteArray(bytes, sizeof(int),
+-                                     little, !is_unsigned);
+-    }
+-}
+-
+-/* CIntToPy */
+-static CYTHON_INLINE PyObject* __Pyx_PyInt_From_char(char value) {
+-    const char neg_one = (char) ((char) 0 - (char) 1), const_zero = (char) 0;
+-    const int is_unsigned = neg_one > const_zero;
+-    if (is_unsigned) {
+-        if (sizeof(char) < sizeof(long)) {
+-            return PyInt_FromLong((long) value);
+-        } else if (sizeof(char) <= sizeof(unsigned long)) {
+-            return PyLong_FromUnsignedLong((unsigned long) value);
+-#ifdef HAVE_LONG_LONG
+-        } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) {
+-            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
+-#endif
+-        }
+-    } else {
+-        if (sizeof(char) <= sizeof(long)) {
+-            return PyInt_FromLong((long) value);
+-#ifdef HAVE_LONG_LONG
+-        } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) {
+-            return PyLong_FromLongLong((PY_LONG_LONG) value);
+-#endif
+-        }
+-    }
+-    {
+-        int one = 1; int little = (int)*(unsigned char *)&one;
+-        unsigned char *bytes = (unsigned char *)&value;
+-        return _PyLong_FromByteArray(bytes, sizeof(char),
+-                                     little, !is_unsigned);
+-    }
+-}
+-
+-/* CIntToPy */
+-static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value) {
+-    const unsigned char neg_one = (unsigned char) ((unsigned char) 0 - (unsigned char) 1), const_zero = (unsigned char) 0;
+-    const int is_unsigned = neg_one > const_zero;
+-    if (is_unsigned) {
+-        if (sizeof(unsigned char) < sizeof(long)) {
+-            return PyInt_FromLong((long) value);
+-        } else if (sizeof(unsigned char) <= sizeof(unsigned long)) {
+-            return PyLong_FromUnsignedLong((unsigned long) value);
+-#ifdef HAVE_LONG_LONG
+-        } else if (sizeof(unsigned char) <= sizeof(unsigned PY_LONG_LONG)) {
+-            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
+-#endif
+-        }
+-    } else {
+-        if (sizeof(unsigned char) <= sizeof(long)) {
+-            return PyInt_FromLong((long) value);
+-#ifdef HAVE_LONG_LONG
+-        } else if (sizeof(unsigned char) <= sizeof(PY_LONG_LONG)) {
+-            return PyLong_FromLongLong((PY_LONG_LONG) value);
+-#endif
+-        }
+-    }
+-    {
+-        int one = 1; int little = (int)*(unsigned char *)&one;
+-        unsigned char *bytes = (unsigned char *)&value;
+-        return _PyLong_FromByteArray(bytes, sizeof(unsigned char),
+-                                     little, !is_unsigned);
+-    }
+-}
+-
+-/* CIntToPy */
+-static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGpaintType(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType value) {
+-    const enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) ((enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) 0 - (enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) 1), const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) 0;
+-    const int is_unsigned = neg_one > const_zero;
+-    if (is_unsigned) {
+-        if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) < sizeof(long)) {
+-            return PyInt_FromLong((long) value);
+-        } else if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(unsigned long)) {
+-            return PyLong_FromUnsignedLong((unsigned long) value);
+-#ifdef HAVE_LONG_LONG
+-        } else if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(unsigned PY_LONG_LONG)) {
+-            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
++static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
+ #endif
+-        }
+-    } else {
+-        if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(long)) {
+-            return PyInt_FromLong((long) value);
+-#ifdef HAVE_LONG_LONG
+-        } else if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(PY_LONG_LONG)) {
+-            return PyLong_FromLongLong((PY_LONG_LONG) value);
++    const long neg_one = (long) -1, const_zero = (long) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
+ #endif
+-        }
+-    }
+-    {
+-        int one = 1; int little = (int)*(unsigned char *)&one;
+-        unsigned char *bytes = (unsigned char *)&value;
+-        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType),
+-                                     little, !is_unsigned);
+-    }
+-}
+-
+-/* CIntToPy */
+-static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) {
+-    const unsigned int neg_one = (unsigned int) ((unsigned int) 0 - (unsigned int) 1), const_zero = (unsigned int) 0;
+     const int is_unsigned = neg_one > const_zero;
+     if (is_unsigned) {
+-        if (sizeof(unsigned int) < sizeof(long)) {
++        if (sizeof(long) < sizeof(long)) {
+             return PyInt_FromLong((long) value);
+-        } else if (sizeof(unsigned int) <= sizeof(unsigned long)) {
++        } else if (sizeof(long) <= sizeof(unsigned long)) {
+             return PyLong_FromUnsignedLong((unsigned long) value);
+ #ifdef HAVE_LONG_LONG
+-        } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) {
++        } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
+             return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
+ #endif
+         }
+     } else {
+-        if (sizeof(unsigned int) <= sizeof(long)) {
++        if (sizeof(long) <= sizeof(long)) {
+             return PyInt_FromLong((long) value);
+ #ifdef HAVE_LONG_LONG
+-        } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) {
++        } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
+             return PyLong_FromLongLong((PY_LONG_LONG) value);
+ #endif
+         }
+@@ -19646,14 +19513,21 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value)
+     {
+         int one = 1; int little = (int)*(unsigned char *)&one;
+         unsigned char *bytes = (unsigned char *)&value;
+-        return _PyLong_FromByteArray(bytes, sizeof(unsigned int),
++        return _PyLong_FromByteArray(bytes, sizeof(long),
+                                      little, !is_unsigned);
+     }
+ }
+ 
+ /* CIntFromPy */
+ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
+-    const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++    const int neg_one = (int) -1, const_zero = (int) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
+     const int is_unsigned = neg_one > const_zero;
+ #if PY_MAJOR_VERSION < 3
+     if (likely(PyInt_Check(x))) {
+@@ -19840,9 +19714,92 @@ raise_neg_overflow:
+     return (int) -1;
+ }
+ 
++/* CIntToPy */
++static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++    const int neg_one = (int) -1, const_zero = (int) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
++    const int is_unsigned = neg_one > const_zero;
++    if (is_unsigned) {
++        if (sizeof(int) < sizeof(long)) {
++            return PyInt_FromLong((long) value);
++        } else if (sizeof(int) <= sizeof(unsigned long)) {
++            return PyLong_FromUnsignedLong((unsigned long) value);
++#ifdef HAVE_LONG_LONG
++        } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
++            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
++#endif
++        }
++    } else {
++        if (sizeof(int) <= sizeof(long)) {
++            return PyInt_FromLong((long) value);
++#ifdef HAVE_LONG_LONG
++        } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
++            return PyLong_FromLongLong((PY_LONG_LONG) value);
++#endif
++        }
++    }
++    {
++        int one = 1; int little = (int)*(unsigned char *)&one;
++        unsigned char *bytes = (unsigned char *)&value;
++        return _PyLong_FromByteArray(bytes, sizeof(int),
++                                     little, !is_unsigned);
++    }
++}
++
++/* CIntToPy */
++static CYTHON_INLINE PyObject* __Pyx_PyInt_From_char(char value) {
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++    const char neg_one = (char) -1, const_zero = (char) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
++    const int is_unsigned = neg_one > const_zero;
++    if (is_unsigned) {
++        if (sizeof(char) < sizeof(long)) {
++            return PyInt_FromLong((long) value);
++        } else if (sizeof(char) <= sizeof(unsigned long)) {
++            return PyLong_FromUnsignedLong((unsigned long) value);
++#ifdef HAVE_LONG_LONG
++        } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) {
++            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
++#endif
++        }
++    } else {
++        if (sizeof(char) <= sizeof(long)) {
++            return PyInt_FromLong((long) value);
++#ifdef HAVE_LONG_LONG
++        } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) {
++            return PyLong_FromLongLong((PY_LONG_LONG) value);
++#endif
++        }
++    }
++    {
++        int one = 1; int little = (int)*(unsigned char *)&one;
++        unsigned char *bytes = (unsigned char *)&value;
++        return _PyLong_FromByteArray(bytes, sizeof(char),
++                                     little, !is_unsigned);
++    }
++}
++
+ /* CIntFromPy */
+ static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) {
+-    const char neg_one = (char) ((char) 0 - (char) 1), const_zero = (char) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++    const char neg_one = (char) -1, const_zero = (char) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
+     const int is_unsigned = neg_one > const_zero;
+ #if PY_MAJOR_VERSION < 3
+     if (likely(PyInt_Check(x))) {
+@@ -20029,9 +19986,54 @@ raise_neg_overflow:
+     return (char) -1;
+ }
+ 
++/* CIntToPy */
++static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value) {
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++    const unsigned char neg_one = (unsigned char) -1, const_zero = (unsigned char) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
++    const int is_unsigned = neg_one > const_zero;
++    if (is_unsigned) {
++        if (sizeof(unsigned char) < sizeof(long)) {
++            return PyInt_FromLong((long) value);
++        } else if (sizeof(unsigned char) <= sizeof(unsigned long)) {
++            return PyLong_FromUnsignedLong((unsigned long) value);
++#ifdef HAVE_LONG_LONG
++        } else if (sizeof(unsigned char) <= sizeof(unsigned PY_LONG_LONG)) {
++            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
++#endif
++        }
++    } else {
++        if (sizeof(unsigned char) <= sizeof(long)) {
++            return PyInt_FromLong((long) value);
++#ifdef HAVE_LONG_LONG
++        } else if (sizeof(unsigned char) <= sizeof(PY_LONG_LONG)) {
++            return PyLong_FromLongLong((PY_LONG_LONG) value);
++#endif
++        }
++    }
++    {
++        int one = 1; int little = (int)*(unsigned char *)&one;
++        unsigned char *bytes = (unsigned char *)&value;
++        return _PyLong_FromByteArray(bytes, sizeof(unsigned char),
++                                     little, !is_unsigned);
++    }
++}
++
+ /* CIntFromPy */
+ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
+-    const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++    const long neg_one = (long) -1, const_zero = (long) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
+     const int is_unsigned = neg_one > const_zero;
+ #if PY_MAJOR_VERSION < 3
+     if (likely(PyInt_Check(x))) {
+@@ -20218,9 +20220,92 @@ raise_neg_overflow:
+     return (long) -1;
+ }
+ 
++/* CIntToPy */
++static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGpaintType(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType value) {
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++    const enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) -1, const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
++    const int is_unsigned = neg_one > const_zero;
++    if (is_unsigned) {
++        if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) < sizeof(long)) {
++            return PyInt_FromLong((long) value);
++        } else if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(unsigned long)) {
++            return PyLong_FromUnsignedLong((unsigned long) value);
++#ifdef HAVE_LONG_LONG
++        } else if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(unsigned PY_LONG_LONG)) {
++            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
++#endif
++        }
++    } else {
++        if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(long)) {
++            return PyInt_FromLong((long) value);
++#ifdef HAVE_LONG_LONG
++        } else if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(PY_LONG_LONG)) {
++            return PyLong_FromLongLong((PY_LONG_LONG) value);
++#endif
++        }
++    }
++    {
++        int one = 1; int little = (int)*(unsigned char *)&one;
++        unsigned char *bytes = (unsigned char *)&value;
++        return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType),
++                                     little, !is_unsigned);
++    }
++}
++
++/* CIntToPy */
++static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) {
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++    const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
++    const int is_unsigned = neg_one > const_zero;
++    if (is_unsigned) {
++        if (sizeof(unsigned int) < sizeof(long)) {
++            return PyInt_FromLong((long) value);
++        } else if (sizeof(unsigned int) <= sizeof(unsigned long)) {
++            return PyLong_FromUnsignedLong((unsigned long) value);
++#ifdef HAVE_LONG_LONG
++        } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) {
++            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
++#endif
++        }
++    } else {
++        if (sizeof(unsigned int) <= sizeof(long)) {
++            return PyInt_FromLong((long) value);
++#ifdef HAVE_LONG_LONG
++        } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) {
++            return PyLong_FromLongLong((PY_LONG_LONG) value);
++#endif
++        }
++    }
++    {
++        int one = 1; int little = (int)*(unsigned char *)&one;
++        unsigned char *bytes = (unsigned char *)&value;
++        return _PyLong_FromByteArray(bytes, sizeof(unsigned int),
++                                     little, !is_unsigned);
++    }
++}
++
+ /* CIntToPy */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGfillRule(enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule value) {
+-    const enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) ((enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) 0 - (enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) 1), const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++    const enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) -1, const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
+     const int is_unsigned = neg_one > const_zero;
+     if (is_unsigned) {
+         if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) < sizeof(long)) {
+@@ -20251,7 +20336,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg
+ 
+ /* CIntToPy */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGflags(enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags value) {
+-    const enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) ((enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) 0 - (enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) 1), const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++    const enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) -1, const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
+     const int is_unsigned = neg_one > const_zero;
+     if (is_unsigned) {
+         if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) < sizeof(long)) {
+@@ -20282,7 +20374,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg
+ 
+ /* CIntToPy */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGlineCap(enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap value) {
+-    const enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) ((enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) 0 - (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) 1), const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++    const enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) -1, const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
+     const int is_unsigned = neg_one > const_zero;
+     if (is_unsigned) {
+         if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) < sizeof(long)) {
+@@ -20313,7 +20412,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg
+ 
+ /* CIntToPy */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin(enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin value) {
+-    const enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) ((enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) 0 - (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) 1), const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++    const enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) -1, const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
+     const int is_unsigned = neg_one > const_zero;
+     if (is_unsigned) {
+         if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) < sizeof(long)) {
+@@ -20344,7 +20450,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg
+ 
+ /* CIntToPy */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGspreadType(enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType value) {
+-    const enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) ((enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) 0 - (enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) 1), const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++    const enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) -1, const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
+     const int is_unsigned = neg_one > const_zero;
+     if (is_unsigned) {
+         if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) < sizeof(long)) {
+@@ -20907,6 +21020,30 @@ PyObject *__Pyx_Coroutine_MethodReturn(CYTHON_UNUSED PyObject* gen, PyObject *re
+     }
+     return retval;
+ }
++#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
++static CYTHON_INLINE
++PyObject *__Pyx_PyGen_Send(PyGenObject *gen, PyObject *arg) {
++#if PY_VERSION_HEX <= 0x030A00A1
++    return _PyGen_Send(gen, arg);
++#else
++    PyObject *result;
++    if (PyIter_Send((PyObject*)gen, arg ? arg : Py_None, &result) == PYGEN_RETURN) {
++        if (PyAsyncGen_CheckExact(gen)) {
++            assert(result == Py_None);
++            PyErr_SetNone(PyExc_StopAsyncIteration);
++        }
++        else if (result == Py_None) {
++            PyErr_SetNone(PyExc_StopIteration);
++        }
++        else {
++            _PyGen_SetStopIterationValue(result);
++        }
++        Py_CLEAR(result);
++    }
++    return result;
++#endif
++}
++#endif
+ static CYTHON_INLINE
+ PyObject *__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen) {
+     PyObject *ret;
+@@ -20943,12 +21080,12 @@ static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) {
+         #endif
+         #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
+         if (PyGen_CheckExact(yf)) {
+-            ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
++            ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
+         } else
+         #endif
+         #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03050000 && defined(PyCoro_CheckExact) && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
+         if (PyCoro_CheckExact(yf)) {
+-            ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
++            ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
+         } else
+         #endif
+         {
+@@ -21032,7 +21169,7 @@ static PyObject *__Pyx_Generator_Next(PyObject *self) {
+         #endif
+         #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
+         if (PyGen_CheckExact(yf)) {
+-            ret = _PyGen_Send((PyGenObject*)yf, NULL);
++            ret = __Pyx_PyGen_Send((PyGenObject*)yf, NULL);
+         } else
+         #endif
+         #ifdef __Pyx_Coroutine_USED
+@@ -21192,6 +21329,7 @@ static int __Pyx_Coroutine_clear(PyObject *self) {
+     }
+ #endif
+     Py_CLEAR(gen->gi_code);
++    Py_CLEAR(gen->gi_frame);
+     Py_CLEAR(gen->gi_name);
+     Py_CLEAR(gen->gi_qualname);
+     Py_CLEAR(gen->gi_modulename);
+@@ -21208,7 +21346,7 @@ static void __Pyx_Coroutine_dealloc(PyObject *self) {
+         if (PyObject_CallFinalizerFromDealloc(self))
+ #else
+         Py_TYPE(gen)->tp_del(self);
+-        if (self->ob_refcnt > 0)
++        if (Py_REFCNT(self) > 0)
+ #endif
+         {
+             return;
+@@ -21235,7 +21373,7 @@ static void __Pyx_Coroutine_del(PyObject *self) {
+     }
+ #if !CYTHON_USE_TP_FINALIZE
+     assert(self->ob_refcnt == 0);
+-    self->ob_refcnt = 1;
++    __Pyx_SET_REFCNT(self, 1);
+ #endif
+     __Pyx_PyThreadState_assign
+     __Pyx_ErrFetch(&error_type, &error_value, &error_traceback);
+@@ -21302,17 +21440,17 @@ static void __Pyx_Coroutine_del(PyObject *self) {
+     }
+     __Pyx_ErrRestore(error_type, error_value, error_traceback);
+ #if !CYTHON_USE_TP_FINALIZE
+-    assert(self->ob_refcnt > 0);
++    assert(Py_REFCNT(self) > 0);
+     if (--self->ob_refcnt == 0) {
+         return;
+     }
+     {
+-        Py_ssize_t refcnt = self->ob_refcnt;
++        Py_ssize_t refcnt = Py_REFCNT(self);
+         _Py_NewReference(self);
+-        self->ob_refcnt = refcnt;
++        __Pyx_SET_REFCNT(self, refcnt);
+     }
+ #if CYTHON_COMPILING_IN_CPYTHON
+-    assert(PyType_IS_GC(self->ob_type) &&
++    assert(PyType_IS_GC(Py_TYPE(self)) &&
+            _Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED);
+     _Py_DEC_REFTOTAL;
+ #endif
+@@ -21378,6 +21516,27 @@ __Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, CYTHO
+     Py_XDECREF(tmp);
+     return 0;
+ }
++static PyObject *
++__Pyx_Coroutine_get_frame(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context)
++{
++    PyObject *frame = self->gi_frame;
++    if (!frame) {
++        if (unlikely(!self->gi_code)) {
++            Py_RETURN_NONE;
++        }
++        frame = (PyObject *) PyFrame_New(
++            PyThreadState_Get(),            /*PyThreadState *tstate,*/
++            (PyCodeObject*) self->gi_code,  /*PyCodeObject *code,*/
++            __pyx_d,                 /*PyObject *globals,*/
++            0                               /*PyObject *locals*/
++        );
++        if (unlikely(!frame))
++            return NULL;
++        self->gi_frame = frame;
++    }
++    Py_INCREF(frame);
++    return frame;
++}
+ static __pyx_CoroutineObject *__Pyx__Coroutine_New(
+             PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
+             PyObject *name, PyObject *qualname, PyObject *module_name) {
+@@ -21411,6 +21570,7 @@ static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
+     gen->gi_modulename = module_name;
+     Py_XINCREF(code);
+     gen->gi_code = code;
++    gen->gi_frame = NULL;
+     PyObject_GC_Track(gen);
+     return gen;
+ }
+@@ -21534,6 +21694,8 @@ static PyGetSetDef __pyx_Generator_getsets[] = {
+      (char*) PyDoc_STR("name of the generator"), 0},
+     {(char *) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
+      (char*) PyDoc_STR("qualified name of the generator"), 0},
++    {(char *) "gi_frame", (getter)__Pyx_Coroutine_get_frame, NULL,
++     (char*) PyDoc_STR("Frame of the generator"), 0},
+     {0, 0, 0, 0, 0}
+ };
+ static PyTypeObject __pyx_GeneratorType_type = {
+-- 
+2.33.0
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.1.1.bb
index 3583acc..4d739b8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.1.1.bb
@@ -11,6 +11,7 @@
 SRC_URI += "file://add-back-option-build-base.patch \
             file://wxgtk-fixup-build-scripts.patch \
             file://sip-fix-override-functions.patch \
+            file://0001-Update-Cython-version-to-fix-NanoSVG-issues-with-Pyt.patch \
             "
 SRC_URI[sha256sum] = "00e5e3180ac7f2852f342ad341d57c44e7e4326de0b550b9a5c4a8361b6c3528"
 
@@ -18,7 +19,7 @@
 
 inherit pypi setuptools3 pkgconfig features_check
 
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+REQUIRED_DISTRO_FEATURES = "x11"
 
 export WX_CONFIG = "'${RECIPE_SYSROOT_NATIVE}${bindir}/wx-config --prefix=${STAGING_EXECPREFIXDIR} --baselib=${baselib}'"
 
diff --git a/meta-openembedded/meta-python/recipes-networking/python/python3-ldap_3.4.0.bb b/meta-openembedded/meta-python/recipes-networking/python/python3-ldap_3.4.0.bb
new file mode 100644
index 0000000..4299058
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-networking/python/python3-ldap_3.4.0.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Provides a wrapper in Python to LDAP"
+DESCRIPTION = "This module provides access to the LDAP \
+(Lightweight Directory Access Protocol) through Python operations \
+instead of C API. The module mainly acts as a wrapper for the \
+OpenLDAP 2.x libraries. Errors will appear as exceptions."
+HOMEPAGE = "http://www.python-ldap.org/"
+LICENSE = "PSF-2.0"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=36ce9d726d0321b73c1521704d07db1b"
+
+DEPENDS = "python3 openldap cyrus-sasl"
+
+PYPI_PACKAGE = "python-ldap"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "60464c8fc25e71e0fd40449a24eae482dcd0fb7fcf823e7de627a6525b3e0d12"
+
+do_configure:prepend() {
+    sed -i -e 's:^library_dirs =.*::' \
+        -e 's:^include_dirs =.*:include_dirs = =/usr/include/sasl/:' \
+        -e 's/= ldap_r/= ldap/g' ${S}/setup.cfg
+}
+
+RDEPENDS:${PN} = " \
+    ${PYTHON_PN}-pprint \
+    ${PYTHON_PN}-threading \
+    ${PYTHON_PN}-pyasn1 \
+    ${PYTHON_PN}-pyasn1-modules \
+"