get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2217113/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2217113,
    "url": "http://patchwork.ozlabs.org/api/patches/2217113/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/buildroot/patch/20260327-qt5-5-15-18-v2-5-4c98e853266a@cherry.de/",
    "project": {
        "id": 27,
        "url": "http://patchwork.ozlabs.org/api/projects/27/?format=api",
        "name": "Buildroot development",
        "link_name": "buildroot",
        "list_id": "buildroot.buildroot.org",
        "list_email": "buildroot@buildroot.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260327-qt5-5-15-18-v2-5-4c98e853266a@cherry.de>",
    "list_archive_url": null,
    "date": "2026-03-27T16:53:06",
    "name": "[v2,5/5] package/qt5: bump packages to latest 5.15 kde submodule version",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "80c1b474eec3b9b8684b474afe631a53c3bba516",
    "submitter": {
        "id": 83602,
        "url": "http://patchwork.ozlabs.org/api/people/83602/?format=api",
        "name": "Quentin Schulz",
        "email": "foss+buildroot@0leil.net"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/buildroot/patch/20260327-qt5-5-15-18-v2-5-4c98e853266a@cherry.de/mbox/",
    "series": [
        {
            "id": 497799,
            "url": "http://patchwork.ozlabs.org/api/series/497799/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/buildroot/list/?series=497799",
            "date": "2026-03-27T16:53:01",
            "name": "package/qt5: misc fixes + bump to 5.15.18",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/497799/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2217113/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2217113/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<buildroot-bounces@buildroot.org>",
        "X-Original-To": [
            "incoming-buildroot@patchwork.ozlabs.org",
            "buildroot@buildroot.org"
        ],
        "Delivered-To": [
            "patchwork-incoming-buildroot@legolas.ozlabs.org",
            "buildroot@buildroot.org"
        ],
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=buildroot.org header.i=@buildroot.org\n header.a=rsa-sha256 header.s=default header.b=JBShusCn;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=buildroot.org\n (client-ip=2605:bc80:3010::138; helo=smtp1.osuosl.org;\n envelope-from=buildroot-bounces@buildroot.org; receiver=patchwork.ozlabs.org)"
        ],
        "Received": [
            "from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fj6D22Pktz1xy1\n\tfor <incoming-buildroot@patchwork.ozlabs.org>;\n Sat, 28 Mar 2026 03:53:38 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby smtp1.osuosl.org (Postfix) with ESMTP id E348D83EA8;\n\tFri, 27 Mar 2026 16:53:36 +0000 (UTC)",
            "from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id PCkncV0C8gmH; Fri, 27 Mar 2026 16:53:33 +0000 (UTC)",
            "from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp1.osuosl.org (Postfix) with ESMTP id 7E61C83E99;\n\tFri, 27 Mar 2026 16:53:33 +0000 (UTC)",
            "from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138])\n by lists1.osuosl.org (Postfix) with ESMTP id B45A0249\n for <buildroot@buildroot.org>; Fri, 27 Mar 2026 16:53:31 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n by smtp1.osuosl.org (Postfix) with ESMTP id 903C683E98\n for <buildroot@buildroot.org>; Fri, 27 Mar 2026 16:53:31 +0000 (UTC)",
            "from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id YY6NzKiRhriV for <buildroot@buildroot.org>;\n Fri, 27 Mar 2026 16:53:29 +0000 (UTC)",
            "from smtp-42aa.mail.infomaniak.ch (smtp-42aa.mail.infomaniak.ch\n [84.16.66.170])\n by smtp1.osuosl.org (Postfix) with ESMTPS id 0D21183EA0\n for <buildroot@buildroot.org>; Fri, 27 Mar 2026 16:53:27 +0000 (UTC)",
            "from smtp-3-0001.mail.infomaniak.ch (unknown\n [IPv6:2001:1600:4:17::246c])\n by smtp-3-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4fj6Cn5vblzLPn;\n Fri, 27 Mar 2026 17:53:25 +0100 (CET)",
            "from unknown by smtp-3-0001.mail.infomaniak.ch (Postfix) with ESMTPA\n id 4fj6Cm60hZzN7L; Fri, 27 Mar 2026 17:53:24 +0100 (CET)"
        ],
        "X-Virus-Scanned": [
            "amavis at osuosl.org",
            "amavis at osuosl.org"
        ],
        "X-Comment": "SPF check N/A for local connections - client-ip=140.211.166.142;\n helo=lists1.osuosl.org; envelope-from=buildroot-bounces@buildroot.org;\n receiver=<UNKNOWN> ",
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 smtp1.osuosl.org 7E61C83E99",
            "OpenDKIM Filter v2.11.0 smtp1.osuosl.org 0D21183EA0"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=buildroot.org;\n\ts=default; t=1774630413;\n\tbh=C9A/HHNZ/82S4NB1ivd+IiUIjdgj65m0ZbjWxL2+ykg=;\n\th=Date:References:In-Reply-To:To:Subject:List-Id:List-Unsubscribe:\n\t List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\t From;\n\tb=JBShusCnEDy2IlnUMgdq8TrVvjHVpqBK0vM1oZ+xL/V+qJmdv7DvDUOqt0X+sf7AX\n\t dgaq2lWG53r8d4gfak2FFnZjwnBwK4Nh13d2oi6a/eskkCTQU1CQOaobT0XsHaXPYm\n\t L2lz8N0FAbDSqCmTyANKKnlYwB5vhE5Se7ejijRG0wXAwDaECrp6bD4dzaXzN8CtZP\n\t EIeOBw82UhDFaCA9Tlx5LJgBI4zdnm6JmtZUI7vfKgynjE+eOU8tuLgSgeJNEhBeKn\n\t nfJ9CeCE6Uhh0qz3l0JWg7mvKzwuNd+0x6rKUrLv515Y5qnoCp+J7G+6B8eVx1LPkD\n\t GXIBuQLu4RwkQ==",
        "Received-SPF": "Pass (mailfrom) identity=mailfrom; client-ip=84.16.66.170;\n helo=smtp-42aa.mail.infomaniak.ch; envelope-from=foss+buildroot@0leil.net;\n receiver=<UNKNOWN>",
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp1.osuosl.org 0D21183EA0",
        "Date": "Fri, 27 Mar 2026 17:53:06 +0100",
        "MIME-Version": "1.0",
        "Message-Id": "<20260327-qt5-5-15-18-v2-5-4c98e853266a@cherry.de>",
        "References": "<20260327-qt5-5-15-18-v2-0-4c98e853266a@cherry.de>",
        "In-Reply-To": "<20260327-qt5-5-15-18-v2-0-4c98e853266a@cherry.de>",
        "To": "buildroot@buildroot.org",
        "X-Mailer": "b4 0.15-dev-47773",
        "X-Infomaniak-Routing": "alpha",
        "X-Mailman-Original-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=0leil.net; s=20231125; t=1774630405;\n bh=RDdAOqSEtiRW0t09FniVTn5SNIGgUbrh5aNZ0w4uy+o=;\n h=From:Date:Subject:References:In-Reply-To:To:Cc:From;\n b=Z5OEuNNicoU2hjgAwgsGNWuySHv64phh1vfXm6nKv2crrWhKLxYMx5Cew5i/dojIg\n Fz02T0JrWp6TV/jqpgIidQxTHzgLPZnWR68PpMp9WaPgcIwLxPiP9L8xQTReL8KFdD\n y6SmMCGw7fVIttN6Uk1xKITEc2Y/lCEMQQdI3jhp9+xh6XHgvivAkY7h1xJ996MFfl\n xtbb2pOaLB5DUM0LzkHv+cBDKqNqH/fOMXJDfwV1dUevRhgGZ/wtQYU3v/dwbyVnrW\n z8udEwuXp/YVnhuPFFM3IGoE+8k1uIbAOSgSnf6OWws4uWyb9szwEvxklO538Ji9IK\n J+J+Isi44KY2w==",
        "X-Mailman-Original-Authentication-Results": [
            "smtp1.osuosl.org;\n dmarc=pass (p=reject dis=none)\n header.from=0leil.net",
            "smtp1.osuosl.org;\n dkim=pass (2048-bit key) header.d=0leil.net header.i=@0leil.net\n header.a=rsa-sha256 header.s=20231125 header.b=Z5OEuNNi"
        ],
        "Subject": "[Buildroot] [PATCH v2 5/5] package/qt5: bump packages to latest\n 5.15 kde submodule version",
        "X-BeenThere": "buildroot@buildroot.org",
        "X-Mailman-Version": "2.1.30",
        "Precedence": "list",
        "List-Id": "Discussion and development of buildroot <buildroot.buildroot.org>",
        "List-Unsubscribe": "<https://lists.buildroot.org/mailman/options/buildroot>,\n <mailto:buildroot-request@buildroot.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.buildroot.org/pipermail/buildroot/>",
        "List-Post": "<mailto:buildroot@buildroot.org>",
        "List-Help": "<mailto:buildroot-request@buildroot.org?subject=help>",
        "List-Subscribe": "<https://lists.buildroot.org/mailman/listinfo/buildroot>,\n <mailto:buildroot-request@buildroot.org?subject=subscribe>",
        "From": "Quentin Schulz via buildroot <buildroot@buildroot.org>",
        "Reply-To": "Quentin Schulz <foss+buildroot@0leil.net>",
        "Cc": "Quentin Schulz <quentin.schulz@cherry.de>,\n Joshua Henderson <joshua.henderson@microchip.com>,\n Bartosz Bilas <b.bilas@grinn-global.com>, Peter Seiderer <ps.report@gmx.net>,\n Thomas Petazzoni <thomas.petazzoni@bootlin.com>,\n Giulio Benetti <giulio.benetti@benettiengineering.com>",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "base64",
        "Errors-To": "buildroot-bounces@buildroot.org",
        "Sender": "\"buildroot\" <buildroot-bounces@buildroot.org>"
    },
    "content": "From: Quentin Schulz <quentin.schulz@cherry.de>\n\nBump qt5 packages to latest submodule versions from\nhttps://invent.kde.org/qt/qt/qt5/-/tree/kde/5.15\n\nqtbase repo is a few commits after a tag named v5.15.18-lts-lgpl so\nassume it's now 5.15.18.\n\nqt5base patches are updated to make them apply silently and cleanly.\n\nFor qt5webengine-chromium:\n- 0001-Add-python3-build-support.patc is removed as commit 68302c9ea158\n  (\"Enable building with Python 3\") contains similar changes,\n- 0004-Migrate-presubmit-to-python3.patch is only partially kept as\n  commit 68302c9ea158 (\"Enable building with Python 3\") contains similar\n  changes,\n- 0006-Fix-build-in-Python-3.11-invalid-mode-rU.patch is only partially\n  kept as commit 68302c9ea158 (\"Enable building with Python 3\") contains\n  similar changes,\n- 0007-Replace-imp.load_source-with-importlib-equivalent.patch is\n  removed as commit 68302c9ea158 (\"Enable building with Python 3\")\n  contains similar changes,\n- 0010-Fix-building-with-system-libxml2.patch is removed as commit\n  c98d28f2f0f2 (\"Fix building with system libxml2\") contains similar\n  changes,\n- 0012-Include-cstdint-for-uintptr_t-uint8_t-etc.patch is renamed\n  0009-Include-cstdint-for-uintptr_t-uint8_t-etc.patch and contains more\n  file patching to make qt5webengine build again,\n\nFor qt5webengine:\n- 0002-Add-python3-build-support.patch is removed as commit 2294cc4ed5fd\n  (\"Add option to chose python version for building 5.15 WebEngine\")\n  contains similar changes. It now supports both Python2 and Python3 and\n  defaults to Python2 if found first. This can be overridden with\n  -webengine-python-version python3 in QT5WEBENGINE_CONF_OPTS but this\n  was unnecessary in my tests as Python3 was properly selected from\n  $(HOST_DIR)/bin/.\n\nqt5webengine-chromium is updated with qt5webengine following the logic\nstated in Buildroot commit c53455ea4ffa\n(\"package/qt5/qt5webengine-chromium: bump version after qtwebengine\nbump\").\n\nI am unsure whether qt5webengine-chromium-catapult also requires an\nupdate.\n\nSigned-off-by: Quentin Schulz <quentin.schulz@cherry.de>\n---\n package/qt5/qt5.mk                                 |    2 +-\n package/qt5/qt53d/qt53d.hash                       |    2 +-\n package/qt5/qt53d/qt53d.mk                         |    2 +-\n .../0003-double-conversion-enable-for-nios2.patch  |    4 +-\n .../qt5/qt5base/0006-Fix-build-on-riscv32.patch    |    4 +-\n package/qt5/qt5base/qt5base.hash                   |    2 +-\n package/qt5/qt5base/qt5base.mk                     |    4 +-\n package/qt5/qt5charts/qt5charts.hash               |    2 +-\n package/qt5/qt5charts/qt5charts.mk                 |    2 +-\n package/qt5/qt5connectivity/qt5connectivity.hash   |    2 +-\n package/qt5/qt5connectivity/qt5connectivity.mk     |    2 +-\n package/qt5/qt5declarative/qt5declarative.hash     |    2 +-\n package/qt5/qt5declarative/qt5declarative.mk       |    2 +-\n package/qt5/qt5doc/qt5doc.hash                     |    2 +-\n package/qt5/qt5doc/qt5doc.mk                       |    2 +-\n .../qt5graphicaleffects/qt5graphicaleffects.hash   |    2 +-\n .../qt5/qt5graphicaleffects/qt5graphicaleffects.mk |    2 +-\n package/qt5/qt5imageformats/qt5imageformats.hash   |    2 +-\n package/qt5/qt5imageformats/qt5imageformats.mk     |    2 +-\n package/qt5/qt5location/qt5location.hash           |    2 +-\n package/qt5/qt5location/qt5location.mk             |    2 +-\n package/qt5/qt5lottie/qt5lottie.hash               |    2 +-\n package/qt5/qt5lottie/qt5lottie.mk                 |    2 +-\n package/qt5/qt5multimedia/qt5multimedia.hash       |    2 +-\n package/qt5/qt5multimedia/qt5multimedia.mk         |    2 +-\n package/qt5/qt5quickcontrols/qt5quickcontrols.hash |    2 +-\n package/qt5/qt5quickcontrols/qt5quickcontrols.mk   |    2 +-\n .../qt5/qt5quickcontrols2/qt5quickcontrols2.hash   |    2 +-\n package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk |    2 +-\n package/qt5/qt5quicktimeline/qt5quicktimeline.hash |    2 +-\n package/qt5/qt5quicktimeline/qt5quicktimeline.mk   |    2 +-\n package/qt5/qt5remoteobjects/qt5remoteobjects.hash |    2 +-\n package/qt5/qt5remoteobjects/qt5remoteobjects.mk   |    2 +-\n package/qt5/qt5script/qt5script.hash               |    2 +-\n package/qt5/qt5script/qt5script.mk                 |    2 +-\n package/qt5/qt5scxml/qt5scxml.hash                 |    2 +-\n package/qt5/qt5scxml/qt5scxml.mk                   |    2 +-\n package/qt5/qt5sensors/qt5sensors.hash             |    2 +-\n package/qt5/qt5sensors/qt5sensors.mk               |    2 +-\n package/qt5/qt5serialbus/qt5serialbus.hash         |    2 +-\n package/qt5/qt5serialbus/qt5serialbus.mk           |    2 +-\n package/qt5/qt5serialport/qt5serialport.hash       |    2 +-\n package/qt5/qt5serialport/qt5serialport.mk         |    2 +-\n package/qt5/qt5speech/qt5speech.hash               |    2 +-\n package/qt5/qt5speech/qt5speech.mk                 |    2 +-\n package/qt5/qt5svg/qt5svg.hash                     |    2 +-\n package/qt5/qt5svg/qt5svg.mk                       |    2 +-\n package/qt5/qt5tools/qt5tools.hash                 |    2 +-\n package/qt5/qt5tools/qt5tools.mk                   |    2 +-\n .../qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash |    2 +-\n .../qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk   |    2 +-\n package/qt5/qt5wayland/qt5wayland.hash             |    2 +-\n package/qt5/qt5wayland/qt5wayland.mk               |    2 +-\n package/qt5/qt5webchannel/qt5webchannel.hash       |    2 +-\n package/qt5/qt5webchannel/qt5webchannel.mk         |    2 +-\n .../0001-Add-python3-build-support.patch           | 1858 --------------------\n ....patch => 0001-Don-t-rebase-sysroot-path.patch} |    0\n ...atch => 0002-Remove-unused-python-import.patch} |    0\n .../0003-Migrate-presubmit-to-python3.patch        |   49 +\n .../0004-Migrate-presubmit-to-python3.patch        |  132 --\n ...grit-util.py-fix-Python-3.12-build-issue.patch} |    0\n ...Fix-build-in-Python-3.11-invalid-mode-rU.patch} |   19 +-\n ...hon-google-protobuf-internal-python_mess.patch} |    0\n ...imp.load_source-with-importlib-equivalent.patch |   55 -\n ...-command_buffer-service-program_manager..patch} |    0\n ...rted-printed-cmd-when-long-commands-fail.patch} |    0\n ...Include-cstdint-for-uintptr_t-uint8_t-etc.patch |  297 ++++\n .../0010-Fix-building-with-system-libxml2.patch    |   57 -\n ...Include-cstdint-for-uintptr_t-uint8_t-etc.patch |  101 --\n .../qt5webengine-chromium.hash                     |    2 +-\n .../qt5webengine-chromium/qt5webengine-chromium.mk |    2 +-\n .../0002-Add-python3-build-support.patch           |  168 --\n ...i-remove-some-of-the-thumb-detection-log.patch} |    4 +-\n package/qt5/qt5webengine/qt5webengine.hash         |    2 +-\n package/qt5/qt5websockets/qt5websockets.hash       |    2 +-\n package/qt5/qt5websockets/qt5websockets.mk         |    2 +-\n package/qt5/qt5webview/qt5webview.hash             |    2 +-\n package/qt5/qt5webview/qt5webview.mk               |    2 +-\n package/qt5/qt5x11extras/qt5x11extras.hash         |    2 +-\n package/qt5/qt5x11extras/qt5x11extras.mk           |    2 +-\n package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash     |    2 +-\n package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk       |    2 +-\n 82 files changed, 418 insertions(+), 2460 deletions(-)",
    "diff": "diff --git a/package/qt5/qt5.mk b/package/qt5/qt5.mk\nindex 21f6a8bc73..9895f337f0 100644\n--- a/package/qt5/qt5.mk\n+++ b/package/qt5/qt5.mk\n@@ -5,7 +5,7 @@\n ################################################################################\n \n QT5_VERSION_MAJOR = 5.15\n-QT5_VERSION = $(QT5_VERSION_MAJOR).14\n+QT5_VERSION = $(QT5_VERSION_MAJOR).18\n QT5_SITE = https://invent.kde.org/qt/qt\n \n include $(sort $(wildcard package/qt5/*/*.mk))\ndiff --git a/package/qt5/qt53d/qt53d.hash b/package/qt5/qt53d/qt53d.hash\nindex 65e6e8e380..966da7d3e5 100644\n--- a/package/qt5/qt53d/qt53d.hash\n+++ b/package/qt5/qt53d/qt53d.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  31b3e52fb0b28f1e99dd25342a0204d239f7f42bcb25fb56393956904ef412ea  qt3d-9bf4d03e2515f7c454647d54542330b6e90f8191.tar.bz2\n+sha256  a7bab355f0a1d7b17b0e41179f21af8d30d0d1075af5876e9a9fb0a6a12ac982  qt3d-208f5835e6c2415c9dc5cbe92bba83aa28bab7ea.tar.bz2\n \n # Hashes for license files:\n sha256  edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253  LICENSE.GPL\ndiff --git a/package/qt5/qt53d/qt53d.mk b/package/qt5/qt53d/qt53d.mk\nindex 33e93ec5db..f058454463 100644\n--- a/package/qt5/qt53d/qt53d.mk\n+++ b/package/qt5/qt53d/qt53d.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT53D_VERSION = 9bf4d03e2515f7c454647d54542330b6e90f8191\n+QT53D_VERSION = 208f5835e6c2415c9dc5cbe92bba83aa28bab7ea\n QT53D_SITE = $(QT5_SITE)/qt3d/-/archive/$(QT53D_VERSION)\n QT53D_SOURCE = qt3d-$(QT53D_VERSION).tar.bz2\n QT53D_DEPENDENCIES = qt5declarative\ndiff --git a/package/qt5/qt5base/0003-double-conversion-enable-for-nios2.patch b/package/qt5/qt5base/0003-double-conversion-enable-for-nios2.patch\nindex 79e276b17f..79127373ca 100644\n--- a/package/qt5/qt5base/0003-double-conversion-enable-for-nios2.patch\n+++ b/package/qt5/qt5base/0003-double-conversion-enable-for-nios2.patch\n@@ -10,10 +10,10 @@ Signed-off-by: Peter Seiderer <ps.report@gmx.net>\n  1 file changed, 1 insertion(+)\n \n diff --git a/src/3rdparty/double-conversion/include/double-conversion/utils.h b/src/3rdparty/double-conversion/include/double-conversion/utils.h\n-index d29de950..55ca5bf5 100644\n+index 2bb8e389a5b..89ab1a3102a 100644\n --- a/src/3rdparty/double-conversion/include/double-conversion/utils.h\n +++ b/src/3rdparty/double-conversion/include/double-conversion/utils.h\n-@@ -87,6 +87,7 @@ int main(int argc, char** argv) {\n+@@ -94,6 +94,7 @@ int main(int argc, char** argv) {\n      defined(__ARMEL__) || defined(__avr32__) || defined(_M_ARM) || defined(_M_ARM64) || \\\n      defined(__hppa__) || defined(__ia64__) || \\\n      defined(__mips__) || \\\ndiff --git a/package/qt5/qt5base/0006-Fix-build-on-riscv32.patch b/package/qt5/qt5base/0006-Fix-build-on-riscv32.patch\nindex ff24fbff83..a30941a295 100644\n--- a/package/qt5/qt5base/0006-Fix-build-on-riscv32.patch\n+++ b/package/qt5/qt5base/0006-Fix-build-on-riscv32.patch\n@@ -28,10 +28,10 @@ Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>\n  1 file changed, 5 insertions(+)\n \n diff --git a/src/corelib/thread/qfutex_p.h b/src/corelib/thread/qfutex_p.h\n-index f287b752d75f..fd7d09ac8572 100644\n+index e294537787e..6bf59d51df3 100644\n --- a/src/corelib/thread/qfutex_p.h\n +++ b/src/corelib/thread/qfutex_p.h\n-@@ -81,6 +81,11 @@ QT_END_NAMESPACE\n+@@ -82,6 +82,11 @@ QT_END_NAMESPACE\n  // if not defined in linux/futex.h\n  #  define FUTEX_PRIVATE_FLAG        128         // added in v2.6.22\n  \ndiff --git a/package/qt5/qt5base/qt5base.hash b/package/qt5/qt5base/qt5base.hash\nindex 14e0c9b602..def257b2b4 100644\n--- a/package/qt5/qt5base/qt5base.hash\n+++ b/package/qt5/qt5base/qt5base.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  2d6ede564444b617a7fe6e8fa65b3d81df3a3308641cf7c35aef6aa471a21269  qt5base-2b9835f5c9bcfe3105b60a8dd33c1db7d8611378-git4.tar.gz\n+sha256  3b4bfbd1844aba3b753146ca7d008177010ebb819fcb224c6c0afd8496d8abff  qt5base-bebdfd54917e25d1c100e6bd9f5dd53c2e645fd8-git4.tar.gz\n \n # Hashes for license files:\n sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSE.GPL2\ndiff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk\nindex 3ad2bdfc04..df3b4d08cd 100644\n--- a/package/qt5/qt5base/qt5base.mk\n+++ b/package/qt5/qt5base/qt5base.mk\n@@ -4,13 +4,13 @@\n #\n ################################################################################\n \n-QT5BASE_VERSION = 2b9835f5c9bcfe3105b60a8dd33c1db7d8611378\n+QT5BASE_VERSION = bebdfd54917e25d1c100e6bd9f5dd53c2e645fd8\n QT5BASE_SITE = $(QT5_SITE)/qtbase\n QT5BASE_SITE_METHOD = git\n QT5BASE_CPE_ID_VENDOR = qt\n QT5BASE_CPE_ID_PRODUCT = qt\n # Closest upstream version\n-QT5BASE_CPE_ID_VERSION = 5.15.14\n+QT5BASE_CPE_ID_VERSION = 5.15.18\n \n QT5BASE_DEPENDENCIES = host-pkgconf pcre2 zlib\n QT5BASE_INSTALL_STAGING = YES\ndiff --git a/package/qt5/qt5charts/qt5charts.hash b/package/qt5/qt5charts/qt5charts.hash\nindex 009edbd240..468b77b3ab 100644\n--- a/package/qt5/qt5charts/qt5charts.hash\n+++ b/package/qt5/qt5charts/qt5charts.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  c66fec01fedf753bee860aedc365730367026c28a2418a6819b0b2550336293c  qtcharts-7315c48bcec88014e78165bbda54abfcd557e0af.tar.bz2\n+sha256  e7421098d79b6c030392e6679a5a91c594bd2075e545555a67d05665c79ecb44  qtcharts-1093fb53ced126100d14af30a8adffd29b7ef855.tar.bz2\n \n # Hashes for license files:\n sha256  8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903  LICENSE.GPL3\ndiff --git a/package/qt5/qt5charts/qt5charts.mk b/package/qt5/qt5charts/qt5charts.mk\nindex 25da7f8ed7..348f3643d4 100644\n--- a/package/qt5/qt5charts/qt5charts.mk\n+++ b/package/qt5/qt5charts/qt5charts.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5CHARTS_VERSION = 7315c48bcec88014e78165bbda54abfcd557e0af\n+QT5CHARTS_VERSION = 1093fb53ced126100d14af30a8adffd29b7ef855\n QT5CHARTS_SITE = $(QT5_SITE)/qtcharts/-/archive/$(QT5CHARTS_VERSION)\n QT5CHARTS_SOURCE = qtcharts-$(QT5CHARTS_VERSION).tar.bz2\n QT5CHARTS_INSTALL_STAGING = YES\ndiff --git a/package/qt5/qt5connectivity/qt5connectivity.hash b/package/qt5/qt5connectivity/qt5connectivity.hash\nindex 8185a272ea..6dc9eda4bb 100644\n--- a/package/qt5/qt5connectivity/qt5connectivity.hash\n+++ b/package/qt5/qt5connectivity/qt5connectivity.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  3f7ed280d234a50d21937aecaf5494bbd570fb80e71f49598e082cefe81d41fe  qtconnectivity-99f30db37c63447c59d5fac15bc8feb832a7fd04.tar.bz2\n+sha256  321b3a484e4c488156dd018ee38a5b869cc0ee1fcd676a59b4e026eebc5021d8  qtconnectivity-f1be05c8efeb65b77a8bfd21763ab55bb5c04906.tar.bz2\n \n # Hashes for license files:\n sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSE.GPL2\ndiff --git a/package/qt5/qt5connectivity/qt5connectivity.mk b/package/qt5/qt5connectivity/qt5connectivity.mk\nindex e1592e80bb..8af36ad90c 100644\n--- a/package/qt5/qt5connectivity/qt5connectivity.mk\n+++ b/package/qt5/qt5connectivity/qt5connectivity.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5CONNECTIVITY_VERSION = 99f30db37c63447c59d5fac15bc8feb832a7fd04\n+QT5CONNECTIVITY_VERSION = f1be05c8efeb65b77a8bfd21763ab55bb5c04906\n QT5CONNECTIVITY_SITE = $(QT5_SITE)/qtconnectivity/-/archive/$(QT5CONNECTIVITY_VERSION)\n QT5CONNECTIVITY_SOURCE = qtconnectivity-$(QT5CONNECTIVITY_VERSION).tar.bz2\n QT5CONNECTIVITY_INSTALL_STAGING = YES\ndiff --git a/package/qt5/qt5declarative/qt5declarative.hash b/package/qt5/qt5declarative/qt5declarative.hash\nindex 3a5fc44356..e8ed01341b 100644\n--- a/package/qt5/qt5declarative/qt5declarative.hash\n+++ b/package/qt5/qt5declarative/qt5declarative.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  9a84a707411c0daa6b3292ebe264ac7e979639d9f6d5fd45bb18799b42ca0c33  qtdeclarative-50c8def854806485d66aabcf6918e8b987032e55.tar.bz2\n+sha256  fe9a13d56162c09d37bdf6677074b7f8dd3cf529b19c255327cef0bd37ff710b  qtdeclarative-f78bc0b2c6884fd730bf34a931870d67936cf01d.tar.bz2\n \n # Hashes for license files:\n sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSE.GPL2\ndiff --git a/package/qt5/qt5declarative/qt5declarative.mk b/package/qt5/qt5declarative/qt5declarative.mk\nindex 0dbb69f2e0..7f274d6653 100644\n--- a/package/qt5/qt5declarative/qt5declarative.mk\n+++ b/package/qt5/qt5declarative/qt5declarative.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5DECLARATIVE_VERSION = 50c8def854806485d66aabcf6918e8b987032e55\n+QT5DECLARATIVE_VERSION = f78bc0b2c6884fd730bf34a931870d67936cf01d\n QT5DECLARATIVE_SITE = $(QT5_SITE)/qtdeclarative/-/archive/$(QT5DECLARATIVE_VERSION)\n QT5DECLARATIVE_SOURCE = qtdeclarative-$(QT5DECLARATIVE_VERSION).tar.bz2\n QT5DECLARATIVE_INSTALL_STAGING = YES\ndiff --git a/package/qt5/qt5doc/qt5doc.hash b/package/qt5/qt5doc/qt5doc.hash\nindex 8139bfddc9..9d2c8c1cad 100644\n--- a/package/qt5/qt5doc/qt5doc.hash\n+++ b/package/qt5/qt5doc/qt5doc.hash\n@@ -1,3 +1,3 @@\n # Locally computed\n-sha256  2fd5e9d12067e67c1e1cf77862e6e351ce7300a9eb9b3f089627114f40d45165  qtdoc-bc4503b8b70f4cd435d6e64a9e6c623ca44b9fcd.tar.bz2\n+sha256  f70449c1c55f18993733d0aa9af9c84a3ed43215be88316e6f4b87dc248944a4  qtdoc-ddb2afda6f713259fc8d95fb22a1c96bb448c36a.tar.bz2\n sha256  ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d  LICENSE.FDL\ndiff --git a/package/qt5/qt5doc/qt5doc.mk b/package/qt5/qt5doc/qt5doc.mk\nindex 597bc965ad..8de814657b 100644\n--- a/package/qt5/qt5doc/qt5doc.mk\n+++ b/package/qt5/qt5doc/qt5doc.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5DOC_VERSION = bc4503b8b70f4cd435d6e64a9e6c623ca44b9fcd\n+QT5DOC_VERSION = ddb2afda6f713259fc8d95fb22a1c96bb448c36a\n QT5DOC_SITE = $(QT5_SITE)/qtdoc/-/archive/$(QT5DOC_VERSION)\n QT5DOC_SOURCE = qtdoc-$(QT5DOC_VERSION).tar.bz2\n QT5DOC_DEPENDENCIES = qt5declarative\ndiff --git a/package/qt5/qt5graphicaleffects/qt5graphicaleffects.hash b/package/qt5/qt5graphicaleffects/qt5graphicaleffects.hash\nindex 900edaee05..a6d799f32b 100644\n--- a/package/qt5/qt5graphicaleffects/qt5graphicaleffects.hash\n+++ b/package/qt5/qt5graphicaleffects/qt5graphicaleffects.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  dca1697c8dd21e53999df67f0ac59c1c26531ef3a693bfc066408047ea511e7a  qtgraphicaleffects-2c39e673d6c15a84dcc7882d3772fa04cc79f9ed.tar.bz2\n+sha256  9e0809574fc3fae648d505528cfdfa681edb6b41e29a69e2e7e633fb48621f28  qtgraphicaleffects-dfb2e7b2c98a9b7185c300d0b92b4048f5d89ba5.tar.bz2\n \n # Hashes for license files:\n sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSE.GPL2\ndiff --git a/package/qt5/qt5graphicaleffects/qt5graphicaleffects.mk b/package/qt5/qt5graphicaleffects/qt5graphicaleffects.mk\nindex 341f4a70ac..8aae5ccae8 100644\n--- a/package/qt5/qt5graphicaleffects/qt5graphicaleffects.mk\n+++ b/package/qt5/qt5graphicaleffects/qt5graphicaleffects.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5GRAPHICALEFFECTS_VERSION = 2c39e673d6c15a84dcc7882d3772fa04cc79f9ed\n+QT5GRAPHICALEFFECTS_VERSION = dfb2e7b2c98a9b7185c300d0b92b4048f5d89ba5\n QT5GRAPHICALEFFECTS_SITE = $(QT5_SITE)/qtgraphicaleffects/-/archive/$(QT5GRAPHICALEFFECTS_VERSION)\n QT5GRAPHICALEFFECTS_SOURCE = qtgraphicaleffects-$(QT5GRAPHICALEFFECTS_VERSION).tar.bz2\n QT5GRAPHICALEFFECTS_DEPENDENCIES = qt5declarative\ndiff --git a/package/qt5/qt5imageformats/qt5imageformats.hash b/package/qt5/qt5imageformats/qt5imageformats.hash\nindex 5da2563187..cb65976822 100644\n--- a/package/qt5/qt5imageformats/qt5imageformats.hash\n+++ b/package/qt5/qt5imageformats/qt5imageformats.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  d4805fadfd33243c4a1c9f81083f75b5162e25b92a39a56d87558ba03a2fb8a3  qtimageformats-4e4f5fc6bdac96f5281a3ebeb0fee78df7b1a498.tar.bz2\n+sha256  6c49db8c44cda8559692427ec5c32429efe406cc66c88afdc70fdd23993ae511  qtimageformats-c91e4c63c1eaf1e23806d9df10e3d5a9ae353c1d.tar.bz2\n \n # Hashes for license files:\n sha256  edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253  LICENSE.GPLv2\ndiff --git a/package/qt5/qt5imageformats/qt5imageformats.mk b/package/qt5/qt5imageformats/qt5imageformats.mk\nindex 1f51e002e9..4e83eb9cb3 100644\n--- a/package/qt5/qt5imageformats/qt5imageformats.mk\n+++ b/package/qt5/qt5imageformats/qt5imageformats.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5IMAGEFORMATS_VERSION = 4e4f5fc6bdac96f5281a3ebeb0fee78df7b1a498\n+QT5IMAGEFORMATS_VERSION = c91e4c63c1eaf1e23806d9df10e3d5a9ae353c1d\n QT5IMAGEFORMATS_SITE = $(QT5_SITE)/qtimageformats/-/archive/$(QT5IMAGEFORMATS_VERSION)\n QT5IMAGEFORMATS_SOURCE = qtimageformats-$(QT5IMAGEFORMATS_VERSION).tar.bz2\n QT5IMAGEFORMATS_INSTALL_STAGING = YES\ndiff --git a/package/qt5/qt5location/qt5location.hash b/package/qt5/qt5location/qt5location.hash\nindex 0b44f09cbb..ee65c7fa84 100644\n--- a/package/qt5/qt5location/qt5location.hash\n+++ b/package/qt5/qt5location/qt5location.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  fe3b037f9291352d11714a4c1101299d83e561c11b867d77273fb3f5c44384a3  qt5location-3beb9c810611337fde61d89aa981e9f177a9ede9-git4.tar.gz\n+sha256  40dbee28e205482d8fb2345cde648d38c64910847463ccb05065e2fe7cc373a2  qt5location-ba48a8b5cedd157d972c08d371ac2581db166bf7-git4.tar.gz\n \n # Hashes for license files:\n sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSE.GPL2\ndiff --git a/package/qt5/qt5location/qt5location.mk b/package/qt5/qt5location/qt5location.mk\nindex 01bb4f747b..451dd953ed 100644\n--- a/package/qt5/qt5location/qt5location.mk\n+++ b/package/qt5/qt5location/qt5location.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5LOCATION_VERSION = 3beb9c810611337fde61d89aa981e9f177a9ede9\n+QT5LOCATION_VERSION = ba48a8b5cedd157d972c08d371ac2581db166bf7\n QT5LOCATION_SITE = $(QT5_SITE)/qtlocation\n QT5LOCATION_SITE_METHOD = git\n QT5LOCATION_GIT_SUBMODULES = YES\ndiff --git a/package/qt5/qt5lottie/qt5lottie.hash b/package/qt5/qt5lottie/qt5lottie.hash\nindex 304b92de86..a81fe5ea6e 100644\n--- a/package/qt5/qt5lottie/qt5lottie.hash\n+++ b/package/qt5/qt5lottie/qt5lottie.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  514e4a8e334e69eb345e9ae7186f6254854077ebf5ca30f0ae216df3ea78bacd  qtlottie-b8c1fa109dce6f8bff9f55738d2f1e21ff677796.tar.bz2\n+sha256  d872dfeb3b1b812165506e7e7cef5039b2fd441187f0ca30e6a93a968e9392a7  qtlottie-27ed5a3c95a0810a96fac2a8661ea94d8ea3c44e.tar.bz2\n \n # Hashes for license files:\n sha256  8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903  LICENSE.GPL3\ndiff --git a/package/qt5/qt5lottie/qt5lottie.mk b/package/qt5/qt5lottie/qt5lottie.mk\nindex a364f2e10a..7b3bfe6ffd 100644\n--- a/package/qt5/qt5lottie/qt5lottie.mk\n+++ b/package/qt5/qt5lottie/qt5lottie.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5LOTTIE_VERSION = b8c1fa109dce6f8bff9f55738d2f1e21ff677796\n+QT5LOTTIE_VERSION = 27ed5a3c95a0810a96fac2a8661ea94d8ea3c44e\n QT5LOTTIE_SITE = $(QT5_SITE)/qtlottie/-/archive/$(QT5LOTTIE_VERSION)\n QT5LOTTIE_SOURCE = qtlottie-$(QT5LOTTIE_VERSION).tar.bz2\n QT5LOTTIE_DEPENDENCIES = qt5declarative\ndiff --git a/package/qt5/qt5multimedia/qt5multimedia.hash b/package/qt5/qt5multimedia/qt5multimedia.hash\nindex d6aca5c74d..1a4f889de6 100644\n--- a/package/qt5/qt5multimedia/qt5multimedia.hash\n+++ b/package/qt5/qt5multimedia/qt5multimedia.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  62d9ab403bae05d3ca1335324143c371a33089ceed6f4124be74a1518b85906e  qtmultimedia-53069c9c6eb52b744333812f42aed36c3db6e752.tar.bz2\n+sha256  a160196093ee0bcd30383104da9143f0ed09e2074e3025a2b1d987946b2d1a53  qtmultimedia-ff83d119c75cd8406f73ccc08958fe36747e7390.tar.bz2\n \n # Hashes for license files:\n sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSE.GPL2\ndiff --git a/package/qt5/qt5multimedia/qt5multimedia.mk b/package/qt5/qt5multimedia/qt5multimedia.mk\nindex 07314b3de3..c18561d1aa 100644\n--- a/package/qt5/qt5multimedia/qt5multimedia.mk\n+++ b/package/qt5/qt5multimedia/qt5multimedia.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5MULTIMEDIA_VERSION = 53069c9c6eb52b744333812f42aed36c3db6e752\n+QT5MULTIMEDIA_VERSION = ff83d119c75cd8406f73ccc08958fe36747e7390\n QT5MULTIMEDIA_SITE = $(QT5_SITE)/qtmultimedia/-/archive/$(QT5MULTIMEDIA_VERSION)\n QT5MULTIMEDIA_SOURCE = qtmultimedia-$(QT5MULTIMEDIA_VERSION).tar.bz2\n QT5MULTIMEDIA_INSTALL_STAGING = YES\ndiff --git a/package/qt5/qt5quickcontrols/qt5quickcontrols.hash b/package/qt5/qt5quickcontrols/qt5quickcontrols.hash\nindex fda3198571..44a68b4d56 100644\n--- a/package/qt5/qt5quickcontrols/qt5quickcontrols.hash\n+++ b/package/qt5/qt5quickcontrols/qt5quickcontrols.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  0f2244f4425b8886bbeef77c92b807ef4749ace18d31e02ca88183e5af088c18  qtquickcontrols-9325659ec390eda5b160736a926ba58ccb445cce.tar.bz2\n+sha256  11dd2a55a9c877f8766cc0dab04908cf3acd6fa933895c0ed64828be79babb9c  qtquickcontrols-0c3c18bf8bdac1ef1afdb8aade903edb5c2bc041.tar.bz2\n \n # Hashes for license files:\n sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSE.GPL2\ndiff --git a/package/qt5/qt5quickcontrols/qt5quickcontrols.mk b/package/qt5/qt5quickcontrols/qt5quickcontrols.mk\nindex ab7b49f0b8..f0949ca253 100644\n--- a/package/qt5/qt5quickcontrols/qt5quickcontrols.mk\n+++ b/package/qt5/qt5quickcontrols/qt5quickcontrols.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5QUICKCONTROLS_VERSION = 9325659ec390eda5b160736a926ba58ccb445cce\n+QT5QUICKCONTROLS_VERSION = 0c3c18bf8bdac1ef1afdb8aade903edb5c2bc041\n QT5QUICKCONTROLS_SITE = $(QT5_SITE)/qtquickcontrols/-/archive/$(QT5QUICKCONTROLS_VERSION)\n QT5QUICKCONTROLS_SOURCE = qtquickcontrols-$(QT5QUICKCONTROLS_VERSION).tar.bz2\n QT5QUICKCONTROLS_DEPENDENCIES = qt5declarative\ndiff --git a/package/qt5/qt5quickcontrols2/qt5quickcontrols2.hash b/package/qt5/qt5quickcontrols2/qt5quickcontrols2.hash\nindex 9c401c00e3..2102a7320c 100644\n--- a/package/qt5/qt5quickcontrols2/qt5quickcontrols2.hash\n+++ b/package/qt5/qt5quickcontrols2/qt5quickcontrols2.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  90fb0d1b578af622b98a291f7bc1069695c180040b18e9cd8423fe86e325c290  qtquickcontrols2-69fea340f8f4c483a9b2889e4e24a4b1b52ebc87.tar.bz2\n+sha256  3922c0f1de88aca778a0835e4f9928f13acecebec4abca2cb47fbdebc4b69de9  qtquickcontrols2-e464888c53a641ee44a34ff2350cfb156c8ed59f.tar.bz2\n \n # Hashes for license files:\n sha256  d2cfc059acb4abd8e513cd0a73cd8489f34cbafa7bc34d5d31fb3210821cf8ca  LICENSE.GPLv3\ndiff --git a/package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk b/package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk\nindex 34c27b7cb7..48a56d399f 100644\n--- a/package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk\n+++ b/package/qt5/qt5quickcontrols2/qt5quickcontrols2.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5QUICKCONTROLS2_VERSION = 69fea340f8f4c483a9b2889e4e24a4b1b52ebc87\n+QT5QUICKCONTROLS2_VERSION = e464888c53a641ee44a34ff2350cfb156c8ed59f\n QT5QUICKCONTROLS2_SITE = $(QT5_SITE)/qtquickcontrols2/-/archive/$(QT5QUICKCONTROLS2_VERSION)\n QT5QUICKCONTROLS2_SOURCE = qtquickcontrols2-$(QT5QUICKCONTROLS2_VERSION).tar.bz2\n QT5QUICKCONTROLS2_DEPENDENCIES = qt5declarative\ndiff --git a/package/qt5/qt5quicktimeline/qt5quicktimeline.hash b/package/qt5/qt5quicktimeline/qt5quicktimeline.hash\nindex 602127d769..31405675d6 100644\n--- a/package/qt5/qt5quicktimeline/qt5quicktimeline.hash\n+++ b/package/qt5/qt5quicktimeline/qt5quicktimeline.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  72b1e95f7d4235b03c0d3ffcbc67ab3e7fbe4c96a4d9631cb8c9024a2b9d4f50  qtquicktimeline-bf6c73064c82b07fcb1f7e72c263b249e137e224.tar.bz2\n+sha256  dbd5d9acafc73825c8f6565f2933642c3c786765867badeeced72bacde2ed9cf  qtquicktimeline-43130f2681b76a8d743a04704465b716b6b2faee.tar.bz2\n \n # Hashes for license files:\n sha256  8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903  LICENSE.GPL3\ndiff --git a/package/qt5/qt5quicktimeline/qt5quicktimeline.mk b/package/qt5/qt5quicktimeline/qt5quicktimeline.mk\nindex 4307c9b123..7e4efc318e 100644\n--- a/package/qt5/qt5quicktimeline/qt5quicktimeline.mk\n+++ b/package/qt5/qt5quicktimeline/qt5quicktimeline.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5QUICKTIMELINE_VERSION = bf6c73064c82b07fcb1f7e72c263b249e137e224\n+QT5QUICKTIMELINE_VERSION = 43130f2681b76a8d743a04704465b716b6b2faee\n QT5QUICKTIMELINE_SITE = $(QT5_SITE)/qtquicktimeline/-/archive/$(QT5QUICKTIMELINE_VERSION)\n QT5QUICKTIMELINE_SOURCE = qtquicktimeline-$(QT5QUICKTIMELINE_VERSION).tar.bz2\n QT5QUICKTIMELINE_DEPENDENCIES = qt5declarative\ndiff --git a/package/qt5/qt5remoteobjects/qt5remoteobjects.hash b/package/qt5/qt5remoteobjects/qt5remoteobjects.hash\nindex 943ecb268e..db164e60db 100644\n--- a/package/qt5/qt5remoteobjects/qt5remoteobjects.hash\n+++ b/package/qt5/qt5remoteobjects/qt5remoteobjects.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  347c89c24480b1f20f12d7415706aba6536ff7277862d3450e34c40cc711016e  qtremoteobjects-3873bdc809ca8d58d91968cb0de34da26646bc79.tar.bz2\n+sha256  222c2754d0921dceff0697e95cc0d117d69957ce2b59605ecaa62b172bd259fa  qtremoteobjects-b2740a7c7f5b6ac810240404a947ca5cff9de5f7.tar.bz2\n \n # Hashes for license files:\n sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSE.GPL2\ndiff --git a/package/qt5/qt5remoteobjects/qt5remoteobjects.mk b/package/qt5/qt5remoteobjects/qt5remoteobjects.mk\nindex 8848af3c81..ba0cf6f4b3 100644\n--- a/package/qt5/qt5remoteobjects/qt5remoteobjects.mk\n+++ b/package/qt5/qt5remoteobjects/qt5remoteobjects.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5REMOTEOBJECTS_VERSION = 3873bdc809ca8d58d91968cb0de34da26646bc79\n+QT5REMOTEOBJECTS_VERSION = b2740a7c7f5b6ac810240404a947ca5cff9de5f7\n QT5REMOTEOBJECTS_SITE = $(QT5_SITE)/qtremoteobjects/-/archive/$(QT5REMOTEOBJECTS_VERSION)\n QT5REMOTEOBJECTS_SOURCE = qtremoteobjects-$(QT5REMOTEOBJECTS_VERSION).tar.bz2\n QT5REMOTEOBJECTS_DEPENDENCIES = qt5base\ndiff --git a/package/qt5/qt5script/qt5script.hash b/package/qt5/qt5script/qt5script.hash\nindex 655b772595..f98809e809 100644\n--- a/package/qt5/qt5script/qt5script.hash\n+++ b/package/qt5/qt5script/qt5script.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  6462533cb1749d76c890cb3c325524835a6ee7f12682d425a2cf19628806b284  qtscript-572daa83e990ce88cca27909470c5404657ec9de.tar.bz2\n+sha256  9e4d59ccf83d9479a4fc49115044ce93e1e61a890adcbe715d3296f7a498a488  qtscript-bcd7cae6215df8f1c8b45a338f3327da51edeaff.tar.bz2\n \n # Hashes for license files:\n sha256  8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903  LICENSE.GPL3\ndiff --git a/package/qt5/qt5script/qt5script.mk b/package/qt5/qt5script/qt5script.mk\nindex 4c8a7e1676..64f010b8ec 100644\n--- a/package/qt5/qt5script/qt5script.mk\n+++ b/package/qt5/qt5script/qt5script.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5SCRIPT_VERSION = 572daa83e990ce88cca27909470c5404657ec9de\n+QT5SCRIPT_VERSION = bcd7cae6215df8f1c8b45a338f3327da51edeaff\n QT5SCRIPT_SITE = $(QT5_SITE)/qtscript/-/archive/$(QT5SCRIPT_VERSION)\n QT5SCRIPT_SOURCE = qtscript-$(QT5SCRIPT_VERSION).tar.bz2\n QT5SCRIPT_INSTALL_STAGING = YES\ndiff --git a/package/qt5/qt5scxml/qt5scxml.hash b/package/qt5/qt5scxml/qt5scxml.hash\nindex 60e64feb88..6681328e4b 100644\n--- a/package/qt5/qt5scxml/qt5scxml.hash\n+++ b/package/qt5/qt5scxml/qt5scxml.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  92191932423bdbb11e3005bf4c8bc43faa623d7b16558ecf884f20564ad8dbff  qtscxml-6834b183966d08d9f061642ee7ea2d482cbbf073.tar.bz2\n+sha256  867db30640540f08506446191a7a963d17055778e6c2f570a9e873386571923b  qtscxml-57491f554bc53bd020978b5744437b7ac7e56a27.tar.bz2\n \n # Hashes for license files:\n sha256  0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652  LICENSE.GPL3-EXCEPT\ndiff --git a/package/qt5/qt5scxml/qt5scxml.mk b/package/qt5/qt5scxml/qt5scxml.mk\nindex f92bfdf645..2e5a12a6be 100644\n--- a/package/qt5/qt5scxml/qt5scxml.mk\n+++ b/package/qt5/qt5scxml/qt5scxml.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5SCXML_VERSION = 6834b183966d08d9f061642ee7ea2d482cbbf073\n+QT5SCXML_VERSION = 57491f554bc53bd020978b5744437b7ac7e56a27\n QT5SCXML_SITE = $(QT5_SITE)/qtscxml/-/archive/$(QT5SCXML_VERSION)\n QT5SCXML_SOURCE = qtscxml-$(QT5SCXML_VERSION).tar.bz2\n QT5SCXML_DEPENDENCIES = qt5declarative\ndiff --git a/package/qt5/qt5sensors/qt5sensors.hash b/package/qt5/qt5sensors/qt5sensors.hash\nindex 2955e651e7..6ba9d7ae07 100644\n--- a/package/qt5/qt5sensors/qt5sensors.hash\n+++ b/package/qt5/qt5sensors/qt5sensors.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  d01ee718ae1c00329a6b3cdadb190a2159e7d1e1e76d7345815cb17a42d48113  qtsensors-bf0b718cd0b6c7823e9d2037d3bdece44185f444.tar.bz2\n+sha256  a9c64bbec1eb0275fd8a65aad3266d7699a8456e95adfcab75bffcaa2eb0d0a7  qtsensors-50a61b360877e7c1300df76b5aabf8d75554a398.tar.bz2\n \n # Hashes for license files:\n sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSE.GPL2\ndiff --git a/package/qt5/qt5sensors/qt5sensors.mk b/package/qt5/qt5sensors/qt5sensors.mk\nindex b99440e21e..cddfbaf588 100644\n--- a/package/qt5/qt5sensors/qt5sensors.mk\n+++ b/package/qt5/qt5sensors/qt5sensors.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5SENSORS_VERSION = bf0b718cd0b6c7823e9d2037d3bdece44185f444\n+QT5SENSORS_VERSION = 50a61b360877e7c1300df76b5aabf8d75554a398\n QT5SENSORS_SITE = $(QT5_SITE)/qtsensors/-/archive/$(QT5SENSORS_VERSION)\n QT5SENSORS_SOURCE = qtsensors-$(QT5SENSORS_VERSION).tar.bz2\n QT5SENSORS_INSTALL_STAGING = YES\ndiff --git a/package/qt5/qt5serialbus/qt5serialbus.hash b/package/qt5/qt5serialbus/qt5serialbus.hash\nindex 64a518734c..7ec310cd81 100644\n--- a/package/qt5/qt5serialbus/qt5serialbus.hash\n+++ b/package/qt5/qt5serialbus/qt5serialbus.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  45bf8a97ef2f2e85c023f4e7ce761b64f98ac6a9c3af2a8f232f2cc778762736  qtserialbus-616bc5b962cdcacb1c1ba985d7236392e9cadb8c.tar.bz2\n+sha256  f7adf196dca88859b1d2962cd37c638b4d7f7ee261849cc43bea88db86569cef  qtserialbus-c23069351ec31563c9ea9fcdce42ccdba95ea518.tar.bz2\n \n # Hashes for license files:\n sha256  edfe70e99be2a7c109d860b19204609e582720b211c50caedac729da372a1253  LICENSE.GPLv2\ndiff --git a/package/qt5/qt5serialbus/qt5serialbus.mk b/package/qt5/qt5serialbus/qt5serialbus.mk\nindex ca22a0ca1c..87a3ef639e 100644\n--- a/package/qt5/qt5serialbus/qt5serialbus.mk\n+++ b/package/qt5/qt5serialbus/qt5serialbus.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5SERIALBUS_VERSION = 616bc5b962cdcacb1c1ba985d7236392e9cadb8c\n+QT5SERIALBUS_VERSION = c23069351ec31563c9ea9fcdce42ccdba95ea518\n QT5SERIALBUS_SITE = $(QT5_SITE)/qtserialbus/-/archive/$(QT5SERIALBUS_VERSION)\n QT5SERIALBUS_SOURCE = qtserialbus-$(QT5SERIALBUS_VERSION).tar.bz2\n QT5SERIALBUS_DEPENDENCIES = qt5serialport\ndiff --git a/package/qt5/qt5serialport/qt5serialport.hash b/package/qt5/qt5serialport/qt5serialport.hash\nindex b18d0d05b4..b867abd4af 100644\n--- a/package/qt5/qt5serialport/qt5serialport.hash\n+++ b/package/qt5/qt5serialport/qt5serialport.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  c8eea27d6fc031088fc84cf08cdfffda3b72b6fdd279144a0de7a1bcb9f19d91  qtserialport-34c19c6441cd440dc65b59ae7670eadf099d51f8.tar.bz2\n+sha256  e444f67762ca7641e7e9288c6f7a7f877a149bff3c84abc07bf06ef3bf55e173  qtserialport-b64a7eeda9b6a65b5ed01b1b40b07177f0aa4c0f.tar.bz2\n \n # Hashes for license files:\n sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSE.GPL2\ndiff --git a/package/qt5/qt5serialport/qt5serialport.mk b/package/qt5/qt5serialport/qt5serialport.mk\nindex 592de6f0a9..729ac10be6 100644\n--- a/package/qt5/qt5serialport/qt5serialport.mk\n+++ b/package/qt5/qt5serialport/qt5serialport.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5SERIALPORT_VERSION = 34c19c6441cd440dc65b59ae7670eadf099d51f8\n+QT5SERIALPORT_VERSION = b64a7eeda9b6a65b5ed01b1b40b07177f0aa4c0f\n QT5SERIALPORT_SITE = $(QT5_SITE)/qtserialport/-/archive/$(QT5SERIALPORT_VERSION)\n QT5SERIALPORT_SOURCE = qtserialport-$(QT5SERIALPORT_VERSION).tar.bz2\n QT5SERIALPORT_INSTALL_STAGING = YES\ndiff --git a/package/qt5/qt5speech/qt5speech.hash b/package/qt5/qt5speech/qt5speech.hash\nindex a222b16292..04001e6256 100644\n--- a/package/qt5/qt5speech/qt5speech.hash\n+++ b/package/qt5/qt5speech/qt5speech.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  8414b8e9cedc8bdd7bc70f5a1c5b83dda2147fba22c7c6fa6498ea4c1451d6df  qtspeech-8ad0f08ad7e2a8d27dc5e69806812c6a3f298946.tar.bz2\n+sha256  460f33a11110e0a730543799b7946ed92d286b1f6dc6f4681575434a5a71fd86  qtspeech-aa2376f9b1302222edcd16b4641bbd7004318c00.tar.bz2\n \n # Hashes for license files:\n sha256  6c3f3c31b93985f1b93bfbb35fb609d37281697d0efc220c9f91cf4b59eaabde  LICENSE.GPLv2\ndiff --git a/package/qt5/qt5speech/qt5speech.mk b/package/qt5/qt5speech/qt5speech.mk\nindex 22f9d8c9d3..e5336e64d0 100644\n--- a/package/qt5/qt5speech/qt5speech.mk\n+++ b/package/qt5/qt5speech/qt5speech.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5SPEECH_VERSION = 8ad0f08ad7e2a8d27dc5e69806812c6a3f298946\n+QT5SPEECH_VERSION = aa2376f9b1302222edcd16b4641bbd7004318c00\n QT5SPEECH_SITE = $(QT5_SITE)/qtspeech/-/archive/$(QT5SPEECH_VERSION)\n QT5SPEECH_SOURCE = qtspeech-$(QT5SPEECH_VERSION).tar.bz2\n QT5SPEECH_INSTALL_STAGING = YES\ndiff --git a/package/qt5/qt5svg/qt5svg.hash b/package/qt5/qt5svg/qt5svg.hash\nindex 654016d94c..01c8c828ca 100644\n--- a/package/qt5/qt5svg/qt5svg.hash\n+++ b/package/qt5/qt5svg/qt5svg.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  8e4d0fbfdd8bd33ec23036af932b12f838974ac322a5d53f487190477b2be286  qtsvg-690128b2b8fb6d6fbdc43b2b2633f0f1de3f0638.tar.bz2\n+sha256  3df1f47c5f9ac9af9cc505b8aca71b40cd142d7ce79bac3570f8456bf6ba3e38  qtsvg-b74f7291f343dcbcb487b020868f042d8fe83098.tar.bz2\n \n # Hashes for license files:\n sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSE.GPL2\ndiff --git a/package/qt5/qt5svg/qt5svg.mk b/package/qt5/qt5svg/qt5svg.mk\nindex 1221dedcc9..34e74cb629 100644\n--- a/package/qt5/qt5svg/qt5svg.mk\n+++ b/package/qt5/qt5svg/qt5svg.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5SVG_VERSION = 690128b2b8fb6d6fbdc43b2b2633f0f1de3f0638\n+QT5SVG_VERSION = b74f7291f343dcbcb487b020868f042d8fe83098\n QT5SVG_SITE = $(QT5_SITE)/qtsvg/-/archive/$(QT5SVG_VERSION)\n QT5SVG_SOURCE = qtsvg-$(QT5SVG_VERSION).tar.bz2\n QT5SVG_INSTALL_STAGING = YES\ndiff --git a/package/qt5/qt5tools/qt5tools.hash b/package/qt5/qt5tools/qt5tools.hash\nindex c19eb41e5b..d8e684b8d5 100644\n--- a/package/qt5/qt5tools/qt5tools.hash\n+++ b/package/qt5/qt5tools/qt5tools.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  46bd221011a6b4b1b9da6ce13099e10d09548af325a8b2082b8bc2f692a0d95d  qttools-f82ed367d1b80b69d738cfcde534b75854a45476.tar.bz2\n+sha256  f53f515c1b00ded46ca7437bbdb0a0db4cab86d7ff5bc1dfa98b6d842a16845d  qttools-fa40a2d3373b89be0cd0a43fe0c1d047e3d34058.tar.bz2\n \n # Hashes for license files:\n sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSE.GPL2\ndiff --git a/package/qt5/qt5tools/qt5tools.mk b/package/qt5/qt5tools/qt5tools.mk\nindex c03d5d6e38..26742d1566 100644\n--- a/package/qt5/qt5tools/qt5tools.mk\n+++ b/package/qt5/qt5tools/qt5tools.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5TOOLS_VERSION = f82ed367d1b80b69d738cfcde534b75854a45476\n+QT5TOOLS_VERSION = fa40a2d3373b89be0cd0a43fe0c1d047e3d34058\n QT5TOOLS_SITE = $(QT5_SITE)/qttools/-/archive/$(QT5TOOLS_VERSION)\n QT5TOOLS_SOURCE = qttools-$(QT5TOOLS_VERSION).tar.bz2\n \ndiff --git a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash\nindex d091df1b94..e748f328d6 100644\n--- a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash\n+++ b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  264d7fb33bc7cf1e9a387c7220c997f96e64a2659738a419d558e7c518718bd0  qtvirtualkeyboard-7389450a5de5fdd210f1459abcf73621ec0496bd.tar.bz2\n+sha256  356f2edd84b626191b15e76d71a484ebe9daf64d8156554ecde09403971539d7  qtvirtualkeyboard-859d2a6ee329cc08414410b2ef8c0af77a6853d3.tar.bz2\n \n # Hashes for license files:\n sha256  8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903  LICENSE.GPL3\ndiff --git a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk\nindex b4673f7fd4..a2e86e6499 100644\n--- a/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk\n+++ b/package/qt5/qt5virtualkeyboard/qt5virtualkeyboard.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5VIRTUALKEYBOARD_VERSION = 7389450a5de5fdd210f1459abcf73621ec0496bd\n+QT5VIRTUALKEYBOARD_VERSION = 859d2a6ee329cc08414410b2ef8c0af77a6853d3\n QT5VIRTUALKEYBOARD_SITE = $(QT5_SITE)/qtvirtualkeyboard/-/archive/$(QT5VIRTUALKEYBOARD_VERSION)\n QT5VIRTUALKEYBOARD_SOURCE = qtvirtualkeyboard-$(QT5VIRTUALKEYBOARD_VERSION).tar.bz2\n QT5VIRTUALKEYBOARD_DEPENDENCIES = qt5declarative qt5svg\ndiff --git a/package/qt5/qt5wayland/qt5wayland.hash b/package/qt5/qt5wayland/qt5wayland.hash\nindex 3e1aebb5de..e1fb1b3b18 100644\n--- a/package/qt5/qt5wayland/qt5wayland.hash\n+++ b/package/qt5/qt5wayland/qt5wayland.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  49fa530747c14e6dbe17f6c683e3292340db8bbaf4f17f7699467d3004b45b5b  qtwayland-11e099c6b7fbec0e198bffaf8016676ef430cfba.tar.bz2\n+sha256  81a250da038d7270c06d66463c6dbab665e1eb7bad84b1f9796f5d23f39faf0b  qtwayland-df49b9f3badce793a0a9ea850cf1a02cc5bafef6.tar.bz2\n \n # Hashes for license files:\n sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSE.GPL2\ndiff --git a/package/qt5/qt5wayland/qt5wayland.mk b/package/qt5/qt5wayland/qt5wayland.mk\nindex 41f99801fa..8e21ec6da3 100644\n--- a/package/qt5/qt5wayland/qt5wayland.mk\n+++ b/package/qt5/qt5wayland/qt5wayland.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5WAYLAND_VERSION = 11e099c6b7fbec0e198bffaf8016676ef430cfba\n+QT5WAYLAND_VERSION = df49b9f3badce793a0a9ea850cf1a02cc5bafef6\n QT5WAYLAND_SITE = $(QT5_SITE)/qtwayland/-/archive/$(QT5WAYLAND_VERSION)\n QT5WAYLAND_SOURCE = qtwayland-$(QT5WAYLAND_VERSION).tar.bz2\n QT5WAYLAND_DEPENDENCIES = wayland\ndiff --git a/package/qt5/qt5webchannel/qt5webchannel.hash b/package/qt5/qt5webchannel/qt5webchannel.hash\nindex bf613d0785..f668b76cf8 100644\n--- a/package/qt5/qt5webchannel/qt5webchannel.hash\n+++ b/package/qt5/qt5webchannel/qt5webchannel.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  fef1e1180d479293b23569190ddfaff5643737f3da065f8954c24b3a1030ea71  qtwebchannel-fca83088ef430f96257d2014e77d08bd350259af.tar.bz2\n+sha256  d5215daf4c023f1ae256230155e42e8b8806d0166d8c9609251de5e0a93911c9  qtwebchannel-2a157921861e651f43456cb7941b250c89feb736.tar.bz2\n \n # Hashes for license files:\n sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSE.GPL2\ndiff --git a/package/qt5/qt5webchannel/qt5webchannel.mk b/package/qt5/qt5webchannel/qt5webchannel.mk\nindex fe509045b9..e72ff03944 100644\n--- a/package/qt5/qt5webchannel/qt5webchannel.mk\n+++ b/package/qt5/qt5webchannel/qt5webchannel.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5WEBCHANNEL_VERSION = fca83088ef430f96257d2014e77d08bd350259af\n+QT5WEBCHANNEL_VERSION = 2a157921861e651f43456cb7941b250c89feb736\n QT5WEBCHANNEL_SITE = $(QT5_SITE)/qtwebchannel/-/archive/$(QT5WEBCHANNEL_VERSION)\n QT5WEBCHANNEL_SOURCE = qtwebchannel-$(QT5WEBCHANNEL_VERSION).tar.bz2\n QT5WEBCHANNEL_DEPENDENCIES = qt5websockets\ndiff --git a/package/qt5/qt5webengine-chromium/0001-Add-python3-build-support.patch b/package/qt5/qt5webengine-chromium/0001-Add-python3-build-support.patch\ndeleted file mode 100644\nindex cc9726418e..0000000000\n--- a/package/qt5/qt5webengine-chromium/0001-Add-python3-build-support.patch\n+++ /dev/null\n@@ -1,1858 +0,0 @@\n-From bf94b834e9beb4e7bc25dbc4c61f5e2db39e7cdc Mon Sep 17 00:00:00 2001\n-From: James Hilliard <james.hilliard1@gmail.com>\n-Date: Fri, 4 Feb 2022 15:43:35 -0700\n-Subject: [PATCH] Add python3 build support\n-\n-Adapted from:\n-https://github.com/archlinux/svntogit-packages/blob/6edf5f1aaea952d046aff89a2e0175258fe77361/trunk/qt5-webengine-chromium-python3.patch\n-\n-Signed-off-by: James Hilliard <james.hilliard1@gmail.com>\n----\n- .../protobufs/binary_proto_generator.py       |  8 +-\n- .../tracing/generate_trace_viewer_grd.py      |  2 +-\n- chromium/mojo/public/tools/bindings/BUILD.gn  |  2 +\n- .../tools/bindings/gen_data_files_list.py     |  8 +-\n- .../generators/mojom_java_generator.py        |  4 +\n- .../tools/mojom/mojom/generate/generator.py   | 14 ++--\n- .../tools/mojom/mojom/generate/module.py      |  3 +-\n- .../mojom/mojom/generate/template_expander.py | 12 +--\n- .../scripts/bind_gen/blink_v8_bridge.py       |  6 +-\n- .../scripts/bind_gen/callback_interface.py    |  2 +-\n- .../bindings/scripts/bind_gen/code_node.py    | 10 +--\n- .../bindings/scripts/bind_gen/codegen_expr.py | 15 ++--\n- .../scripts/bind_gen/codegen_format.py        |  2 +-\n- .../scripts/bind_gen/codegen_utils.py         |  2 +-\n- .../bindings/scripts/bind_gen/dictionary.py   |  2 +-\n- .../bindings/scripts/bind_gen/interface.py    | 82 +++++++++++--------\n- .../scripts/bind_gen/mako_renderer.py         |  2 +-\n- .../bindings/scripts/bind_gen/style_format.py |  9 +-\n- .../bindings/scripts/bind_gen/task_queue.py   |  5 +-\n- .../bindings/scripts/code_generator.py        | 10 +++\n- .../scripts/generate_origin_trial_features.py |  4 +-\n- .../bindings/scripts/idl_definitions.py       |  8 +-\n- .../renderer/bindings/scripts/idl_reader.py   |  4 +-\n- .../renderer/bindings/scripts/idl_types.py    |  2 +-\n- .../renderer/bindings/scripts/utilities.py    | 28 +++----\n- .../renderer/bindings/scripts/v8_interface.py |  9 +-\n- .../renderer/bindings/scripts/v8_methods.py   |  4 +\n- .../renderer/bindings/scripts/v8_utilities.py |  2 +-\n- .../scripts/web_idl/callback_interface.py     | 12 +--\n- .../bindings/scripts/web_idl/database.py      |  2 +-\n- .../bindings/scripts/web_idl/exposure.py      |  5 +-\n- .../bindings/scripts/web_idl/function_like.py | 28 +++----\n- .../bindings/scripts/web_idl/idl_compiler.py  | 21 ++---\n- .../bindings/scripts/web_idl/interface.py     | 45 +++++-----\n- .../bindings/scripts/web_idl/ir_builder.py    | 29 ++++---\n- .../bindings/scripts/web_idl/make_copy.py     |  7 ++\n- .../bindings/scripts/web_idl/namespace.py     | 12 +--\n- .../bindings/templates/dictionary_v8.cc.tmpl  |  8 +-\n- .../scripts/core/css/make_style_shorthands.py | 23 +++---\n- .../properties/make_css_property_instances.py |  4 +-\n- .../blink/renderer/build/scripts/gperf.py     |  2 +-\n- .../blink/renderer/build/scripts/in_file.py   |  2 +-\n- .../renderer/build/scripts/in_generator.py    |  5 ++\n- .../build/scripts/make_runtime_features.py    |  2 +-\n- .../scripts/templates/element_factory.cc.tmpl |  4 +-\n- .../templates/element_type_helpers.cc.tmpl    |  4 +-\n- .../templates/element_type_helpers.h.tmpl     |  2 +-\n- .../build/scripts/templates/macros.tmpl       |  4 +-\n- .../templates/make_qualified_names.h.tmpl     |  4 +-\n- .../dawn/generator/generator_lib.py           |  4 +\n- .../devtools-frontend/src/BUILD.gn            |  2 +\n- .../scripts/build/build_inspector_overlay.py  |  3 +-\n- .../build/build_release_applications.py       |  9 +-\n- .../scripts/build/generate_devtools_grd.py    |  4 +-\n- .../src/scripts/build/modular_build.py        |  6 +-\n- chromium/third_party/jinja2/tests.py          |  2 +-\n- chromium/tools/metrics/ukm/gen_builders.py    |  5 +-\n- .../ui/ozone/generate_constructor_list.py     | 13 ++-\n- .../ui/ozone/generate_ozone_platform_list.py  | 26 ++++--\n- 59 files changed, 331 insertions(+), 229 deletions(-)\n-\n-diff --git a/chromium/components/resources/protobufs/binary_proto_generator.py b/chromium/components/resources/protobufs/binary_proto_generator.py\n-index 7422ead9697..16365515f26 100755\n---- a/chromium/components/resources/protobufs/binary_proto_generator.py\n-+++ b/chromium/components/resources/protobufs/binary_proto_generator.py\n-@@ -7,7 +7,7 @@\n-  Converts a given ASCII proto into a binary resource.\n- \n- \"\"\"\n--\n-+from __future__ import print_function\n- import abc\n- import imp\n- import optparse\n-@@ -196,12 +196,12 @@ class BinaryProtoGenerator:\n-     self._ImportProtoModules(opts.path)\n- \n-     if not self.VerifyArgs(opts):\n--      print \"Wrong arguments\"\n-+      print(\"Wrong arguments\")\n-       return 1\n- \n-     try:\n-       self._GenerateBinaryProtos(opts)\n-     except Exception as e:\n--      print \"ERROR: Failed to render binary version of %s:\\n  %s\\n%s\" % (\n--          opts.infile, str(e), traceback.format_exc())\n-+      print(\"ERROR: Failed to render binary version of %s:\\n  %s\\n%s\" %\n-+            (opts.infile, str(e), traceback.format_exc()))\n-       return 1\n-diff --git a/chromium/content/browser/tracing/generate_trace_viewer_grd.py b/chromium/content/browser/tracing/generate_trace_viewer_grd.py\n-index 037f9497dc2..be393d21f90 100755\n---- a/chromium/content/browser/tracing/generate_trace_viewer_grd.py\n-+++ b/chromium/content/browser/tracing/generate_trace_viewer_grd.py\n-@@ -74,7 +74,7 @@ def main(argv):\n-   for filename in parsed_args.source_files:\n-     add_file_to_grd(doc, os.path.basename(filename))\n- \n--  with open(parsed_args.output_filename, 'w') as output_file:\n-+  with open(parsed_args.output_filename, 'wb') as output_file:\n-     output_file.write(doc.toxml(encoding='UTF-8'))\n- \n- \n-diff --git a/chromium/mojo/public/tools/bindings/BUILD.gn b/chromium/mojo/public/tools/bindings/BUILD.gn\n-index fc04b5dd0b1..708958e438b 100644\n---- a/chromium/mojo/public/tools/bindings/BUILD.gn\n-+++ b/chromium/mojo/public/tools/bindings/BUILD.gn\n-@@ -2,9 +2,11 @@\n- # Use of this source code is governed by a BSD-style license that can be\n- # found in the LICENSE file.\n- \n-+import(\"//build/config/python.gni\")\n- import(\"//mojo/public/tools/bindings/mojom.gni\")\n- import(\"//third_party/jinja2/jinja2.gni\")\n- \n-+# TODO(crbug.com/1194274): Investigate nondeterminism in Py3 builds.\n- action(\"precompile_templates\") {\n-   sources = mojom_generator_sources\n-   sources += [\n-diff --git a/chromium/mojo/public/tools/bindings/gen_data_files_list.py b/chromium/mojo/public/tools/bindings/gen_data_files_list.py\n-index 79c9e50efce..8b78d092418 100644\n---- a/chromium/mojo/public/tools/bindings/gen_data_files_list.py\n-+++ b/chromium/mojo/public/tools/bindings/gen_data_files_list.py\n-@@ -18,7 +18,6 @@ import os\n- import re\n- import sys\n- \n--from cStringIO import StringIO\n- from optparse import OptionParser\n- \n- sys.path.insert(\n-@@ -41,12 +40,9 @@ def main():\n-   pattern = re.compile(options.pattern)\n-   files = [f for f in os.listdir(options.directory) if pattern.match(f)]\n- \n--  stream = StringIO()\n--  for f in files:\n--    print(f, file=stream)\n-+  contents = '\\n'.join(f for f in files) + '\\n'\n-+  WriteFile(contents, options.output)\n- \n--  WriteFile(stream.getvalue(), options.output)\n--  stream.close()\n- \n- if __name__ == '__main__':\n-   sys.exit(main())\n-diff --git a/chromium/mojo/public/tools/bindings/generators/mojom_java_generator.py b/chromium/mojo/public/tools/bindings/generators/mojom_java_generator.py\n-index 96b2fdfae0c..00b9dccd00c 100644\n---- a/chromium/mojo/public/tools/bindings/generators/mojom_java_generator.py\n-+++ b/chromium/mojo/public/tools/bindings/generators/mojom_java_generator.py\n-@@ -25,6 +25,10 @@ sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir,\n-                              'build', 'android', 'gyp'))\n- from util import build_utils\n- \n-+# TODO(crbug.com/1174969): Remove this once Python2 is obsoleted.\n-+if sys.version_info.major != 2:\n-+  basestring = str\n-+  long = int\n- \n- GENERATOR_PREFIX = 'java'\n- \n-diff --git a/chromium/mojo/public/tools/mojom/mojom/generate/generator.py b/chromium/mojo/public/tools/mojom/mojom/generate/generator.py\n-index de62260a5c9..4a1c73fcf82 100644\n---- a/chromium/mojo/public/tools/mojom/mojom/generate/generator.py\n-+++ b/chromium/mojo/public/tools/mojom/mojom/generate/generator.py\n-@@ -136,9 +136,14 @@ class Stylizer(object):\n- \n- def WriteFile(contents, full_path):\n-   # If |contents| is same with the file content, we skip updating.\n-+  if not isinstance(contents, bytes):\n-+    data = contents.encode('utf8')\n-+  else:\n-+    data = contents\n-+\n-   if os.path.isfile(full_path):\n-     with open(full_path, 'rb') as destination_file:\n--      if destination_file.read() == contents:\n-+      if destination_file.read() == data:\n-         return\n- \n-   # Make sure the containing directory exists.\n-@@ -146,11 +151,8 @@ def WriteFile(contents, full_path):\n-   fileutil.EnsureDirectoryExists(full_dir)\n- \n-   # Dump the data to disk.\n--  with open(full_path, \"wb\") as f:\n--    if not isinstance(contents, bytes):\n--      f.write(contents.encode('utf-8'))\n--    else:\n--      f.write(contents)\n-+  with open(full_path, 'wb') as f:\n-+    f.write(data)\n- \n- \n- def AddComputedData(module):\n-diff --git a/chromium/mojo/public/tools/mojom/mojom/generate/module.py b/chromium/mojo/public/tools/mojom/mojom/generate/module.py\n-index ebbc9b322ea..3d026429bbc 100644\n---- a/chromium/mojo/public/tools/mojom/mojom/generate/module.py\n-+++ b/chromium/mojo/public/tools/mojom/mojom/generate/module.py\n-@@ -398,7 +398,8 @@ class Field(object):\n- \n- \n- class StructField(Field):\n--  pass\n-+  def __hash__(self):\n-+    return super(Field, self).__hash__()\n- \n- \n- class UnionField(Field):\n-diff --git a/chromium/mojo/public/tools/mojom/mojom/generate/template_expander.py b/chromium/mojo/public/tools/mojom/mojom/generate/template_expander.py\n-index 7a300560246..8d9e26fb7f6 100644\n---- a/chromium/mojo/public/tools/mojom/mojom/generate/template_expander.py\n-+++ b/chromium/mojo/public/tools/mojom/mojom/generate/template_expander.py\n-@@ -75,9 +75,9 @@ def PrecompileTemplates(generator_modules, output_dir):\n-                 os.path.dirname(module.__file__), generator.GetTemplatePrefix())\n-         ]))\n-     jinja_env.filters.update(generator.GetFilters())\n--    jinja_env.compile_templates(\n--        os.path.join(output_dir, \"%s.zip\" % generator.GetTemplatePrefix()),\n--        extensions=[\"tmpl\"],\n--        zip=\"stored\",\n--        py_compile=True,\n--        ignore_errors=False)\n-+    jinja_env.compile_templates(os.path.join(\n-+        output_dir, \"%s.zip\" % generator.GetTemplatePrefix()),\n-+                                extensions=[\"tmpl\"],\n-+                                zip=\"stored\",\n-+                                py_compile=sys.version_info.major < 3,\n-+                                ignore_errors=False)\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py\n-index 3225ecca6e4..fc078d31b55 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py\n-@@ -344,7 +344,7 @@ def make_default_value_expr(idl_type, default_value):\n-     \"\"\"\n-     assert default_value.is_type_compatible_with(idl_type)\n- \n--    class DefaultValueExpr:\n-+    class DefaultValueExpr(object):\n-         _ALLOWED_SYMBOLS_IN_DEPS = (\"isolate\")\n- \n-         def __init__(self, initializer_expr, initializer_deps,\n-@@ -502,7 +502,7 @@ def make_v8_to_blink_value(blink_var_name,\n-     assert isinstance(blink_var_name, str)\n-     assert isinstance(v8_value_expr, str)\n-     assert isinstance(idl_type, web_idl.IdlType)\n--    assert (argument_index is None or isinstance(argument_index, (int, long)))\n-+    assert (argument_index is None or isinstance(argument_index, int))\n-     assert (default_value is None\n-             or isinstance(default_value, web_idl.LiteralConstant))\n- \n-@@ -622,7 +622,7 @@ def make_v8_to_blink_value_variadic(blink_var_name, v8_array,\n-     \"\"\"\n-     assert isinstance(blink_var_name, str)\n-     assert isinstance(v8_array, str)\n--    assert isinstance(v8_array_start_index, (int, long))\n-+    assert isinstance(v8_array_start_index, int)\n-     assert isinstance(idl_type, web_idl.IdlType)\n- \n-     pattern = (\"auto&& ${{{_1}}} = \"\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/callback_interface.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/callback_interface.py\n-index 4a6df513068..8b51f23a409 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/callback_interface.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/callback_interface.py\n-@@ -177,7 +177,7 @@ def generate_callback_interface(callback_interface_identifier):\n-          prop_install_mode=PropInstallMode.UNCONDITIONAL,\n-          trampoline_var_name=None,\n-          attribute_entries=[],\n--         constant_entries=filter(is_unconditional, constant_entries),\n-+         constant_entries=list(filter(is_unconditional, constant_entries)),\n-          exposed_construct_entries=[],\n-          operation_entries=[])\n-     (install_interface_template_decl, install_interface_template_def,\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node.py\n-index 52972fefe20..e5ae9d9629e 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node.py\n-@@ -503,13 +503,13 @@ class CompositeNode(CodeNode):\n-         gensym_kwargs = {}\n-         template_vars = {}\n-         for arg in args:\n--            assert isinstance(arg, (CodeNode, int, long, str))\n-+            assert isinstance(arg, (CodeNode, int, str))\n-             gensym = CodeNode.gensym()\n-             gensym_args.append(\"${{{}}}\".format(gensym))\n-             template_vars[gensym] = arg\n-         for key, value in kwargs.items():\n--            assert isinstance(key, (int, long, str))\n--            assert isinstance(value, (CodeNode, int, long, str))\n-+            assert isinstance(key, (int, str))\n-+            assert isinstance(value, (CodeNode, int, str))\n-             gensym = CodeNode.gensym()\n-             gensym_kwargs[key] = \"${{{}}}\".format(gensym)\n-             template_vars[gensym] = value\n-@@ -602,7 +602,7 @@ class ListNode(CodeNode):\n-     def insert(self, index, node):\n-         if node is None:\n-             return\n--        assert isinstance(index, (int, long))\n-+        assert isinstance(index, int)\n-         assert isinstance(node, CodeNode)\n-         assert node.outer is None and node.prev is None\n- \n-@@ -721,7 +721,7 @@ class SymbolScopeNode(SequenceNode):\n-             if not scope_chains:\n-                 return counts\n- \n--            self_index = iter(scope_chains).next().index(self)\n-+            self_index = next(iter(scope_chains)).index(self)\n-             scope_chains = map(\n-                 lambda scope_chain: scope_chain[self_index + 1:], scope_chains)\n-             scope_to_likeliness = {}\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_expr.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_expr.py\n-index a229a6c71c9..5fa288dabf2 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_expr.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_expr.py\n-@@ -109,7 +109,7 @@ def expr_and(terms):\n- \n-     if any(term.is_always_false for term in terms):\n-         return _Expr(False)\n--    terms = filter(lambda x: not x.is_always_true, terms)\n-+    terms = list(filter(lambda x: not x.is_always_true, terms))\n-     if not terms:\n-         return _Expr(True)\n-     if len(terms) == 1:\n-@@ -124,7 +124,7 @@ def expr_or(terms):\n- \n-     if any(term.is_always_true for term in terms):\n-         return _Expr(True)\n--    terms = filter(lambda x: not x.is_always_false, terms)\n-+    terms = list(filter(lambda x: not x.is_always_false, terms))\n-     if not terms:\n-         return _Expr(False)\n-     if len(terms) == 1:\n-@@ -222,7 +222,7 @@ def expr_from_exposure(exposure,\n-     elif exposure.only_in_secure_contexts is False:\n-         secure_context_term = _Expr(True)\n-     else:\n--        terms = map(ref_enabled, exposure.only_in_secure_contexts)\n-+        terms = list(map(ref_enabled, exposure.only_in_secure_contexts))\n-         secure_context_term = expr_or(\n-             [_Expr(\"${is_in_secure_context}\"),\n-              expr_not(expr_and(terms))])\n-@@ -275,10 +275,11 @@ def expr_from_exposure(exposure,\n- \n-     # [ContextEnabled]\n-     if exposure.context_enabled_features:\n--        terms = map(\n--            lambda feature: _Expr(\n--                \"${{context_feature_settings}}->is{}Enabled()\".format(\n--                    feature)), exposure.context_enabled_features)\n-+        terms = list(\n-+            map(\n-+                lambda feature: _Expr(\n-+                    \"${{context_feature_settings}}->is{}Enabled()\".format(\n-+                        feature)), exposure.context_enabled_features))\n-         context_enabled_terms.append(\n-             expr_and([_Expr(\"${context_feature_settings}\"),\n-                       expr_or(terms)]))\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_format.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_format.py\n-index 87d26eec3ca..f3e9d38247e 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_format.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_format.py\n-@@ -23,7 +23,7 @@ class _TemplateFormatter(string.Formatter):\n-         self._template_formatter_indexing_count_ = 0\n- \n-     def get_value(self, key, args, kwargs):\n--        if isinstance(key, (int, long)):\n-+        if isinstance(key, int):\n-             return args[key]\n-         assert isinstance(key, str)\n-         if not key:\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py\n-index 2bcc4fed49a..e72282aa696 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py\n-@@ -116,4 +116,4 @@ def write_code_node_to_file(code_node, filepath):\n- #                               stderr=format_result.error_message))\n- #\n- #    web_idl.file_io.write_to_file_if_changed(filepath, format_result.contents)\n--    web_idl.file_io.write_to_file_if_changed(filepath, rendered_text)\n-+    web_idl.file_io.write_to_file_if_changed(filepath, rendered_text.encode('utf-8'))\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py\n-index b39f0100410..4d68202296b 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py\n-@@ -993,7 +993,7 @@ def make_dict_trace_func(cg_context):\n-         _2 = _blink_member_name(member).value_var\n-         return TextNode(_format(pattern, _1=_1, _2=_2))\n- \n--    body.extend(map(make_trace_member_node, own_members))\n-+    body.extend(list(map(make_trace_member_node, own_members)))\n-     body.append(TextNode(\"BaseClass::Trace(visitor);\"))\n- \n-     return func_decl, func_def\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py\n-index 10ff30656ad..bfdf7128aac 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py\n-@@ -582,7 +582,7 @@ def _make_blink_api_call(code_node,\n-                          overriding_args=None):\n-     assert isinstance(code_node, SymbolScopeNode)\n-     assert isinstance(cg_context, CodeGenContext)\n--    assert num_of_args is None or isinstance(num_of_args, (int, long))\n-+    assert num_of_args is None or isinstance(num_of_args, int)\n-     assert (overriding_args is None\n-             or (isinstance(overriding_args, (list, tuple))\n-                 and all(isinstance(arg, str) for arg in overriding_args)))\n-@@ -1196,8 +1196,10 @@ def make_overload_dispatcher(cg_context):\n-             did_use_break = did_use_break or can_fail\n- \n-         conditional = expr_or(\n--            map(lambda item: expr_from_exposure(item.function_like.exposure),\n--                items))\n-+            list(\n-+                map(\n-+                    lambda item: expr_from_exposure(item.function_like.exposure\n-+                                                    ), items)))\n-         if not conditional.is_always_true:\n-             node = CxxUnlikelyIfNode(cond=conditional, body=node)\n- \n-@@ -4642,7 +4644,7 @@ class _PropEntryConstructorGroup(_PropEntryBase):\n-     def __init__(self, is_context_dependent, exposure_conditional, world,\n-                  constructor_group, ctor_callback_name, ctor_func_length):\n-         assert isinstance(ctor_callback_name, str)\n--        assert isinstance(ctor_func_length, (int, long))\n-+        assert isinstance(ctor_func_length, int)\n- \n-         _PropEntryBase.__init__(self, is_context_dependent,\n-                                 exposure_conditional, world, constructor_group)\n-@@ -4670,7 +4672,7 @@ class _PropEntryOperationGroup(_PropEntryBase):\n-                  op_func_length,\n-                  no_alloc_direct_callback_name=None):\n-         assert isinstance(op_callback_name, str)\n--        assert isinstance(op_func_length, (int, long))\n-+        assert isinstance(op_func_length, int)\n- \n-         _PropEntryBase.__init__(self, is_context_dependent,\n-                                 exposure_conditional, world, operation_group)\n-@@ -5175,9 +5177,9 @@ def make_install_interface_template(cg_context, function_name, class_name, api_c\n-     ])\n- \n-     if class_like.identifier == \"CSSStyleDeclaration\":\n--        css_properties = filter(\n--            lambda attr: \"CSSProperty\" in attr.extended_attributes,\n--            class_like.attributes)\n-+        css_properties = list(\n-+            filter(lambda attr: \"CSSProperty\" in attr.extended_attributes,\n-+                   class_like.attributes))\n-         if css_properties:\n-             prop_name_list = \"\".join(\n-                 map(lambda attr: \"\\\"{}\\\", \".format(attr.identifier),\n-@@ -5567,8 +5569,8 @@ ${instance_object} = ${v8_context}->Global()->GetPrototype().As<v8::Object>();\\\n-             \"V8DOMConfiguration::InstallConstants(${isolate}, \"\n-             \"${interface_template}, ${prototype_template}, \"\n-             \"kConstantCallbackTable, base::size(kConstantCallbackTable));\")\n--    constant_callback_entries = filter(lambda entry: entry.const_callback_name,\n--                                       constant_entries)\n-+    constant_callback_entries = list(filter(lambda entry: entry.const_callback_name,\n-+                                       constant_entries))\n-     install_properties(table_name, constant_callback_entries,\n-                        _make_constant_callback_registration_table,\n-                        installer_call_text)\n-@@ -5584,8 +5586,8 @@ ${instance_object} = ${v8_context}->Global()->GetPrototype().As<v8::Object>();\\\n-             \"V8DOMConfiguration::InstallConstants(${isolate}, \"\n-             \"${interface_template}, ${prototype_template}, \"\n-             \"kConstantValueTable, base::size(kConstantValueTable));\")\n--    constant_value_entries = filter(\n--        lambda entry: not entry.const_callback_name, constant_entries)\n-+    constant_value_entries = list(filter(\n-+        lambda entry: not entry.const_callback_name, constant_entries))\n-     install_properties(table_name, constant_value_entries,\n-                        _make_constant_value_registration_table,\n-                        installer_call_text)\n-@@ -6336,8 +6338,8 @@ def make_v8_context_snapshot_api(cg_context, component, attribute_entries,\n-     assert isinstance(component, web_idl.Component)\n- \n-     derived_interfaces = cg_context.interface.deriveds\n--    derived_names = map(lambda interface: interface.identifier,\n--                        derived_interfaces)\n-+    derived_names = list(\n-+        map(lambda interface: interface.identifier, derived_interfaces))\n-     derived_names.append(cg_context.interface.identifier)\n-     if not (\"Window\" in derived_names or \"HTMLDocument\" in derived_names):\n-         return None, None\n-@@ -6411,9 +6413,11 @@ def _make_v8_context_snapshot_get_reference_table_function(\n-     collect_callbacks(named_properties_object_callback_defs)\n-     collect_callbacks(cross_origin_property_callback_defs)\n- \n--    entry_nodes = map(\n--        lambda name: TextNode(\"reinterpret_cast<intptr_t>({}),\".format(name)),\n--        filter(None, callback_names))\n-+    entry_nodes = list(\n-+        map(\n-+            lambda name: TextNode(\"reinterpret_cast<intptr_t>({}),\".format(name\n-+                                                                           )),\n-+            filter(None, callback_names)))\n-     table_node = ListNode([\n-         TextNode(\"using namespace ${class_name}Callbacks;\"),\n-         TextNode(\"static const intptr_t kReferenceTable[] = {\"),\n-@@ -6451,10 +6455,11 @@ def _make_v8_context_snapshot_install_props_per_context_function(\n-         class_name=None,\n-         prop_install_mode=PropInstallMode.V8_CONTEXT_SNAPSHOT,\n-         trampoline_var_name=None,\n--        attribute_entries=filter(selector, attribute_entries),\n--        constant_entries=filter(selector, constant_entries),\n--        exposed_construct_entries=filter(selector, exposed_construct_entries),\n--        operation_entries=filter(selector, operation_entries))\n-+        attribute_entries=list(filter(selector, attribute_entries)),\n-+        constant_entries=list(filter(selector, constant_entries)),\n-+        exposed_construct_entries=list(\n-+            filter(selector, exposed_construct_entries)),\n-+        operation_entries=list(filter(selector, operation_entries)))\n- \n-     return func_decl, func_def\n- \n-@@ -6810,11 +6815,11 @@ def generate_interface(interface_identifier):\n-          class_name=impl_class_name,\n-          prop_install_mode=PropInstallMode.UNCONDITIONAL,\n-          trampoline_var_name=tp_install_unconditional_props,\n--         attribute_entries=filter(is_unconditional, attribute_entries),\n--         constant_entries=filter(is_unconditional, constant_entries),\n--         exposed_construct_entries=filter(is_unconditional,\n--                                          exposed_construct_entries),\n--         operation_entries=filter(is_unconditional, operation_entries))\n-+         attribute_entries=list(filter(is_unconditional, attribute_entries)),\n-+         constant_entries=list(filter(is_unconditional, constant_entries)),\n-+         exposed_construct_entries=list(\n-+             filter(is_unconditional, exposed_construct_entries)),\n-+         operation_entries=list(filter(is_unconditional, operation_entries)))\n-     (install_context_independent_props_decl,\n-      install_context_independent_props_def,\n-      install_context_independent_props_trampoline) = make_install_properties(\n-@@ -6823,11 +6828,14 @@ def generate_interface(interface_identifier):\n-          class_name=impl_class_name,\n-          prop_install_mode=PropInstallMode.CONTEXT_INDEPENDENT,\n-          trampoline_var_name=tp_install_context_independent_props,\n--         attribute_entries=filter(is_context_independent, attribute_entries),\n--         constant_entries=filter(is_context_independent, constant_entries),\n--         exposed_construct_entries=filter(is_context_independent,\n--                                          exposed_construct_entries),\n--         operation_entries=filter(is_context_independent, operation_entries))\n-+         attribute_entries=list(\n-+             filter(is_context_independent, attribute_entries)),\n-+         constant_entries=list(filter(is_context_independent,\n-+                                      constant_entries)),\n-+         exposed_construct_entries=list(\n-+             filter(is_context_independent, exposed_construct_entries)),\n-+         operation_entries=list(\n-+             filter(is_context_independent, operation_entries)))\n-     (install_context_dependent_props_decl, install_context_dependent_props_def,\n-      install_context_dependent_props_trampoline) = make_install_properties(\n-          cg_context,\n-@@ -6835,11 +6843,13 @@ def generate_interface(interface_identifier):\n-          class_name=impl_class_name,\n-          prop_install_mode=PropInstallMode.CONTEXT_DEPENDENT,\n-          trampoline_var_name=tp_install_context_dependent_props,\n--         attribute_entries=filter(is_context_dependent, attribute_entries),\n--         constant_entries=filter(is_context_dependent, constant_entries),\n--         exposed_construct_entries=filter(is_context_dependent,\n--                                          exposed_construct_entries),\n--         operation_entries=filter(is_context_dependent, operation_entries))\n-+         attribute_entries=list(filter(is_context_dependent,\n-+                                       attribute_entries)),\n-+         constant_entries=list(filter(is_context_dependent, constant_entries)),\n-+         exposed_construct_entries=list(\n-+             filter(is_context_dependent, exposed_construct_entries)),\n-+         operation_entries=list(filter(is_context_dependent,\n-+                                       operation_entries)))\n-     (install_interface_template_decl, install_interface_template_def,\n-      install_interface_template_trampoline) = make_install_interface_template(\n-          cg_context,\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/mako_renderer.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/mako_renderer.py\n-index b4c70553863..f3a2fcd772d 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/mako_renderer.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/mako_renderer.py\n-@@ -105,7 +105,7 @@ class MakoRenderer(object):\n-             on_error = self._caller_stack_on_error\n-             if (len(current) <= len(on_error)\n-                     and all(current[i] == on_error[i]\n--                            for i in xrange(len(current)))):\n-+                            for i in range(len(current)))):\n-                 pass  # Error happened in a deeper caller.\n-             else:\n-                 self._caller_stack_on_error = list(self._caller_stack)\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py\n-index dc3493cc394..017d3d47bb3 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py\n-@@ -70,8 +70,13 @@ def gn_format(contents, filename=None):\n- \n- \n- def _invoke_format_command(command_line, filename, contents):\n--    proc = subprocess.Popen(\n--        command_line, stdin=subprocess.PIPE, stdout=subprocess.PIPE)\n-+    kwargs = {}\n-+    if sys.version_info.major != 2:\n-+        kwargs['encoding'] = 'utf-8'\n-+    proc = subprocess.Popen(command_line,\n-+                            stdin=subprocess.PIPE,\n-+                            stdout=subprocess.PIPE,\n-+                            **kwargs)\n-     stdout_output, stderr_output = proc.communicate(input=contents)\n-     exit_code = proc.wait()\n- \n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py\n-index 0d8f4c0f303..e666a9b668e 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py\n-@@ -2,6 +2,7 @@\n- # Use of this source code is governed by a BSD-style license that can be\n- # found in the LICENSE file.\n- \n-+import functools\n- import multiprocessing\n- \n- from .package_initializer import package_initializer\n-@@ -76,7 +77,7 @@ class TaskQueue(object):\n-         if not report_progress:\n-             return\n- \n--        done_count = reduce(\n-+        done_count = functools.reduce(\n-             lambda count, worker_task: count + bool(worker_task.ready()),\n-             self._worker_tasks, 0)\n-         report_progress(len(self._worker_tasks), done_count)\n-@@ -85,4 +86,4 @@ class TaskQueue(object):\n- def _task_queue_run_tasks(tasks):\n-     for task in tasks:\n-         func, args, kwargs = task\n--        apply(func, args, kwargs)\n-+        func(*args, **kwargs)\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/code_generator.py b/chromium/third_party/blink/renderer/bindings/scripts/code_generator.py\n-index e8280be7213..e49e6eb965e 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/code_generator.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/code_generator.py\n-@@ -13,6 +13,7 @@ import re\n- import sys\n- \n- from idl_types import set_ancestors, IdlType\n-+from itertools import groupby\n- from v8_globals import includes\n- from v8_interface import constant_filters\n- from v8_types import set_component_dirs\n-@@ -43,6 +44,7 @@ TEMPLATES_DIR = os.path.normpath(\n- # after path[0] == invoking script dir\n- sys.path.insert(1, THIRD_PARTY_DIR)\n- import jinja2\n-+from jinja2.filters import make_attrgetter, environmentfilter\n- \n- \n- def generate_indented_conditional(code, conditional):\n-@@ -88,6 +90,13 @@ def runtime_enabled_if(code, name):\n-     return generate_indented_conditional(code, function)\n- \n- \n-+@environmentfilter\n-+def do_stringify_key_group_by(environment, value, attribute):\n-+    expr = make_attrgetter(environment, attribute)\n-+    key = lambda item: '' if expr(item) is None else str(expr(item))\n-+    return groupby(sorted(value, key=key), expr)\n-+\n-+\n- def initialize_jinja_env(cache_dir):\n-     jinja_env = jinja2.Environment(\n-         loader=jinja2.FileSystemLoader(TEMPLATES_DIR),\n-@@ -117,6 +126,7 @@ def initialize_jinja_env(cache_dir):\n-     })\n-     jinja_env.filters.update(constant_filters())\n-     jinja_env.filters.update(method_filters())\n-+    jinja_env.filters[\"stringifykeygroupby\"] = do_stringify_key_group_by\n-     return jinja_env\n- \n- \n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/generate_origin_trial_features.py b/chromium/third_party/blink/renderer/bindings/scripts/generate_origin_trial_features.py\n-index 130004eae83..04c0fabcef2 100755\n---- a/chromium/third_party/blink/renderer/bindings/scripts/generate_origin_trial_features.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/generate_origin_trial_features.py\n-@@ -80,7 +80,7 @@ def read_idl_file(reader, idl_filename):\n-     assert len(interfaces) == 1, (\n-         \"Expected one interface in file %r, found %d\" %\n-         (idl_filename, len(interfaces)))\n--    return (interfaces.values()[0], includes)\n-+    return (list(interfaces.values())[0], includes)\n- \n- \n- def interface_is_global(interface):\n-@@ -281,7 +281,7 @@ def main():\n- \n-     info_provider = create_component_info_provider(\n-         os.path.normpath(options.info_dir), options.target_component)\n--    idl_filenames = map(str.strip, open(options.idl_files_list))\n-+    idl_filenames = list(map(str.strip, open(options.idl_files_list)))\n- \n-     generate_origin_trial_features(info_provider, options, idl_filenames)\n-     return 0\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/idl_definitions.py b/chromium/third_party/blink/renderer/bindings/scripts/idl_definitions.py\n-index 14e6e9d3f87..b027818aef2 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/idl_definitions.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/idl_definitions.py\n-@@ -394,7 +394,8 @@ class IdlInterface(object):\n-             else:\n-                 raise ValueError('Unrecognized node class: %s' % child_class)\n- \n--        if len(filter(None, [self.iterable, self.maplike, self.setlike])) > 1:\n-+        if len(list(filter(None,\n-+                           [self.iterable, self.maplike, self.setlike]))) > 1:\n-             raise ValueError(\n-                 'Interface can only have one of iterable<>, maplike<> and setlike<>.'\n-             )\n-@@ -512,6 +513,9 @@ class IdlAttribute(TypedObject):\n-     def accept(self, visitor):\n-         visitor.visit_attribute(self)\n- \n-+    def __lt__(self, other):\n-+        return self.name < other.name\n-+\n- \n- ################################################################################\n- # Constants\n-@@ -852,7 +856,7 @@ class IdlIncludes(object):\n- ################################################################################\n- \n- \n--class Exposure:\n-+class Exposure(object):\n-     \"\"\"An Exposure holds one Exposed or RuntimeEnabled condition.\n-     Each exposure has two properties: exposed and runtime_enabled.\n-     Exposure(e, r) corresponds to [Exposed(e r)]. Exposure(e) corresponds to\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/idl_reader.py b/chromium/third_party/blink/renderer/bindings/scripts/idl_reader.py\n-index 8d72865a6ca..b80eebdcd61 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/idl_reader.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/idl_reader.py\n-@@ -55,8 +55,8 @@ def validate_blink_idl_definitions(idl_filename, idl_file_basename,\n-          definitions. There is no filename convention in this case.\n-        - Otherwise, an IDL file is invalid.\n-     \"\"\"\n--    targets = (\n--        definitions.interfaces.values() + definitions.dictionaries.values())\n-+    targets = (list(definitions.interfaces.values()) +\n-+               list(definitions.dictionaries.values()))\n-     number_of_targets = len(targets)\n-     if number_of_targets > 1:\n-         raise Exception(\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/idl_types.py b/chromium/third_party/blink/renderer/bindings/scripts/idl_types.py\n-index cd4f0c3513b..ab95e9c0b08 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/idl_types.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/idl_types.py\n-@@ -349,7 +349,7 @@ class IdlUnionType(IdlTypeBase):\n-         return True\n- \n-     def single_matching_member_type(self, predicate):\n--        matching_types = filter(predicate, self.flattened_member_types)\n-+        matching_types = list(filter(predicate, self.flattened_member_types))\n-         if len(matching_types) > 1:\n-             raise ValueError('%s is ambiguous.' % self.name)\n-         return matching_types[0] if matching_types else None\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/utilities.py b/chromium/third_party/blink/renderer/bindings/scripts/utilities.py\n-index e1677ee7bd6..3c5006f064f 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/utilities.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/utilities.py\n-@@ -196,8 +196,9 @@ class ComponentInfoProviderModules(ComponentInfoProvider):\n- \n-     @property\n-     def callback_functions(self):\n--        return dict(self._component_info_core['callback_functions'].items() +\n--                    self._component_info_modules['callback_functions'].items())\n-+        return dict(\n-+            list(self._component_info_core['callback_functions'].items()) +\n-+            list(self._component_info_modules['callback_functions'].items()))\n- \n-     @property\n-     def specifier_for_export(self):\n-@@ -209,8 +210,8 @@ class ComponentInfoProviderModules(ComponentInfoProvider):\n- \n- \n- def load_interfaces_info_overall_pickle(info_dir):\n--    with open(os.path.join(info_dir,\n--                           'interfaces_info.pickle')) as interface_info_file:\n-+    with open(os.path.join(info_dir, 'interfaces_info.pickle'),\n-+              mode='rb') as interface_info_file:\n-         return pickle.load(interface_info_file)\n- \n- \n-@@ -236,23 +237,20 @@ def merge_dict_recursively(target, diff):\n- \n- def create_component_info_provider_core(info_dir):\n-     interfaces_info = load_interfaces_info_overall_pickle(info_dir)\n--    with open(\n--            os.path.join(info_dir, 'core',\n--                         'component_info_core.pickle')) as component_info_file:\n-+    with open(os.path.join(info_dir, 'core', 'component_info_core.pickle'),\n-+              mode='rb') as component_info_file:\n-         component_info = pickle.load(component_info_file)\n-     return ComponentInfoProviderCore(interfaces_info, component_info)\n- \n- \n- def create_component_info_provider_modules(info_dir):\n-     interfaces_info = load_interfaces_info_overall_pickle(info_dir)\n--    with open(\n--            os.path.join(info_dir, 'core',\n--                         'component_info_core.pickle')) as component_info_file:\n-+    with open(os.path.join(info_dir, 'core', 'component_info_core.pickle'),\n-+              mode='rb') as component_info_file:\n-         component_info_core = pickle.load(component_info_file)\n--    with open(\n--            os.path.join(\n--                info_dir, 'modules',\n--                'component_info_modules.pickle')) as component_info_file:\n-+    with open(os.path.join(info_dir, 'modules',\n-+                           'component_info_modules.pickle'),\n-+              mode='rb') as component_info_file:\n-         component_info_modules = pickle.load(component_info_file)\n-     return ComponentInfoProviderModules(interfaces_info, component_info_core,\n-                                         component_info_modules)\n-@@ -356,7 +354,7 @@ def write_pickle_file(pickle_filename, data):\n-     pickle_filename = abs(pickle_filename)\n-     # If |data| is same with the file content, we skip updating.\n-     if os.path.isfile(pickle_filename):\n--        with open(pickle_filename) as pickle_file:\n-+        with open(pickle_filename, 'rb') as pickle_file:\n-             try:\n-                 if pickle.load(pickle_file) == data:\n-                     return\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/v8_interface.py b/chromium/third_party/blink/renderer/bindings/scripts/v8_interface.py\n-index a43260414db..a85b03abe75 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/v8_interface.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/v8_interface.py\n-@@ -189,7 +189,7 @@ def context_enabled_features(attributes):\n-         return sorted([\n-             member for member in members\n-             if member.get(KEY) and not member.get('exposed_test')\n--        ])\n-+        ], key=lambda item: item['name'])\n- \n-     def member_filter_by_name(members, name):\n-         return [member for member in members if member[KEY] == name]\n-@@ -612,7 +612,8 @@ def interface_context(interface, interfaces, component_info):\n-         sorted(\n-             origin_trial_features(interface, context['constants'],\n-                                   context['attributes'], context['methods']) +\n--            context_enabled_features(context['attributes'])),\n-+            context_enabled_features(context['attributes']),\n-+            key=lambda item: item['name']),\n-     })\n-     if context['optional_features']:\n-         includes.add('platform/bindings/v8_per_context_data.h')\n-@@ -1356,9 +1357,9 @@ def resolution_tests_methods(effective_overloads):\n- \n-     # Extract argument and IDL type to simplify accessing these in each loop.\n-     arguments = [method['arguments'][index] for method in methods]\n--    arguments_methods = zip(arguments, methods)\n-+    arguments_methods = list(zip(arguments, methods))\n-     idl_types = [argument['idl_type_object'] for argument in arguments]\n--    idl_types_methods = zip(idl_types, methods)\n-+    idl_types_methods = list(zip(idl_types, methods))\n- \n-     # We can’t do a single loop through all methods or simply sort them, because\n-     # a method may be listed in multiple steps of the resolution algorithm, and\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/v8_methods.py b/chromium/third_party/blink/renderer/bindings/scripts/v8_methods.py\n-index 5f1f89a3def..6ee8a407798 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/v8_methods.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/v8_methods.py\n-@@ -46,6 +46,10 @@ import v8_types\n- import v8_utilities\n- from v8_utilities import (has_extended_attribute_value, is_unforgeable)\n- \n-+# TODO: Remove this once Python2 is obsoleted.\n-+if sys.version_info.major != 2:\n-+    basestring = str\n-+\n- \n- def method_is_visible(method, interface_is_partial):\n-     if 'overloads' in method:\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/v8_utilities.py b/chromium/third_party/blink/renderer/bindings/scripts/v8_utilities.py\n-index 2ecd6923320..fcfc48371b1 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/v8_utilities.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/v8_utilities.py\n-@@ -271,7 +271,7 @@ EXPOSED_WORKERS = set([\n- ])\n- \n- \n--class ExposureSet:\n-+class ExposureSet(object):\n-     \"\"\"An ExposureSet is a collection of Exposure instructions.\"\"\"\n- \n-     def __init__(self, exposures=None):\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/callback_interface.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/callback_interface.py\n-index 13fb7c7068d..b73b7710687 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/callback_interface.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/callback_interface.py\n-@@ -91,11 +91,13 @@ class CallbackInterface(UserDefinedType, WithExtendedAttributes,\n-             for operation_ir in ir.operations\n-         ])\n-         self._operation_groups = tuple([\n--            OperationGroup(\n--                operation_group_ir,\n--                filter(lambda x: x.identifier == operation_group_ir.identifier,\n--                       self._operations),\n--                owner=self) for operation_group_ir in ir.operation_groups\n-+            OperationGroup(operation_group_ir,\n-+                           list(\n-+                               filter(\n-+                                   lambda x: x.identifier == operation_group_ir\n-+                                   .identifier, self._operations)),\n-+                           owner=self)\n-+            for operation_group_ir in ir.operation_groups\n-         ])\n- \n-     @property\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/database.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/database.py\n-index c92cf48eb2a..f5d59129449 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/database.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/database.py\n-@@ -156,4 +156,4 @@ class Database(object):\n-         return self._view_by_kind(Database._Kind.UNION)\n- \n-     def _view_by_kind(self, kind):\n--        return self._impl.find_by_kind(kind).values()\n-+        return list(self._impl.find_by_kind(kind).values())\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/exposure.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/exposure.py\n-index abaeef39c30..e36cf7439ae 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/exposure.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/exposure.py\n-@@ -8,8 +8,11 @@ from .runtime_enabled_features import RuntimeEnabledFeatures\n- class _Feature(str):\n-     \"\"\"Represents a runtime-enabled feature.\"\"\"\n- \n-+    def __new__(cls, value):\n-+        return str.__new__(cls, value)\n-+\n-     def __init__(self, value):\n--        str.__init__(self, value)\n-+        str.__init__(self)\n-         self._is_context_dependent = (\n-             RuntimeEnabledFeatures.is_context_dependent(self))\n- \n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/function_like.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/function_like.py\n-index 648c70d803d..1712f19c672 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/function_like.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/function_like.py\n-@@ -71,8 +71,9 @@ class FunctionLike(WithIdentifier):\n-     def num_of_required_arguments(self):\n-         \"\"\"Returns the number of required arguments.\"\"\"\n-         return len(\n--            filter(lambda arg: not (arg.is_optional or arg.is_variadic),\n--                   self.arguments))\n-+            list(\n-+                filter(lambda arg: not (arg.is_optional or arg.is_variadic),\n-+                       self.arguments)))\n- \n- \n- class OverloadGroup(WithIdentifier):\n-@@ -171,8 +172,7 @@ class OverloadGroup(WithIdentifier):\n-         Returns the effective overload set.\n-         https://heycam.github.io/webidl/#compute-the-effective-overload-set\n-         \"\"\"\n--        assert argument_count is None or isinstance(argument_count,\n--                                                    (int, long))\n-+        assert argument_count is None or isinstance(argument_count, int)\n- \n-         N = argument_count\n-         S = []\n-@@ -188,21 +188,21 @@ class OverloadGroup(WithIdentifier):\n- \n-             S.append(\n-                 OverloadGroup.EffectiveOverloadItem(\n--                    X, map(lambda arg: arg.idl_type, X.arguments),\n--                    map(lambda arg: arg.optionality, X.arguments)))\n-+                    X, list(map(lambda arg: arg.idl_type, X.arguments)),\n-+                    list(map(lambda arg: arg.optionality, X.arguments))))\n- \n-             if X.is_variadic:\n--                for i in xrange(n, max(maxarg, N)):\n--                    t = map(lambda arg: arg.idl_type, X.arguments)\n--                    o = map(lambda arg: arg.optionality, X.arguments)\n--                    for _ in xrange(n, i + 1):\n-+                for i in range(n, max(maxarg, N)):\n-+                    t = list(map(lambda arg: arg.idl_type, X.arguments))\n-+                    o = list(map(lambda arg: arg.optionality, X.arguments))\n-+                    for _ in range(n, i + 1):\n-                         t.append(X.arguments[-1].idl_type)\n-                         o.append(X.arguments[-1].optionality)\n-                     S.append(OverloadGroup.EffectiveOverloadItem(X, t, o))\n- \n--            t = map(lambda arg: arg.idl_type, X.arguments)\n--            o = map(lambda arg: arg.optionality, X.arguments)\n--            for i in xrange(n - 1, -1, -1):\n-+            t = list(map(lambda arg: arg.idl_type, X.arguments))\n-+            o = list(map(lambda arg: arg.optionality, X.arguments))\n-+            for i in range(n - 1, -1, -1):\n-                 if X.arguments[i].optionality == IdlType.Optionality.REQUIRED:\n-                     break\n-                 S.append(OverloadGroup.EffectiveOverloadItem(X, t[:i], o[:i]))\n-@@ -222,7 +222,7 @@ class OverloadGroup(WithIdentifier):\n-             for item in items)\n-         assert len(items) > 1\n- \n--        for index in xrange(len(items[0].type_list)):\n-+        for index in range(len(items[0].type_list)):\n-             # Assume that the given items are valid, and we only need to test\n-             # the two types.\n-             if OverloadGroup.are_distinguishable_types(\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py\n-index c5ee2bd8a3d..58315072480 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py\n-@@ -149,8 +149,8 @@ class IdlCompiler(object):\n-         for old_ir in old_irs:\n-             new_ir = make_copy(old_ir)\n-             self._ir_map.add(new_ir)\n--            new_ir.attributes = filter(not_disabled, new_ir.attributes)\n--            new_ir.operations = filter(not_disabled, new_ir.operations)\n-+            new_ir.attributes = list(filter(not_disabled, new_ir.attributes))\n-+            new_ir.operations = list(filter(not_disabled, new_ir.operations))\n- \n-     def _record_defined_in_partial_and_mixin(self):\n-         old_irs = self._ir_map.irs_of_kinds(\n-@@ -231,7 +231,7 @@ class IdlCompiler(object):\n-                       only_to_members_of_partial_or_mixin=False)\n-             propagate_to_exposure(propagate)\n- \n--            map(process_member_like, ir.iter_all_members())\n-+            list(map(process_member_like, ir.iter_all_members()))\n- \n-         def process_member_like(ir):\n-             propagate = functools.partial(propagate_extattr, ir=ir)\n-@@ -257,7 +257,7 @@ class IdlCompiler(object):\n- \n-         self._ir_map.move_to_new_phase()\n- \n--        map(process_interface_like, old_irs)\n-+        list(map(process_interface_like, old_irs))\n- \n-     def _determine_blink_headers(self):\n-         irs = self._ir_map.irs_of_kinds(\n-@@ -422,9 +422,9 @@ class IdlCompiler(object):\n-             assert not new_interface.deriveds\n-             derived_set = identifier_to_derived_set.get(\n-                 new_interface.identifier, set())\n--            new_interface.deriveds = map(\n--                lambda id_: self._ref_to_idl_def_factory.create(id_),\n--                sorted(derived_set))\n-+            new_interface.deriveds = list(\n-+                map(lambda id_: self._ref_to_idl_def_factory.create(id_),\n-+                    sorted(derived_set)))\n- \n-     def _supplement_missing_html_constructor_operation(self):\n-         # Temporary mitigation of misuse of [HTMLConstructor]\n-@@ -553,7 +553,8 @@ class IdlCompiler(object):\n-             self._ir_map.add(new_ir)\n- \n-             for group in new_ir.iter_all_overload_groups():\n--                exposures = map(lambda overload: overload.exposure, group)\n-+                exposures = list(map(lambda overload: overload.exposure,\n-+                                     group))\n- \n-                 # [Exposed]\n-                 if any(not exposure.global_names_and_features\n-@@ -653,8 +654,8 @@ class IdlCompiler(object):\n-             constructs = set()\n-             for global_name in global_names:\n-                 constructs.update(exposed_map.get(global_name, []))\n--            new_ir.exposed_constructs = map(\n--                self._ref_to_idl_def_factory.create, sorted(constructs))\n-+            new_ir.exposed_constructs = list(\n-+                map(self._ref_to_idl_def_factory.create, sorted(constructs)))\n- \n-             assert not new_ir.legacy_window_aliases\n-             if new_ir.identifier != 'Window':\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/interface.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/interface.py\n-index 65d24e529d1..067ef2eb0b2 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/interface.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/interface.py\n-@@ -180,8 +180,9 @@ class Interface(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo,\n-         self._constructor_groups = tuple([\n-             ConstructorGroup(\n-                 group_ir,\n--                filter(lambda x: x.identifier == group_ir.identifier,\n--                       self._constructors),\n-+                list(\n-+                    filter(lambda x: x.identifier == group_ir.identifier,\n-+                           self._constructors)),\n-                 owner=self) for group_ir in ir.constructor_groups\n-         ])\n-         assert len(self._constructor_groups) <= 1\n-@@ -192,8 +193,9 @@ class Interface(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo,\n-         self._named_constructor_groups = tuple([\n-             ConstructorGroup(\n-                 group_ir,\n--                filter(lambda x: x.identifier == group_ir.identifier,\n--                       self._named_constructors),\n-+                list(\n-+                    filter(lambda x: x.identifier == group_ir.identifier,\n-+                           self._named_constructors)),\n-                 owner=self) for group_ir in ir.named_constructor_groups\n-         ])\n-         self._operations = tuple([\n-@@ -203,22 +205,23 @@ class Interface(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo,\n-         self._operation_groups = tuple([\n-             OperationGroup(\n-                 group_ir,\n--                filter(lambda x: x.identifier == group_ir.identifier,\n--                       self._operations),\n-+                list(\n-+                    filter(lambda x: x.identifier == group_ir.identifier,\n-+                           self._operations)),\n-                 owner=self) for group_ir in ir.operation_groups\n-         ])\n-         self._exposed_constructs = tuple(ir.exposed_constructs)\n-         self._legacy_window_aliases = tuple(ir.legacy_window_aliases)\n-         self._indexed_and_named_properties = None\n--        indexed_and_named_property_operations = filter(\n--            lambda x: x.is_indexed_or_named_property_operation,\n--            self._operations)\n-+        indexed_and_named_property_operations = list(\n-+            filter(lambda x: x.is_indexed_or_named_property_operation,\n-+                   self._operations))\n-         if indexed_and_named_property_operations:\n-             self._indexed_and_named_properties = IndexedAndNamedProperties(\n-                 indexed_and_named_property_operations, owner=self)\n-         self._stringifier = None\n--        stringifier_operation_irs = filter(lambda x: x.is_stringifier,\n--                                           ir.operations)\n-+        stringifier_operation_irs = list(\n-+            filter(lambda x: x.is_stringifier, ir.operations))\n-         if stringifier_operation_irs:\n-             assert len(stringifier_operation_irs) == 1\n-             op_ir = make_copy(stringifier_operation_irs[0])\n-@@ -231,8 +234,9 @@ class Interface(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo,\n-             attribute = None\n-             if operation.stringifier_attribute:\n-                 attr_id = operation.stringifier_attribute\n--                attributes = filter(lambda x: x.identifier == attr_id,\n--                                    self._attributes)\n-+                attributes = list(\n-+                    filter(lambda x: x.identifier == attr_id,\n-+                           self._attributes))\n-                 assert len(attributes) == 1\n-                 attribute = attributes[0]\n-             self._stringifier = Stringifier(operation, attribute, owner=self)\n-@@ -578,8 +582,9 @@ class Iterable(WithDebugInfo):\n-         self._operation_groups = tuple([\n-             OperationGroup(\n-                 group_ir,\n--                filter(lambda x: x.identifier == group_ir.identifier,\n--                       self._operations),\n-+                list(\n-+                    filter(lambda x: x.identifier == group_ir.identifier,\n-+                           self._operations)),\n-                 owner=owner) for group_ir in ir.operation_groups\n-         ])\n- \n-@@ -666,8 +671,9 @@ class Maplike(WithDebugInfo):\n-         self._operation_groups = tuple([\n-             OperationGroup(\n-                 group_ir,\n--                filter(lambda x: x.identifier == group_ir.identifier,\n--                       self._operations),\n-+                list(\n-+                    filter(lambda x: x.identifier == group_ir.identifier,\n-+                           self._operations)),\n-                 owner=owner) for group_ir in ir.operation_groups\n-         ])\n- \n-@@ -755,8 +761,9 @@ class Setlike(WithDebugInfo):\n-         self._operation_groups = tuple([\n-             OperationGroup(\n-                 group_ir,\n--                filter(lambda x: x.identifier == group_ir.identifier,\n--                       self._operations),\n-+                list(\n-+                    filter(lambda x: x.identifier == group_ir.identifier,\n-+                           self._operations)),\n-                 owner=owner) for group_ir in ir.operation_groups\n-         ])\n- \n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/ir_builder.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/ir_builder.py\n-index e9aeff4ab82..d80554d603e 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/ir_builder.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/ir_builder.py\n-@@ -2,6 +2,8 @@\n- # Use of this source code is governed by a BSD-style license that can be\n- # found in the LICENSE file.\n- \n-+import sys\n-+\n- from .argument import Argument\n- from .ast_group import AstGroup\n- from .attribute import Attribute\n-@@ -30,6 +32,11 @@ from .operation import Operation\n- from .typedef import Typedef\n- \n- \n-+# TODO: Remove this once Python2 is obsoleted.\n-+if sys.version_info.major != 2:\n-+    long = int\n-+\n-+\n- def load_and_register_idl_definitions(filepaths, register_ir,\n-                                       create_ref_to_idl_def, idl_type_factory):\n-     \"\"\"\n-@@ -160,7 +167,7 @@ class _IRBuilder(object):\n-         child_nodes = list(node.GetChildren())\n-         extended_attributes = self._take_extended_attributes(child_nodes)\n- \n--        members = map(self._build_interface_member, child_nodes)\n-+        members = list(map(self._build_interface_member, child_nodes))\n-         attributes = []\n-         constants = []\n-         operations = []\n-@@ -302,7 +309,7 @@ class _IRBuilder(object):\n-         child_nodes = list(node.GetChildren())\n-         inherited = self._take_inheritance(child_nodes)\n-         extended_attributes = self._take_extended_attributes(child_nodes)\n--        own_members = map(self._build_dictionary_member, child_nodes)\n-+        own_members = list(map(self._build_dictionary_member, child_nodes))\n- \n-         return Dictionary.IR(\n-             identifier=Identifier(node.GetName()),\n-@@ -336,7 +343,7 @@ class _IRBuilder(object):\n- \n-         child_nodes = list(node.GetChildren())\n-         extended_attributes = self._take_extended_attributes(child_nodes)\n--        members = map(self._build_interface_member, child_nodes)\n-+        members = list(map(self._build_interface_member, child_nodes))\n-         constants = []\n-         operations = []\n-         for member in members:\n-@@ -456,8 +463,8 @@ class _IRBuilder(object):\n-                 assert len(child_nodes) == 1\n-                 child = child_nodes[0]\n-                 if child.GetClass() == 'Arguments':\n--                    arguments = map(build_extattr_argument,\n--                                    child.GetChildren())\n-+                    arguments = list(\n-+                        map(build_extattr_argument, child.GetChildren()))\n-                 elif child.GetClass() == 'Call':\n-                     assert len(child.GetChildren()) == 1\n-                     grand_child = child.GetChildren()[0]\n-@@ -486,7 +493,9 @@ class _IRBuilder(object):\n- \n-         assert node.GetClass() == 'ExtAttributes'\n-         return ExtendedAttributes(\n--            filter(None, map(build_extended_attribute, node.GetChildren())))\n-+            list(\n-+                filter(None, map(build_extended_attribute,\n-+                                 node.GetChildren()))))\n- \n-     def _build_inheritance(self, node):\n-         assert node.GetClass() == 'Inherit'\n-@@ -506,7 +515,7 @@ class _IRBuilder(object):\n- \n-     def _build_iterable(self, node):\n-         assert node.GetClass() == 'Iterable'\n--        types = map(self._build_type, node.GetChildren())\n-+        types = list(map(self._build_type, node.GetChildren()))\n-         assert len(types) == 1 or len(types) == 2\n-         if len(types) == 1:  # value iterator\n-             key_type, value_type = (None, types[0])\n-@@ -584,7 +593,7 @@ class _IRBuilder(object):\n-     def _build_maplike(self, node, interface_identifier):\n-         assert node.GetClass() == 'Maplike'\n-         assert isinstance(interface_identifier, Identifier)\n--        types = map(self._build_type, node.GetChildren())\n-+        types = list(map(self._build_type, node.GetChildren()))\n-         assert len(types) == 2\n-         key_type, value_type = types\n-         is_readonly = bool(node.GetProperty('READONLY'))\n-@@ -676,7 +685,7 @@ class _IRBuilder(object):\n-     def _build_setlike(self, node, interface_identifier):\n-         assert node.GetClass() == 'Setlike'\n-         assert isinstance(interface_identifier, Identifier)\n--        types = map(self._build_type, node.GetChildren())\n-+        types = list(map(self._build_type, node.GetChildren()))\n-         assert len(types) == 1\n-         value_type = types[0]\n-         is_readonly = bool(node.GetProperty('READONLY'))\n-@@ -838,7 +847,7 @@ class _IRBuilder(object):\n- \n-         def build_union_type(node, extended_attributes):\n-             return self._idl_type_factory.union_type(\n--                member_types=map(self._build_type, node.GetChildren()),\n-+                member_types=list(map(self._build_type, node.GetChildren())),\n-                 is_optional=is_optional,\n-                 extended_attributes=extended_attributes,\n-                 debug_info=self._build_debug_info(node))\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/make_copy.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/make_copy.py\n-index a7a2b11f3f0..2f6b61300ff 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/make_copy.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/make_copy.py\n-@@ -3,6 +3,13 @@\n- # found in the LICENSE file.\n- \n- \n-+import sys\n-+\n-+# TODO: Remove this once Python2 is obsoleted.\n-+if sys.version_info.major != 2:\n-+    long = int\n-+    basestring = str\n-+\n- def make_copy(obj, memo=None):\n-     \"\"\"\n-     Creates a copy of the given object, which should be an IR or part of IR.\n-diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/namespace.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/namespace.py\n-index eeabef97cbe..bd7e98907f3 100644\n---- a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/namespace.py\n-+++ b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/namespace.py\n-@@ -107,11 +107,13 @@ class Namespace(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo,\n-             for operation_ir in ir.operations\n-         ])\n-         self._operation_groups = tuple([\n--            OperationGroup(\n--                operation_group_ir,\n--                filter(lambda x: x.identifier == operation_group_ir.identifier,\n--                       self._operations),\n--                owner=self) for operation_group_ir in ir.operation_groups\n-+            OperationGroup(operation_group_ir,\n-+                           list(\n-+                               filter(\n-+                                   lambda x: x.identifier == operation_group_ir\n-+                                   .identifier, self._operations)),\n-+                           owner=self)\n-+            for operation_group_ir in ir.operation_groups\n-         ])\n- \n-     @property\n-diff --git a/chromium/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl b/chromium/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl\n-index 0add9c45a38..dc910f6d227 100644\n---- a/chromium/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl\n-+++ b/chromium/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl\n-@@ -59,9 +59,9 @@ void {{v8_class}}::ToImpl(v8::Isolate* isolate, v8::Local<v8::Value> v8_value, {\n-   DCHECK(executionContext);\n-   {% endif %}{# has_origin_trial_members #}\n-   {% endif %}{# members #}\n--  {% for origin_trial_test, origin_trial_member_list in members | groupby('origin_trial_feature_name') %}\n-+  {% for origin_trial_test, origin_trial_member_list in members | stringifykeygroupby('origin_trial_feature_name') %}\n-   {% filter origin_trial_enabled(origin_trial_test, \"executionContext\") %}\n--  {% for feature_name, member_list in origin_trial_member_list | groupby('runtime_enabled_feature_name') %}\n-+  {% for feature_name, member_list in origin_trial_member_list | stringifykeygroupby('runtime_enabled_feature_name') %}\n-   {% filter runtime_enabled(feature_name) %}\n-   {% for member in member_list %}\n-   v8::Local<v8::Value> {{member.v8_value}};\n-@@ -147,9 +147,9 @@ bool toV8{{cpp_class}}(const {{cpp_class}}* impl, v8::Local<v8::Object> dictiona\n-   DCHECK(executionContext);\n-   {% endif %}{# has_origin_trial_members #}\n-   {% endif %}{# members #}\n--  {% for origin_trial_test, origin_trial_member_list in members | groupby('origin_trial_feature_name') %}\n-+  {% for origin_trial_test, origin_trial_member_list in members | stringifykeygroupby('origin_trial_feature_name') %}\n-   {% filter origin_trial_enabled(origin_trial_test, \"executionContext\") %}\n--  {% for feature_name, member_list in origin_trial_member_list | groupby('runtime_enabled_feature_name') %}\n-+  {% for feature_name, member_list in origin_trial_member_list | stringifykeygroupby('runtime_enabled_feature_name') %}\n-   {% filter runtime_enabled(feature_name) %}\n-   {% for member in member_list %}\n-   v8::Local<v8::Value> {{member.v8_value}};\n-diff --git a/chromium/third_party/blink/renderer/build/scripts/core/css/make_style_shorthands.py b/chromium/third_party/blink/renderer/build/scripts/core/css/make_style_shorthands.py\n-index 1799cd5a153..5f43ffabc26 100755\n---- a/chromium/third_party/blink/renderer/build/scripts/core/css/make_style_shorthands.py\n-+++ b/chromium/third_party/blink/renderer/build/scripts/core/css/make_style_shorthands.py\n-@@ -71,7 +71,7 @@ class Expansion(object):\n-     def enabled_longhands(self):\n-         include = lambda longhand: not longhand[\n-             'runtime_flag'] or self.is_enabled(longhand['runtime_flag'])\n--        return filter(include, self._longhands)\n-+        return list(filter(include, self._longhands))\n- \n-     @property\n-     def index(self):\n-@@ -87,8 +87,9 @@ class Expansion(object):\n- \n- def create_expansions(longhands):\n-     flags = collect_runtime_flags(longhands)\n--    expansions = map(lambda mask: Expansion(longhands, flags, mask),\n--                     range(1 << len(flags)))\n-+    expansions = list(\n-+        map(lambda mask: Expansion(longhands, flags, mask),\n-+            range(1 << len(flags))))\n-     assert len(expansions) > 0\n-     # We generate 2^N expansions for N flags, so enforce some limit.\n-     assert len(flags) <= 4, 'Too many runtime flags for a single shorthand'\n-@@ -114,14 +115,14 @@ class StylePropertyShorthandWriter(json5_generator.Writer):\n- \n-         self._longhand_dictionary = defaultdict(list)\n-         for property_ in json5_properties.shorthands:\n--            property_['longhand_enum_keys'] = map(enum_key_for_css_property,\n--                                                  property_['longhands'])\n--            property_['longhand_property_ids'] = map(id_for_css_property,\n--                                                     property_['longhands'])\n--\n--            longhands = map(\n--                lambda name: json5_properties.properties_by_name[name],\n--                property_['longhands'])\n-+            property_['longhand_enum_keys'] = list(\n-+                map(enum_key_for_css_property, property_['longhands']))\n-+            property_['longhand_property_ids'] = list(\n-+                map(id_for_css_property, property_['longhands']))\n-+\n-+            longhands = list(\n-+                map(lambda name: json5_properties.properties_by_name[name],\n-+                    property_['longhands']))\n-             property_['expansions'] = create_expansions(longhands)\n-             for longhand_enum_key in property_['longhand_enum_keys']:\n-                 self._longhand_dictionary[longhand_enum_key].append(property_)\n-diff --git a/chromium/third_party/blink/renderer/build/scripts/core/css/properties/make_css_property_instances.py b/chromium/third_party/blink/renderer/build/scripts/core/css/properties/make_css_property_instances.py\n-index 75030ac577e..f72aadee17d 100755\n---- a/chromium/third_party/blink/renderer/build/scripts/core/css/properties/make_css_property_instances.py\n-+++ b/chromium/third_party/blink/renderer/build/scripts/core/css/properties/make_css_property_instances.py\n-@@ -42,8 +42,8 @@ class CSSPropertyInstancesWriter(json5_generator.Writer):\n-         aliases = self._css_properties.aliases\n- \n-         # Lists of PropertyClassData.\n--        self._property_classes_by_id = map(self.get_class, properties)\n--        self._alias_classes_by_id = map(self.get_class, aliases)\n-+        self._property_classes_by_id = list(map(self.get_class, properties))\n-+        self._alias_classes_by_id = list(map(self.get_class, aliases))\n- \n-         # Sort by enum value.\n-         self._property_classes_by_id.sort(key=lambda t: t.enum_value)\n-diff --git a/chromium/third_party/blink/renderer/build/scripts/gperf.py b/chromium/third_party/blink/renderer/build/scripts/gperf.py\n-index 5ee49056be4..db72660d471 100644\n---- a/chromium/third_party/blink/renderer/build/scripts/gperf.py\n-+++ b/chromium/third_party/blink/renderer/build/scripts/gperf.py\n-@@ -95,7 +95,7 @@ def main():\n- \n-     open(args.output_file, 'wb').write(\n-         generate_gperf(gperf_path,\n--                       open(infile).read(), gperf_args))\n-+                       open(infile).read(), gperf_args).encode('utf-8'))\n- \n- \n- if __name__ == '__main__':\n-diff --git a/chromium/third_party/blink/renderer/build/scripts/in_file.py b/chromium/third_party/blink/renderer/build/scripts/in_file.py\n-index 28adc050f1e..58113483e57 100644\n---- a/chromium/third_party/blink/renderer/build/scripts/in_file.py\n-+++ b/chromium/third_party/blink/renderer/build/scripts/in_file.py\n-@@ -66,7 +66,7 @@ class InFile(object):\n-         self._defaults = defaults\n-         self._valid_values = copy.deepcopy(\n-             valid_values if valid_values else {})\n--        self._parse(map(str.strip, lines))\n-+        self._parse(list(map(str.strip, lines)))\n- \n-     @classmethod\n-     def load_from_files(self, file_paths, defaults, valid_values,\n-diff --git a/chromium/third_party/blink/renderer/build/scripts/in_generator.py b/chromium/third_party/blink/renderer/build/scripts/in_generator.py\n-index e46740a2e85..ab1981ad1e3 100644\n---- a/chromium/third_party/blink/renderer/build/scripts/in_generator.py\n-+++ b/chromium/third_party/blink/renderer/build/scripts/in_generator.py\n-@@ -32,10 +32,15 @@ import os\n- import os.path\n- import shlex\n- import shutil\n-+import sys\n- import optparse\n- \n- from in_file import InFile\n- \n-+# TODO: Remove this once Python2 is obsoleted.\n-+if sys.version_info.major != 2:\n-+    basestring = str\n-+\n- \n- #########################################################\n- # This is now deprecated - use json5_generator.py instead\n-diff --git a/chromium/third_party/blink/renderer/build/scripts/make_runtime_features.py b/chromium/third_party/blink/renderer/build/scripts/make_runtime_features.py\n-index cafe8d94a8e..6925a4fa580 100755\n---- a/chromium/third_party/blink/renderer/build/scripts/make_runtime_features.py\n-+++ b/chromium/third_party/blink/renderer/build/scripts/make_runtime_features.py\n-@@ -138,7 +138,7 @@ class RuntimeFeatureWriter(BaseRuntimeFeatureWriter):\n-                 except Exception:\n-                     # If trouble unpickling, overwrite\n-                     pass\n--        with open(os.path.abspath(file_name), 'w') as pickle_file:\n-+        with open(os.path.abspath(file_name), 'wb') as pickle_file:\n-             pickle.dump(features_map, pickle_file)\n- \n-     def _template_inputs(self):\n-diff --git a/chromium/third_party/blink/renderer/build/scripts/templates/element_factory.cc.tmpl b/chromium/third_party/blink/renderer/build/scripts/templates/element_factory.cc.tmpl\n-index dc3f44c5b10..3eefcf9f0ee 100644\n---- a/chromium/third_party/blink/renderer/build/scripts/templates/element_factory.cc.tmpl\n-+++ b/chromium/third_party/blink/renderer/build/scripts/templates/element_factory.cc.tmpl\n-@@ -26,7 +26,7 @@ using {{namespace}}FunctionMap = HashMap<AtomicString, {{namespace}}ConstructorF\n- \n- static {{namespace}}FunctionMap* g_{{namespace|lower}}_constructors = nullptr;\n- \n--{% for tag in tags|sort if not tag.noConstructor %}\n-+{% for tag in tags|sort(attribute='name') if not tag.noConstructor %}\n- static {{namespace}}Element* {{namespace}}{{tag.name.to_upper_camel_case()}}Constructor(\n-     Document& document, const CreateElementFlags flags) {\n-   {% if tag.runtimeEnabled %}\n-@@ -52,7 +52,7 @@ static void Create{{namespace}}FunctionMap() {\n-   // Empty array initializer lists are illegal [dcl.init.aggr] and will not\n-   // compile in MSVC. If tags list is empty, add check to skip this.\n-   static const Create{{namespace}}FunctionMapData data[] = {\n--  {% for tag in tags|sort if not tag.noConstructor %}\n-+  {% for tag in tags|sort(attribute='name') if not tag.noConstructor %}\n-     { {{cpp_namespace}}::{{tag|symbol}}Tag, {{namespace}}{{tag.name.to_upper_camel_case()}}Constructor },\n-   {% endfor %}\n-   };\n-diff --git a/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.cc.tmpl b/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.cc.tmpl\n-index 9bfc489e048..5f86184e879 100644\n---- a/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.cc.tmpl\n-+++ b/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.cc.tmpl\n-@@ -22,7 +22,7 @@ HTMLTypeMap CreateHTMLTypeMap() {\n-     const char* name;\n-     HTMLElementType type;\n-   } kTags[] = {\n--    {% for tag in tags|sort %}\n-+    {% for tag in tags|sort(attribute='name') %}\n-     { \"{{tag.name}}\", HTMLElementType::k{{tag.js_interface}} },\n-     {% endfor %}\n-   };\n-@@ -42,7 +42,7 @@ HTMLElementType htmlElementTypeForTag(const AtomicString& tagName, const Documen\n-   if (it == html_type_map.end())\n-     return HTMLElementType::kHTMLUnknownElement;\n- \n--  {% for tag in tags|sort %}\n-+  {% for tag in tags|sort(attribute='name') %}\n-   {% if tag.runtimeEnabled %}\n-   if (tagName == \"{{tag.name}}\") {\n-     if (!RuntimeEnabledFeatures::{{tag.runtimeEnabled}}Enabled(document->GetExecutionContext())) {\n-diff --git a/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.h.tmpl b/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.h.tmpl\n-index 1b5297d52dc..edecc81d9d4 100644\n---- a/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.h.tmpl\n-+++ b/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.h.tmpl\n-@@ -15,7 +15,7 @@ namespace blink {\n- class Document;\n- \n- // Type checking.\n--{% for tag in tags|sort if not tag.multipleTagNames and not tag.noTypeHelpers %}\n-+{% for tag in tags|sort(attribute='name') if not tag.multipleTagNames and not tag.noTypeHelpers %}\n- class {{tag.interface}};\n- template <>\n- inline bool IsElementOfType<const {{tag.interface}}>(const Node& node) {\n-diff --git a/chromium/third_party/blink/renderer/build/scripts/templates/macros.tmpl b/chromium/third_party/blink/renderer/build/scripts/templates/macros.tmpl\n-index 0244433af2e..dcdbb02a56c 100644\n---- a/chromium/third_party/blink/renderer/build/scripts/templates/macros.tmpl\n-+++ b/chromium/third_party/blink/renderer/build/scripts/templates/macros.tmpl\n-@@ -25,7 +25,7 @@\n- \n- \n- {% macro trie_leaf(index, object, return_macro, lowercase_data) %}\n--{% set name, value = object.items()[0] %}\n-+{% set name, value = (object.items()|list)[0] %}\n- {% if name|length %}\n- if (\n-     {%- for c in name -%}\n-@@ -45,7 +45,7 @@ return {{ return_macro(value) }};\n- \n- \n- {% macro trie_switch(trie, index, return_macro, lowercase_data) %}\n--{% if trie|length == 1 and trie.values()[0] is string %}\n-+{% if trie|length == 1 and (trie.values()|list)[0] is string %}\n- {{ trie_leaf(index, trie, return_macro, lowercase_data) -}}\n- {% else %}\n-     {% if lowercase_data %}\n-diff --git a/chromium/third_party/blink/renderer/build/scripts/templates/make_qualified_names.h.tmpl b/chromium/third_party/blink/renderer/build/scripts/templates/make_qualified_names.h.tmpl\n-index cb05c6c4315..bd5566b03e7 100644\n---- a/chromium/third_party/blink/renderer/build/scripts/templates/make_qualified_names.h.tmpl\n-+++ b/chromium/third_party/blink/renderer/build/scripts/templates/make_qualified_names.h.tmpl\n-@@ -24,12 +24,12 @@ namespace {{cpp_namespace}} {\n- {{symbol_export}}extern const WTF::AtomicString& {{namespace_prefix}}NamespaceURI;\n- \n- // Tags\n--{% for tag in tags|sort %}\n-+{% for tag in tags|sort(attribute='name') %}\n- {{symbol_export}}extern const blink::{{namespace}}QualifiedName& {{tag|symbol}}Tag;\n- {% endfor %}\n- \n- // Attributes\n--{% for attr in attrs|sort %}\n-+{% for attr in attrs|sort(attribute='name') %}\n- {{symbol_export}}extern const blink::QualifiedName& {{attr|symbol}}Attr;\n- {% endfor %}\n- \n-diff --git a/chromium/third_party/dawn/generator/generator_lib.py b/chromium/third_party/dawn/generator/generator_lib.py\n-index 5e3734d7833..e3d46bd194f 100644\n---- a/chromium/third_party/dawn/generator/generator_lib.py\n-+++ b/chromium/third_party/dawn/generator/generator_lib.py\n-@@ -201,6 +201,10 @@ def _compute_python_dependencies(root_dir=None):\n- \n-     paths = set()\n-     for path in module_paths:\n-+        # Builtin/namespaced modules may return None for the file path.\n-+        if not path:\n-+            continue\n-+\n-         path = os.path.abspath(path)\n- \n-         if not path.startswith(root_dir):\n-diff --git a/chromium/third_party/devtools-frontend/src/BUILD.gn b/chromium/third_party/devtools-frontend/src/BUILD.gn\n-index cd488e88b60..ea1dc3d9a79 100644\n---- a/chromium/third_party/devtools-frontend/src/BUILD.gn\n-+++ b/chromium/third_party/devtools-frontend/src/BUILD.gn\n-@@ -2,6 +2,8 @@\n- # Use of this source code is governed by a BSD-style license that can be\n- # found in the LICENSE file.\n- \n-+import(\"//build/config/python.gni\")\n-+\n- import(\"//third_party/blink/public/public_features.gni\")\n- import(\"./all_devtools_files.gni\")\n- import(\"./all_devtools_modules.gni\")\n-diff --git a/chromium/third_party/devtools-frontend/src/scripts/build/build_inspector_overlay.py b/chromium/third_party/devtools-frontend/src/scripts/build/build_inspector_overlay.py\n-index d6666e8b74f..0f7a661e632 100644\n---- a/chromium/third_party/devtools-frontend/src/scripts/build/build_inspector_overlay.py\n-+++ b/chromium/third_party/devtools-frontend/src/scripts/build/build_inspector_overlay.py\n-@@ -45,7 +45,8 @@ def rollup(input_path, output_path, filename, max_size, rollup_plugin):\n-         ['--format', 'iife', '-n', 'InspectorOverlay'] + ['--input', target] +\n-         ['--plugin', rollup_plugin],\n-         stdout=subprocess.PIPE,\n--        stderr=subprocess.PIPE)\n-+        stderr=subprocess.PIPE,\n-+        text=True)\n-     out, error = rollup_process.communicate()\n-     if not out:\n-         raise Exception(\"rollup failed: \" + error)\n-diff --git a/chromium/third_party/devtools-frontend/src/scripts/build/build_release_applications.py b/chromium/third_party/devtools-frontend/src/scripts/build/build_release_applications.py\n-index fa8e73d34af..7d0b84b2171 100644\n---- a/chromium/third_party/devtools-frontend/src/scripts/build/build_release_applications.py\n-+++ b/chromium/third_party/devtools-frontend/src/scripts/build/build_release_applications.py\n-@@ -10,7 +10,7 @@ Builds applications in release mode:\n- and the application loader into a single script.\n- \"\"\"\n- \n--from cStringIO import StringIO\n-+from io import StringIO\n- from os import path\n- from os.path import join\n- import copy\n-@@ -145,8 +145,7 @@ class ReleaseBuilder(object):\n-             resource_content = read_file(path.join(self.application_dir, resource_name))\n-             if not (resource_name.endswith('.html')\n-                     or resource_name.endswith('md')):\n--                resource_content += resource_source_url(resource_name).encode(\n--                    'utf-8')\n-+                resource_content += resource_source_url(resource_name)\n-             resource_content = resource_content.replace('\\\\', '\\\\\\\\')\n-             resource_content = resource_content.replace('\\n', '\\\\n')\n-             resource_content = resource_content.replace('\"', '\\\\\"')\n-@@ -173,7 +172,9 @@ class ReleaseBuilder(object):\n-     def _concatenate_application_script(self, output):\n-         output.write('Root.allDescriptors.push(...%s);' % self._release_module_descriptors())\n-         if self.descriptors.extends:\n--            output.write('Root.applicationDescriptor.modules.push(...%s);' % json.dumps(self.descriptors.application.values()))\n-+            output.write(\n-+                'Root.applicationDescriptor.modules.push(...%s);' %\n-+                json.dumps(list(self.descriptors.application.values())))\n-         else:\n-             output.write('Root.applicationDescriptor = %s;' % self.descriptors.application_json())\n- \n-diff --git a/chromium/third_party/devtools-frontend/src/scripts/build/generate_devtools_grd.py b/chromium/third_party/devtools-frontend/src/scripts/build/generate_devtools_grd.py\n-index be510c48d76..c6a59c90298 100644\n---- a/chromium/third_party/devtools-frontend/src/scripts/build/generate_devtools_grd.py\n-+++ b/chromium/third_party/devtools-frontend/src/scripts/build/generate_devtools_grd.py\n-@@ -123,7 +123,7 @@ def main(argv):\n- \n-     try:\n-         os.makedirs(path.join(output_directory, 'Images'))\n--    except OSError, e:\n-+    except OSError as e:\n-         if e.errno != errno.EEXIST:\n-             raise e\n- \n-@@ -147,7 +147,7 @@ def main(argv):\n-             shutil.copy(path.join(dirname, filename), path.join(output_directory, 'Images'))\n-             add_file_to_grd(doc, path.join('Images', filename))\n- \n--    with open(parsed_args.output_filename, 'w') as output_file:\n-+    with open(parsed_args.output_filename, 'wb') as output_file:\n-         output_file.write(doc.toxml(encoding='UTF-8'))\n- \n- \n-diff --git a/chromium/third_party/devtools-frontend/src/scripts/build/modular_build.py b/chromium/third_party/devtools-frontend/src/scripts/build/modular_build.py\n-index 0ba695d3810..bb1da2f9f8d 100644\n---- a/chromium/third_party/devtools-frontend/src/scripts/build/modular_build.py\n-+++ b/chromium/third_party/devtools-frontend/src/scripts/build/modular_build.py\n-@@ -7,6 +7,8 @@\n- Utilities for the modular DevTools build.\n- \"\"\"\n- \n-+from __future__ import print_function\n-+\n- import collections\n- from os import path\n- import os\n-@@ -40,7 +42,7 @@ def load_and_parse_json(filename):\n-     try:\n-         return json.loads(read_file(filename))\n-     except:\n--        print 'ERROR: Failed to parse %s' % filename\n-+        print('ERROR: Failed to parse %s' % filename)\n-         raise\n- \n- class Descriptors:\n-@@ -57,7 +59,7 @@ class Descriptors:\n- \n-     def application_json(self):\n-         result = dict()\n--        result['modules'] = self.application.values()\n-+        result['modules'] = list(self.application.values())\n-         return json.dumps(result)\n- \n-     def all_compiled_files(self):\n-diff --git a/chromium/third_party/jinja2/tests.py b/chromium/third_party/jinja2/tests.py\n-index 0adc3d4dbcb..b14f85ff148 100644\n---- a/chromium/third_party/jinja2/tests.py\n-+++ b/chromium/third_party/jinja2/tests.py\n-@@ -10,7 +10,7 @@\n- \"\"\"\n- import operator\n- import re\n--from collections import Mapping\n-+from collections.abc import Mapping\n- from jinja2.runtime import Undefined\n- from jinja2._compat import text_type, string_types, integer_types\n- import decimal\n-diff --git a/chromium/tools/metrics/ukm/gen_builders.py b/chromium/tools/metrics/ukm/gen_builders.py\n-index f9f61d90a56..44e46fae8cc 100755\n---- a/chromium/tools/metrics/ukm/gen_builders.py\n-+++ b/chromium/tools/metrics/ukm/gen_builders.py\n-@@ -48,9 +48,10 @@ def ReadFilteredData(path):\n-     data = ukm_model.UKM_XML_TYPE.Parse(ukm_file.read())\n-     event_tag = ukm_model._EVENT_TYPE.tag\n-     metric_tag = ukm_model._METRIC_TYPE.tag\n--    data[event_tag] = filter(ukm_model.IsNotObsolete, data[event_tag])\n-+    data[event_tag] = list(filter(ukm_model.IsNotObsolete, data[event_tag]))\n-     for event in data[event_tag]:\n--      event[metric_tag] = filter(ukm_model.IsNotObsolete, event[metric_tag])\n-+      event[metric_tag] = list(\n-+          filter(ukm_model.IsNotObsolete, event[metric_tag]))\n-     return data\n- \n- \n-diff --git a/chromium/ui/ozone/generate_constructor_list.py b/chromium/ui/ozone/generate_constructor_list.py\n-index 8d800636c97..04fa18e93df 100755\n---- a/chromium/ui/ozone/generate_constructor_list.py\n-+++ b/chromium/ui/ozone/generate_constructor_list.py\n-@@ -45,12 +45,15 @@ Example Output: ./ui/ozone/generate_constructor_list.py \\\n-   }  // namespace ui\n- \"\"\"\n- \n-+try:\n-+    from StringIO import StringIO  # for Python 2\n-+except ImportError:\n-+    from io import StringIO  # for Python 3\n- import optparse\n- import os\n- import collections\n- import re\n- import sys\n--import string\n- \n- \n- def GetTypedefName(typename):\n-@@ -68,7 +71,7 @@ def GetConstructorName(typename, platform):\n-   This is just \"Create\" + typename + platform.\n-   \"\"\"\n- \n--  return 'Create' + typename + string.capitalize(platform)\n-+  return 'Create' + typename + platform.capitalize()\n- \n- \n- def GenerateConstructorList(out, namespace, export, typenames, platforms,\n-@@ -163,12 +166,14 @@ def main(argv):\n-     sys.exit(1)\n- \n-   # Write to standard output or file specified by --output_cc.\n--  out_cc = sys.stdout\n-+  out_cc = getattr(sys.stdout, 'buffer', sys.stdout)\n-   if options.output_cc:\n-     out_cc = open(options.output_cc, 'wb')\n- \n--  GenerateConstructorList(out_cc, options.namespace, options.export,\n-+  out_cc_str = StringIO()\n-+  GenerateConstructorList(out_cc_str, options.namespace, options.export,\n-                           typenames, platforms, includes, usings)\n-+  out_cc.write(out_cc_str.getvalue().encode('utf-8'))\n- \n-   if options.output_cc:\n-     out_cc.close()\n-diff --git a/chromium/ui/ozone/generate_ozone_platform_list.py b/chromium/ui/ozone/generate_ozone_platform_list.py\n-index d47c398259b..2702b68b9bd 100755\n---- a/chromium/ui/ozone/generate_ozone_platform_list.py\n-+++ b/chromium/ui/ozone/generate_ozone_platform_list.py\n-@@ -49,12 +49,15 @@ Example Output: ./generate_ozone_platform_list.py --default wayland dri wayland\n- \n- \"\"\"\n- \n-+try:\n-+    from StringIO import StringIO  # for Python 2\n-+except ImportError:\n-+    from io import StringIO  # for Python 3\n- import optparse\n- import os\n- import collections\n- import re\n- import sys\n--import string\n- \n- \n- def GetConstantName(name):\n-@@ -63,7 +66,7 @@ def GetConstantName(name):\n-   We just capitalize the platform name and prepend \"CreateOzonePlatform\".\n-   \"\"\"\n- \n--  return 'kPlatform' + string.capitalize(name)\n-+  return 'kPlatform' + name.capitalize()\n- \n- \n- def GeneratePlatformListText(out, platforms):\n-@@ -149,9 +152,9 @@ def main(argv):\n-     platforms.insert(0, options.default)\n- \n-   # Write to standard output or file specified by --output_{cc,h}.\n--  out_cc = sys.stdout\n--  out_h = sys.stdout\n--  out_txt = sys.stdout\n-+  out_cc = getattr(sys.stdout, 'buffer', sys.stdout)\n-+  out_h = getattr(sys.stdout, 'buffer', sys.stdout)\n-+  out_txt = getattr(sys.stdout, 'buffer', sys.stdout)\n-   if options.output_cc:\n-     out_cc = open(options.output_cc, 'wb')\n-   if options.output_h:\n-@@ -159,9 +162,16 @@ def main(argv):\n-   if options.output_txt:\n-     out_txt = open(options.output_txt, 'wb')\n- \n--  GeneratePlatformListText(out_txt, platforms)\n--  GeneratePlatformListHeader(out_h, platforms)\n--  GeneratePlatformListSource(out_cc, platforms)\n-+  out_txt_str = StringIO()\n-+  out_h_str = StringIO()\n-+  out_cc_str = StringIO()\n-+\n-+  GeneratePlatformListText(out_txt_str, platforms)\n-+  out_txt.write(out_txt_str.getvalue().encode('utf-8'))\n-+  GeneratePlatformListHeader(out_h_str, platforms)\n-+  out_h.write(out_h_str.getvalue().encode('utf-8'))\n-+  GeneratePlatformListSource(out_cc_str, platforms)\n-+  out_cc.write(out_cc_str.getvalue().encode('utf-8'))\n- \n-   if options.output_cc:\n-     out_cc.close()\n--- \n-2.25.1\n-\ndiff --git a/package/qt5/qt5webengine-chromium/0002-Don-t-rebase-sysroot-path.patch b/package/qt5/qt5webengine-chromium/0001-Don-t-rebase-sysroot-path.patch\nsimilarity index 100%\nrename from package/qt5/qt5webengine-chromium/0002-Don-t-rebase-sysroot-path.patch\nrename to package/qt5/qt5webengine-chromium/0001-Don-t-rebase-sysroot-path.patch\ndiff --git a/package/qt5/qt5webengine-chromium/0003-Remove-unused-python-import.patch b/package/qt5/qt5webengine-chromium/0002-Remove-unused-python-import.patch\nsimilarity index 100%\nrename from package/qt5/qt5webengine-chromium/0003-Remove-unused-python-import.patch\nrename to package/qt5/qt5webengine-chromium/0002-Remove-unused-python-import.patch\ndiff --git a/package/qt5/qt5webengine-chromium/0003-Migrate-presubmit-to-python3.patch b/package/qt5/qt5webengine-chromium/0003-Migrate-presubmit-to-python3.patch\nnew file mode 100644\nindex 0000000000..809fc71ec9\n--- /dev/null\n+++ b/package/qt5/qt5webengine-chromium/0003-Migrate-presubmit-to-python3.patch\n@@ -0,0 +1,49 @@\n+From 71d96b9be632b5231b28277d9e72f6a6c5308e24 Mon Sep 17 00:00:00 2001\n+From: Dan Harrington <harringtond@chromium.org>\n+Date: Fri, 4 Jun 2021 16:46:25 +0000\n+Subject: [PATCH] Migrate presubmit to python3\n+\n+Fixed a couple warnings I found when running the unit\n+tests in python3.\n+\n+Bug: 1212110\n+Change-Id: I3d1b5859b5c517ad5eea30cb816fad0389715f73\n+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2934203\n+Reviewed-by: Jesse Doherty <jwd@chromium.org>\n+Commit-Queue: Dan H <harringtond@chromium.org>\n+Cr-Commit-Position: refs/heads/master@{#889331}\n+Upstream: https://github.com/chromium/chromium/commit/f90f49df8db04dcb72f7ce0c4d0b2fe329bab00c\n+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>\n+---\n+ chromium/tools/metrics/ukm/PRESUBMIT.py         | 2 ++\n+ chromium/tools/metrics/ukm/gen_builders_test.py | 4 ++--\n+ 2 files changed, 4 insertions(+), 2 deletions(-)\n+\n+diff --git a/chromium/tools/metrics/ukm/PRESUBMIT.py b/chromium/tools/metrics/ukm/PRESUBMIT.py\n+index 28fab1cffb7..99b13be681b 100644\n+--- a/chromium/tools/metrics/ukm/PRESUBMIT.py\n++++ b/chromium/tools/metrics/ukm/PRESUBMIT.py\n+@@ -8,6 +8,8 @@ See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts\n+ for more details on the presubmit API built into gcl.\n+ \"\"\"\n+ \n++USE_PYTHON3 = True\n++\n+ UKM_XML = 'ukm.xml'\n+ \n+ \n+diff --git a/chromium/tools/metrics/ukm/gen_builders_test.py b/chromium/tools/metrics/ukm/gen_builders_test.py\n+index 1ca15e52c9a..0015320a524 100755\n+--- a/chromium/tools/metrics/ukm/gen_builders_test.py\n++++ b/chromium/tools/metrics/ukm/gen_builders_test.py\n+@@ -25,8 +25,8 @@ class GenBuildersTest(unittest.TestCase):\n+ \n+   def testGenerateCode(self):\n+     relpath = '.'\n+-    data = ukm_model.UKM_XML_TYPE.Parse(\n+-        open('../../tools/metrics/ukm/ukm.xml').read())\n++    with open('../../tools/metrics/ukm/ukm.xml') as f:\n++      data = ukm_model.UKM_XML_TYPE.Parse(f.read())\n+     event = data[ukm_model._EVENT_TYPE.tag][0]\n+     metric = event[ukm_model._METRIC_TYPE.tag][0]\n+     self.assertIsNotNone(event)\ndiff --git a/package/qt5/qt5webengine-chromium/0004-Migrate-presubmit-to-python3.patch b/package/qt5/qt5webengine-chromium/0004-Migrate-presubmit-to-python3.patch\ndeleted file mode 100644\nindex 9314e30c5c..0000000000\n--- a/package/qt5/qt5webengine-chromium/0004-Migrate-presubmit-to-python3.patch\n+++ /dev/null\n@@ -1,132 +0,0 @@\n-From 71d96b9be632b5231b28277d9e72f6a6c5308e24 Mon Sep 17 00:00:00 2001\n-From: Dan Harrington <harringtond@chromium.org>\n-Date: Fri, 4 Jun 2021 16:46:25 +0000\n-Subject: [PATCH] Migrate presubmit to python3\n-\n-Fixed a couple warnings I found when running the unit\n-tests in python3.\n-\n-Bug: 1212110\n-Change-Id: I3d1b5859b5c517ad5eea30cb816fad0389715f73\n-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2934203\n-Reviewed-by: Jesse Doherty <jwd@chromium.org>\n-Commit-Queue: Dan H <harringtond@chromium.org>\n-Cr-Commit-Position: refs/heads/master@{#889331}\n-Upstream: https://github.com/chromium/chromium/commit/f90f49df8db04dcb72f7ce0c4d0b2fe329bab00c\n-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>\n----\n- chromium/tools/metrics/ukm/PRESUBMIT.py       |  2 +\n- .../tools/metrics/ukm/gen_builders_test.py    |  4 +-\n- chromium/tools/metrics/ukm/ukm_model.py       | 56 +++++++++++--------\n- 3 files changed, 37 insertions(+), 25 deletions(-)\n-\n-diff --git a/chromium/tools/metrics/ukm/PRESUBMIT.py b/chromium/tools/metrics/ukm/PRESUBMIT.py\n-index 28fab1cffb7..99b13be681b 100644\n---- a/chromium/tools/metrics/ukm/PRESUBMIT.py\n-+++ b/chromium/tools/metrics/ukm/PRESUBMIT.py\n-@@ -8,6 +8,8 @@ See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts\n- for more details on the presubmit API built into gcl.\n- \"\"\"\n- \n-+USE_PYTHON3 = True\n-+\n- UKM_XML = 'ukm.xml'\n- \n- \n-diff --git a/chromium/tools/metrics/ukm/gen_builders_test.py b/chromium/tools/metrics/ukm/gen_builders_test.py\n-index 1ca15e52c9a..0015320a524 100755\n---- a/chromium/tools/metrics/ukm/gen_builders_test.py\n-+++ b/chromium/tools/metrics/ukm/gen_builders_test.py\n-@@ -25,8 +25,8 @@ class GenBuildersTest(unittest.TestCase):\n- \n-   def testGenerateCode(self):\n-     relpath = '.'\n--    data = ukm_model.UKM_XML_TYPE.Parse(\n--        open('../../tools/metrics/ukm/ukm.xml').read())\n-+    with open('../../tools/metrics/ukm/ukm.xml') as f:\n-+      data = ukm_model.UKM_XML_TYPE.Parse(f.read())\n-     event = data[ukm_model._EVENT_TYPE.tag][0]\n-     metric = event[ukm_model._METRIC_TYPE.tag][0]\n-     self.assertIsNotNone(event)\n-diff --git a/chromium/tools/metrics/ukm/ukm_model.py b/chromium/tools/metrics/ukm/ukm_model.py\n-index ec24dd57360..b36899db189 100644\n---- a/chromium/tools/metrics/ukm/ukm_model.py\n-+++ b/chromium/tools/metrics/ukm/ukm_model.py\n-@@ -39,15 +39,16 @@ _INDEX_TYPE = models.ObjectNodeType(\n-     ],\n-     single_line=True)\n- \n--_STATISTICS_TYPE =  models.ObjectNodeType(\n-+_STATISTICS_TYPE = models.ObjectNodeType(\n-     'statistics',\n-     attributes=[\n--      ('export', str, r'^(?i)(|true|false)$'),\n-+        ('export', str, r'(?i)^(|true|false)$'),\n-     ],\n-     children=[\n-         models.ChildType(_QUANTILES_TYPE.tag, _QUANTILES_TYPE, multiple=False),\n--        models.ChildType(\n--            _ENUMERATION_TYPE.tag, _ENUMERATION_TYPE, multiple=False),\n-+        models.ChildType(_ENUMERATION_TYPE.tag,\n-+                         _ENUMERATION_TYPE,\n-+                         multiple=False),\n-     ])\n- \n- _HISTORY_TYPE =  models.ObjectNodeType(\n-@@ -90,25 +91,34 @@ _METRIC_TYPE =  models.ObjectNodeType(\n-             _AGGREGATION_TYPE.tag, _AGGREGATION_TYPE, multiple=True),\n-     ])\n- \n--_EVENT_TYPE =  models.ObjectNodeType(\n--    'event',\n--    attributes=[\n--      ('name', str, r'^[A-Za-z0-9.]+$'),\n--      ('singular', str, r'^(?i)(|true|false)$'),\n--    ],\n--    alphabetization=[\n--        (_OBSOLETE_TYPE.tag, _KEEP_ORDER),\n--        (_OWNER_TYPE.tag, _KEEP_ORDER),\n--        (_SUMMARY_TYPE.tag, _KEEP_ORDER),\n--        (_METRIC_TYPE.tag, _LOWERCASE_FN('name')),\n--    ],\n--    extra_newlines=(1, 1, 1),\n--    children=[\n--        models.ChildType(_OBSOLETE_TYPE.tag, _OBSOLETE_TYPE, multiple=False),\n--        models.ChildType(_OWNER_TYPE.tag, _OWNER_TYPE, multiple=True),\n--        models.ChildType(_SUMMARY_TYPE.tag, _SUMMARY_TYPE, multiple=False),\n--        models.ChildType(_METRIC_TYPE.tag, _METRIC_TYPE, multiple=True),\n--    ])\n-+_EVENT_TYPE = models.ObjectNodeType('event',\n-+                                    attributes=[\n-+                                        ('name', str, r'^[A-Za-z0-9.]+$'),\n-+                                        ('singular', str,\n-+                                         r'(?i)^(|true|false)$'),\n-+                                    ],\n-+                                    alphabetization=[\n-+                                        (_OBSOLETE_TYPE.tag, _KEEP_ORDER),\n-+                                        (_OWNER_TYPE.tag, _KEEP_ORDER),\n-+                                        (_SUMMARY_TYPE.tag, _KEEP_ORDER),\n-+                                        (_METRIC_TYPE.tag,\n-+                                         _LOWERCASE_FN('name')),\n-+                                    ],\n-+                                    extra_newlines=(1, 1, 1),\n-+                                    children=[\n-+                                        models.ChildType(_OBSOLETE_TYPE.tag,\n-+                                                         _OBSOLETE_TYPE,\n-+                                                         multiple=False),\n-+                                        models.ChildType(_OWNER_TYPE.tag,\n-+                                                         _OWNER_TYPE,\n-+                                                         multiple=True),\n-+                                        models.ChildType(_SUMMARY_TYPE.tag,\n-+                                                         _SUMMARY_TYPE,\n-+                                                         multiple=False),\n-+                                        models.ChildType(_METRIC_TYPE.tag,\n-+                                                         _METRIC_TYPE,\n-+                                                         multiple=True),\n-+                                    ])\n- \n- _UKM_CONFIGURATION_TYPE = models.ObjectNodeType(\n-     'ukm-configuration',\n--- \n-2.25.1\n-\ndiff --git a/package/qt5/qt5webengine-chromium/0005-tools-grit-grit-util.py-fix-Python-3.12-build-issue.patch b/package/qt5/qt5webengine-chromium/0004-tools-grit-grit-util.py-fix-Python-3.12-build-issue.patch\nsimilarity index 100%\nrename from package/qt5/qt5webengine-chromium/0005-tools-grit-grit-util.py-fix-Python-3.12-build-issue.patch\nrename to package/qt5/qt5webengine-chromium/0004-tools-grit-grit-util.py-fix-Python-3.12-build-issue.patch\ndiff --git a/package/qt5/qt5webengine-chromium/0006-Fix-build-in-Python-3.11-invalid-mode-rU.patch b/package/qt5/qt5webengine-chromium/0005-Fix-build-in-Python-3.11-invalid-mode-rU.patch\nsimilarity index 75%\nrename from package/qt5/qt5webengine-chromium/0006-Fix-build-in-Python-3.11-invalid-mode-rU.patch\nrename to package/qt5/qt5webengine-chromium/0005-Fix-build-in-Python-3.11-invalid-mode-rU.patch\nindex 61d45b1876..a2f838fa56 100644\n--- a/package/qt5/qt5webengine-chromium/0006-Fix-build-in-Python-3.11-invalid-mode-rU.patch\n+++ b/package/qt5/qt5webengine-chromium/0005-Fix-build-in-Python-3.11-invalid-mode-rU.patch\n@@ -21,8 +21,7 @@ Upstream: https://github.com/chromium/chromium/commit/0991fc6acd3c85472000f2055a\n Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>\n ---\n  chromium/PRESUBMIT_test_mocks.py | 2 +-\n- chromium/tools/grit/grit/util.py | 2 +-\n- 2 files changed, 2 insertions(+), 2 deletions(-)\n+ 1 file changed, 1 insertion(+), 1 deletion(-)\n \n diff --git a/chromium/PRESUBMIT_test_mocks.py b/chromium/PRESUBMIT_test_mocks.py\n index 0a9e5a54ecd..6b0eca1e1c2 100644\n@@ -37,19 +36,3 @@ index 0a9e5a54ecd..6b0eca1e1c2 100644\n      if hasattr(filename, 'AbsoluteLocalPath'):\n         filename = filename.AbsoluteLocalPath()\n      for file_ in self.files:\n-diff --git a/chromium/tools/grit/grit/util.py b/chromium/tools/grit/grit/util.py\n-index 77db06adffb..27f9aba5aa3 100644\n---- a/chromium/tools/grit/grit/util.py\n-+++ b/chromium/tools/grit/grit/util.py\n-@@ -210,7 +210,7 @@ def ReadFile(filename, encoding):\n-     mode = 'rb'\n-     encoding = None\n-   else:\n--    mode = 'rU'\n-+    mode = 'r'\n- \n-   with io.open(abs(filename), mode, encoding=encoding) as f:\n-     return f.read()\n--- \n-2.25.1\n-\ndiff --git a/package/qt5/qt5webengine-chromium/0008-protobuf-python-google-protobuf-internal-python_mess.patch b/package/qt5/qt5webengine-chromium/0006-protobuf-python-google-protobuf-internal-python_mess.patch\nsimilarity index 100%\nrename from package/qt5/qt5webengine-chromium/0008-protobuf-python-google-protobuf-internal-python_mess.patch\nrename to package/qt5/qt5webengine-chromium/0006-protobuf-python-google-protobuf-internal-python_mess.patch\ndiff --git a/package/qt5/qt5webengine-chromium/0007-Replace-imp.load_source-with-importlib-equivalent.patch b/package/qt5/qt5webengine-chromium/0007-Replace-imp.load_source-with-importlib-equivalent.patch\ndeleted file mode 100644\nindex d001a887fa..0000000000\n--- a/package/qt5/qt5webengine-chromium/0007-Replace-imp.load_source-with-importlib-equivalent.patch\n+++ /dev/null\n@@ -1,55 +0,0 @@\n-From d08221f81f35f2755088c2a174cfdc230eb1dcc4 Mon Sep 17 00:00:00 2001\n-From: =?UTF-8?q?Jacobo=20Aragunde=20P=C3=A9rez?= <jaragunde@igalia.com>\n-Date: Wed, 25 Oct 2023 06:20:54 +0000\n-Subject: [PATCH] Replace imp.load_source with importlib equivalent.\n-MIME-Version: 1.0\n-Content-Type: text/plain; charset=UTF-8\n-Content-Transfer-Encoding: 8bit\n-\n-The imp module has been deprecated for years and the function\n-load_source was even removed from the documentation long ago.\n-\n-It will be removed in Python 3.12, which will be part of Fedora\n-version 39, due in late October 2023.\n-\n-Bug: 1487454\n-Change-Id: If06a2f139225b62c7bdc70c3eaef6e5acb8972d2\n-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4894238\n-Reviewed-by: Mustafa Emre Acer <meacer@chromium.org>\n-Commit-Queue: Jacobo Aragunde Pérez <jaragunde@igalia.com>\n-Cr-Commit-Position: refs/heads/main@{#1214660}\n-Upstream: https://github.com/chromium/chromium/commit/9e0c89a3b5638ba2b9b107fea34a01c774aa7805\n-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>\n----\n- .../resources/protobufs/binary_proto_generator.py         | 8 ++++++--\n- 1 file changed, 6 insertions(+), 2 deletions(-)\n-\n-diff --git a/chromium/components/resources/protobufs/binary_proto_generator.py b/chromium/components/resources/protobufs/binary_proto_generator.py\n-index 16365515f26..c8b11f1071a 100755\n---- a/chromium/components/resources/protobufs/binary_proto_generator.py\n-+++ b/chromium/components/resources/protobufs/binary_proto_generator.py\n-@@ -9,7 +9,7 @@\n- \"\"\"\n- from __future__ import print_function\n- import abc\n--import imp\n-+from importlib import util as imp_util\n- import optparse\n- import os\n- import re\n-@@ -68,7 +68,11 @@ class GoogleProtobufModuleImporter:\n-       raise ImportError(fullname)\n- \n-     filepath = self._fullname_to_filepath(fullname)\n--    return imp.load_source(fullname, filepath)\n-+    spec = imp_util.spec_from_file_location(fullname, filepath)\n-+    loaded = imp_util.module_from_spec(spec)\n-+    spec.loader.exec_module(loaded)\n-+\n-+    return loaded\n- \n- class BinaryProtoGenerator:\n- \n--- \n-2.25.1\n-\ndiff --git a/package/qt5/qt5webengine-chromium/0009-chromium-gpu-command_buffer-service-program_manager..patch b/package/qt5/qt5webengine-chromium/0007-chromium-gpu-command_buffer-service-program_manager..patch\nsimilarity index 100%\nrename from package/qt5/qt5webengine-chromium/0009-chromium-gpu-command_buffer-service-program_manager..patch\nrename to package/qt5/qt5webengine-chromium/0007-chromium-gpu-command_buffer-service-program_manager..patch\ndiff --git a/package/qt5/qt5webengine-chromium/0011-Shorted-printed-cmd-when-long-commands-fail.patch b/package/qt5/qt5webengine-chromium/0008-Shorted-printed-cmd-when-long-commands-fail.patch\nsimilarity index 100%\nrename from package/qt5/qt5webengine-chromium/0011-Shorted-printed-cmd-when-long-commands-fail.patch\nrename to package/qt5/qt5webengine-chromium/0008-Shorted-printed-cmd-when-long-commands-fail.patch\ndiff --git a/package/qt5/qt5webengine-chromium/0009-Include-cstdint-for-uintptr_t-uint8_t-etc.patch b/package/qt5/qt5webengine-chromium/0009-Include-cstdint-for-uintptr_t-uint8_t-etc.patch\nnew file mode 100644\nindex 0000000000..1715d425df\n--- /dev/null\n+++ b/package/qt5/qt5webengine-chromium/0009-Include-cstdint-for-uintptr_t-uint8_t-etc.patch\n@@ -0,0 +1,297 @@\n+From 80ddc04dd2398611afd8eafd89f5a6cd81b82363 Mon Sep 17 00:00:00 2001\n+From: Arnout Vandecappelle <arnout@rnout.be>\n+Date: Sun, 18 May 2025 09:59:24 +0200\n+Subject: [PATCH] Include <cstdint> for uintptr_t, uint8_t, etc.\n+\n+GCC 15 adheres more strictly to the standard about which type is defined\n+in which header. As such, uintptr_t, uint8_t, etc. are  no longer\n+available unless cstdint is included.\n+\n+Add #include <cstdint> in the files that gave errors with GCC 15\n+\n+Most (all?) of these fixes are already upstream, but spread out over\n+various commits that don't necessarily apply to our version. Fixing it\n+ourselves is simpler.\n+\n+Signed-off-by: Arnout Vandecappelle <arnout@rnout.be>\n+Upstream: N/A, already fixed and we're very far behind\n+[added additional cstdint imports for qt5.15.18 bump]\n+Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>\n+---\n+ chromium/base/task/thread_pool.h                                | 1 +\n+ chromium/gpu/command_buffer/common/skia_utils.h                 | 1 +\n+ chromium/gpu/command_buffer/service/gpu_fence_manager.h         | 1 +\n+ chromium/net/tools/huffman_trie/trie_entry.h                    | 1 +\n+ .../transport_security_state_entry.h                            | 1 +\n+ chromium/third_party/pdfium/core/fpdfapi/page/cpdf_function.h   | 1 +\n+ .../pdfium/core/fxcodec/jbig2/JBig2_DocumentContext.h           | 1 +\n+ chromium/third_party/pdfium/core/fxcodec/jbig2/jbig2_decoder.h  | 1 +\n+ chromium/third_party/pdfium/third_party/base/span.h             | 1 +\n+ .../perfetto/include/perfetto/ext/tracing/core/slice.h          | 1 +\n+ .../perfetto/include/perfetto/tracing/tracing_backend.h         | 1 +\n+ .../perfetto/src/trace_processor/importers/gzip/gzip_utils.h    | 1 +\n+ chromium/third_party/webrtc/api/fec_controller.h                | 1 +\n+ chromium/third_party/webrtc/api/network_state_predictor.h       | 1 +\n+ chromium/third_party/webrtc/api/task_queue/task_queue_base.h    | 1 +\n+ chromium/third_party/webrtc/common_video/h264/pps_parser.h      | 2 ++\n+ chromium/third_party/webrtc/common_video/h264/sps_parser.h      | 2 ++\n+ .../webrtc/modules/include/module_common_types_public.h         | 1 +\n+ .../third_party/webrtc/modules/video_coding/timestamp_map.h     | 1 +\n+ chromium/third_party/webrtc/video/stats_counter.h               | 1 +\n+ chromium/third_party/woff2/include/woff2/output.h               | 1 +\n+ 21 files changed, 23 insertions(+)\n+\n+diff --git a/chromium/base/task/thread_pool.h b/chromium/base/task/thread_pool.h\n+index 085c249ba58..afc674ca7f6 100644\n+--- a/chromium/base/task/thread_pool.h\n++++ b/chromium/base/task/thread_pool.h\n+@@ -5,6 +5,7 @@\n+ #ifndef BASE_TASK_THREAD_POOL_H_\n+ #define BASE_TASK_THREAD_POOL_H_\n+ \n++#include <cstdint>\n+ #include <memory>\n+ #include <utility>\n+ \n+diff --git a/chromium/gpu/command_buffer/common/skia_utils.h b/chromium/gpu/command_buffer/common/skia_utils.h\n+index 6508d79a1d4..a9f9528f133 100644\n+--- a/chromium/gpu/command_buffer/common/skia_utils.h\n++++ b/chromium/gpu/command_buffer/common/skia_utils.h\n+@@ -5,6 +5,7 @@\n+ #ifndef GPU_COMMAND_BUFFER_COMMON_SKIA_UTILS_H_\n+ #define GPU_COMMAND_BUFFER_COMMON_SKIA_UTILS_H_\n+ \n++#include <cstdint>\n+ #include <memory>\n+ \n+ #include \"base/optional.h\"\n+diff --git a/chromium/gpu/command_buffer/service/gpu_fence_manager.h b/chromium/gpu/command_buffer/service/gpu_fence_manager.h\n+index ee50d6fddd1..576f6e3bc8a 100644\n+--- a/chromium/gpu/command_buffer/service/gpu_fence_manager.h\n++++ b/chromium/gpu/command_buffer/service/gpu_fence_manager.h\n+@@ -5,6 +5,7 @@\n+ #ifndef GPU_COMMAND_BUFFER_SERVICE_GPU_FENCE_MANAGER_H_\n+ #define GPU_COMMAND_BUFFER_SERVICE_GPU_FENCE_MANAGER_H_\n+ \n++#include <cstdint>\n+ #include <memory>\n+ #include <vector>\n+ \n+diff --git a/chromium/net/tools/huffman_trie/trie_entry.h b/chromium/net/tools/huffman_trie/trie_entry.h\n+index fe70260f981..eac6a7fc249 100644\n+--- a/chromium/net/tools/huffman_trie/trie_entry.h\n++++ b/chromium/net/tools/huffman_trie/trie_entry.h\n+@@ -5,6 +5,7 @@\n+ #ifndef NET_TOOLS_HUFFMAN_TRIE_TRIE_ENTRY_H_\n+ #define NET_TOOLS_HUFFMAN_TRIE_TRIE_ENTRY_H_\n+ \n++#include <cstdint>\n+ #include <memory>\n+ #include <string>\n+ #include <vector>\n+diff --git a/chromium/net/tools/transport_security_state_generator/transport_security_state_entry.h b/chromium/net/tools/transport_security_state_generator/transport_security_state_entry.h\n+index 59059d88f6d..fe15bb7429f 100644\n+--- a/chromium/net/tools/transport_security_state_generator/transport_security_state_entry.h\n++++ b/chromium/net/tools/transport_security_state_generator/transport_security_state_entry.h\n+@@ -5,6 +5,7 @@\n+ #ifndef NET_TOOLS_TRANSPORT_SECURITY_STATE_GENERATOR_TRANSPORT_SECURITY_STATE_ENTRY_H_\n+ #define NET_TOOLS_TRANSPORT_SECURITY_STATE_GENERATOR_TRANSPORT_SECURITY_STATE_ENTRY_H_\n+ \n++#include <cstdint>\n+ #include <map>\n+ #include <memory>\n+ #include <string>\n+diff --git a/chromium/third_party/pdfium/core/fpdfapi/page/cpdf_function.h b/chromium/third_party/pdfium/core/fpdfapi/page/cpdf_function.h\n+index fd68b6b49d3..dc7c015d56c 100644\n+--- a/chromium/third_party/pdfium/core/fpdfapi/page/cpdf_function.h\n++++ b/chromium/third_party/pdfium/core/fpdfapi/page/cpdf_function.h\n+@@ -7,6 +7,7 @@\n+ #ifndef CORE_FPDFAPI_PAGE_CPDF_FUNCTION_H_\n+ #define CORE_FPDFAPI_PAGE_CPDF_FUNCTION_H_\n+ \n++#include <cstdint>\n+ #include <memory>\n+ #include <set>\n+ #include <vector>\n+diff --git a/chromium/third_party/pdfium/core/fxcodec/jbig2/JBig2_DocumentContext.h b/chromium/third_party/pdfium/core/fxcodec/jbig2/JBig2_DocumentContext.h\n+index 9bcdd371e79..5921794f1f3 100644\n+--- a/chromium/third_party/pdfium/core/fxcodec/jbig2/JBig2_DocumentContext.h\n++++ b/chromium/third_party/pdfium/core/fxcodec/jbig2/JBig2_DocumentContext.h\n+@@ -7,6 +7,7 @@\n+ #ifndef CORE_FXCODEC_JBIG2_JBIG2_DOCUMENTCONTEXT_H_\n+ #define CORE_FXCODEC_JBIG2_JBIG2_DOCUMENTCONTEXT_H_\n+ \n++#include <cstdint>\n+ #include <list>\n+ #include <memory>\n+ #include <utility>\n+diff --git a/chromium/third_party/pdfium/core/fxcodec/jbig2/jbig2_decoder.h b/chromium/third_party/pdfium/core/fxcodec/jbig2/jbig2_decoder.h\n+index 97867ca851c..a0ac6bd4ba5 100644\n+--- a/chromium/third_party/pdfium/core/fxcodec/jbig2/jbig2_decoder.h\n++++ b/chromium/third_party/pdfium/core/fxcodec/jbig2/jbig2_decoder.h\n+@@ -7,6 +7,7 @@\n+ #ifndef CORE_FXCODEC_JBIG2_JBIG2_DECODER_H_\n+ #define CORE_FXCODEC_JBIG2_JBIG2_DECODER_H_\n+ \n++#include <cstdint>\n+ #include <memory>\n+ \n+ #include \"core/fxcodec/fx_codec_def.h\"\n+diff --git a/chromium/third_party/pdfium/third_party/base/span.h b/chromium/third_party/pdfium/third_party/base/span.h\n+index bb07f43a021..c06dfb87348 100644\n+--- a/chromium/third_party/pdfium/third_party/base/span.h\n++++ b/chromium/third_party/pdfium/third_party/base/span.h\n+@@ -5,6 +5,7 @@\n+ #ifndef THIRD_PARTY_BASE_SPAN_H_\n+ #define THIRD_PARTY_BASE_SPAN_H_\n+ \n++#include <cstdint>\n+ #include <stddef.h>\n+ \n+ #include <algorithm>\n+diff --git a/chromium/third_party/perfetto/include/perfetto/ext/tracing/core/slice.h b/chromium/third_party/perfetto/include/perfetto/ext/tracing/core/slice.h\n+index 4ce66fdeadc..3f3932b2287 100644\n+--- a/chromium/third_party/perfetto/include/perfetto/ext/tracing/core/slice.h\n++++ b/chromium/third_party/perfetto/include/perfetto/ext/tracing/core/slice.h\n+@@ -20,6 +20,7 @@\n+ #include <stddef.h>\n+ #include <string.h>\n+ \n++#include <cstdint>\n+ #include <memory>\n+ #include <string>\n+ #include <vector>\n+diff --git a/chromium/third_party/perfetto/include/perfetto/tracing/tracing_backend.h b/chromium/third_party/perfetto/include/perfetto/tracing/tracing_backend.h\n+index 67b0d2eb51e..3c2462de588 100644\n+--- a/chromium/third_party/perfetto/include/perfetto/tracing/tracing_backend.h\n++++ b/chromium/third_party/perfetto/include/perfetto/tracing/tracing_backend.h\n+@@ -17,6 +17,7 @@\n+ #ifndef INCLUDE_PERFETTO_TRACING_TRACING_BACKEND_H_\n+ #define INCLUDE_PERFETTO_TRACING_TRACING_BACKEND_H_\n+ \n++#include <cstdint>\n+ #include <memory>\n+ #include <string>\n+ \n+diff --git a/chromium/third_party/perfetto/src/trace_processor/importers/gzip/gzip_utils.h b/chromium/third_party/perfetto/src/trace_processor/importers/gzip/gzip_utils.h\n+index 624363ff66f..68783e879c8 100644\n+--- a/chromium/third_party/perfetto/src/trace_processor/importers/gzip/gzip_utils.h\n++++ b/chromium/third_party/perfetto/src/trace_processor/importers/gzip/gzip_utils.h\n+@@ -18,6 +18,7 @@\n+ #define SRC_TRACE_PROCESSOR_IMPORTERS_GZIP_GZIP_UTILS_H_\n+ \n+ #include <memory>\n++#include <cstdint>\n+ \n+ struct z_stream_s;\n+ \n+diff --git a/chromium/third_party/webrtc/api/fec_controller.h b/chromium/third_party/webrtc/api/fec_controller.h\n+index 3e5f7bb2168..87777a53f1c 100644\n+--- a/chromium/third_party/webrtc/api/fec_controller.h\n++++ b/chromium/third_party/webrtc/api/fec_controller.h\n+@@ -11,6 +11,7 @@\n+ #ifndef API_FEC_CONTROLLER_H_\n+ #define API_FEC_CONTROLLER_H_\n+ \n++#include <cstdint>\n+ #include <memory>\n+ #include <vector>\n+ \n+diff --git a/chromium/third_party/webrtc/api/network_state_predictor.h b/chromium/third_party/webrtc/api/network_state_predictor.h\n+index 9cf5ab6f022..2d165baa5da 100644\n+--- a/chromium/third_party/webrtc/api/network_state_predictor.h\n++++ b/chromium/third_party/webrtc/api/network_state_predictor.h\n+@@ -11,6 +11,7 @@\n+ #ifndef API_NETWORK_STATE_PREDICTOR_H_\n+ #define API_NETWORK_STATE_PREDICTOR_H_\n+ \n++#include <cstdint>\n+ #include <memory>\n+ #include <vector>\n+ \n+diff --git a/chromium/third_party/webrtc/api/task_queue/task_queue_base.h b/chromium/third_party/webrtc/api/task_queue/task_queue_base.h\n+index 90b1efd31eb..63526a7383b 100644\n+--- a/chromium/third_party/webrtc/api/task_queue/task_queue_base.h\n++++ b/chromium/third_party/webrtc/api/task_queue/task_queue_base.h\n+@@ -10,6 +10,7 @@\n+ #ifndef API_TASK_QUEUE_TASK_QUEUE_BASE_H_\n+ #define API_TASK_QUEUE_TASK_QUEUE_BASE_H_\n+ \n++#include <cstdint>\n+ #include <memory>\n+ \n+ #include \"api/task_queue/queued_task.h\"\n+diff --git a/chromium/third_party/webrtc/common_video/h264/pps_parser.h b/chromium/third_party/webrtc/common_video/h264/pps_parser.h\n+index d6c31b06887..d02f544eecc 100644\n+--- a/chromium/third_party/webrtc/common_video/h264/pps_parser.h\n++++ b/chromium/third_party/webrtc/common_video/h264/pps_parser.h\n+@@ -11,6 +11,8 @@\n+ #ifndef COMMON_VIDEO_H264_PPS_PARSER_H_\n+ #define COMMON_VIDEO_H264_PPS_PARSER_H_\n+ \n++#include <cstdint>\n++\n+ #include \"absl/types/optional.h\"\n+ \n+ namespace rtc {\n+diff --git a/chromium/third_party/webrtc/common_video/h264/sps_parser.h b/chromium/third_party/webrtc/common_video/h264/sps_parser.h\n+index 76e627d27a3..0c0937eb227 100644\n+--- a/chromium/third_party/webrtc/common_video/h264/sps_parser.h\n++++ b/chromium/third_party/webrtc/common_video/h264/sps_parser.h\n+@@ -11,6 +11,8 @@\n+ #ifndef COMMON_VIDEO_H264_SPS_PARSER_H_\n+ #define COMMON_VIDEO_H264_SPS_PARSER_H_\n+ \n++#include <cstdint>\n++\n+ #include \"absl/types/optional.h\"\n+ \n+ namespace rtc {\n+diff --git a/chromium/third_party/webrtc/modules/include/module_common_types_public.h b/chromium/third_party/webrtc/modules/include/module_common_types_public.h\n+index 345e45ce127..8338a514624 100644\n+--- a/chromium/third_party/webrtc/modules/include/module_common_types_public.h\n++++ b/chromium/third_party/webrtc/modules/include/module_common_types_public.h\n+@@ -11,6 +11,7 @@\n+ #ifndef MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_\n+ #define MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_\n+ \n++#include <cstdint>\n+ #include <limits>\n+ \n+ #include \"absl/types/optional.h\"\n+diff --git a/chromium/third_party/webrtc/modules/video_coding/timestamp_map.h b/chromium/third_party/webrtc/modules/video_coding/timestamp_map.h\n+index c85666c9aa0..dfb90e447d8 100644\n+--- a/chromium/third_party/webrtc/modules/video_coding/timestamp_map.h\n++++ b/chromium/third_party/webrtc/modules/video_coding/timestamp_map.h\n+@@ -11,6 +11,7 @@\n+ #ifndef MODULES_VIDEO_CODING_TIMESTAMP_MAP_H_\n+ #define MODULES_VIDEO_CODING_TIMESTAMP_MAP_H_\n+ \n++#include <cstdint>\n+ #include <memory>\n+ \n+ namespace webrtc {\n+diff --git a/chromium/third_party/webrtc/video/stats_counter.h b/chromium/third_party/webrtc/video/stats_counter.h\n+index fb6017f415f..ed5530ca0f7 100644\n+--- a/chromium/third_party/webrtc/video/stats_counter.h\n++++ b/chromium/third_party/webrtc/video/stats_counter.h\n+@@ -11,6 +11,7 @@\n+ #ifndef VIDEO_STATS_COUNTER_H_\n+ #define VIDEO_STATS_COUNTER_H_\n+ \n++#include <cstdint>\n+ #include <memory>\n+ #include <string>\n+ \n+diff --git a/chromium/third_party/woff2/include/woff2/output.h b/chromium/third_party/woff2/include/woff2/output.h\n+index c325f67be72..5c4dc4d1850 100644\n+--- a/chromium/third_party/woff2/include/woff2/output.h\n++++ b/chromium/third_party/woff2/include/woff2/output.h\n+@@ -10,6 +10,7 @@\n+ #define WOFF2_WOFF2_OUT_H_\n+ \n+ #include <algorithm>\n++#include <cstdint>\n+ #include <cstring>\n+ #include <memory>\n+ #include <string>\ndiff --git a/package/qt5/qt5webengine-chromium/0010-Fix-building-with-system-libxml2.patch b/package/qt5/qt5webengine-chromium/0010-Fix-building-with-system-libxml2.patch\ndeleted file mode 100644\nindex 4a4dade203..0000000000\n--- a/package/qt5/qt5webengine-chromium/0010-Fix-building-with-system-libxml2.patch\n+++ /dev/null\n@@ -1,57 +0,0 @@\n-From 67ceca4b097a2d3de28020c9461641d9670009cc Mon Sep 17 00:00:00 2001\n-From: Martin Negyokru <negyokru@inf.u-szeged.hu>\n-Date: Thu, 7 Dec 2023 15:37:53 +0100\n-Subject: [PATCH] Fix building with system libxml2\n-\n-Libxml2 2.12.0 has changed the const-ness of the\n-xmlError pointers, which results in a build error.\n-\n-Change-Id: Id86fcfbfe004f89109808b9bdb11c01133553884\n-Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/523633\n-Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>\n-(cherry picked from commit 159dff274a7f32f9b53711df6a5b6fbae8c64b4a)\n-Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/525714\n-Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>\n-Upstream: https://github.com/qt/qtwebengine-chromium/commit/c98d28f2f0f23721\n-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>\n----\n- .../third_party/blink/renderer/core/xml/xslt_processor.h     | 5 +++++\n- .../blink/renderer/core/xml/xslt_processor_libxslt.cc        | 4 ++++\n- 2 files changed, 9 insertions(+)\n-\n-diff --git a/chromium/third_party/blink/renderer/core/xml/xslt_processor.h b/chromium/third_party/blink/renderer/core/xml/xslt_processor.h\n-index e501cf17c37..e4550ec5009 100644\n---- a/chromium/third_party/blink/renderer/core/xml/xslt_processor.h\n-+++ b/chromium/third_party/blink/renderer/core/xml/xslt_processor.h\n-@@ -79,7 +79,12 @@ class XSLTProcessor final : public ScriptWrappable {\n- \n-   void reset();\n- \n-+#if LIBXML_VERSION >= 21200\n-+  static void ParseErrorFunc(void* user_data, const xmlError*);\n-+#else\n-   static void ParseErrorFunc(void* user_data, xmlError*);\n-+#endif\n-+\n-   static void GenericErrorFunc(void* user_data, const char* msg, ...);\n- \n-   // Only for libXSLT callbacks\n-diff --git a/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc b/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc\n-index b3ce345f320..2174d1df1da 100644\n---- a/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc\n-+++ b/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc\n-@@ -60,7 +60,11 @@ void XSLTProcessor::GenericErrorFunc(void*, const char*, ...) {\n-   // It would be nice to do something with this error message.\n- }\n- \n-+#if LIBXML_VERSION >= 21200\n-+void XSLTProcessor::ParseErrorFunc(void* user_data, const xmlError* error) {\n-+#else\n- void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError* error) {\n-+#endif\n-   FrameConsole* console = static_cast<FrameConsole*>(user_data);\n-   if (!console)\n-     return;\n--- \n-2.25.1\n-\ndiff --git a/package/qt5/qt5webengine-chromium/0012-Include-cstdint-for-uintptr_t-uint8_t-etc.patch b/package/qt5/qt5webengine-chromium/0012-Include-cstdint-for-uintptr_t-uint8_t-etc.patch\ndeleted file mode 100644\nindex f68f266e39..0000000000\n--- a/package/qt5/qt5webengine-chromium/0012-Include-cstdint-for-uintptr_t-uint8_t-etc.patch\n+++ /dev/null\n@@ -1,101 +0,0 @@\n-From 80ddc04dd2398611afd8eafd89f5a6cd81b82363 Mon Sep 17 00:00:00 2001\n-From: Arnout Vandecappelle <arnout@rnout.be>\n-Date: Sun, 18 May 2025 09:59:24 +0200\n-Subject: [PATCH] Include <cstdint> for uintptr_t, uint8_t, etc.\n-\n-GCC 15 adheres more strictly to the standard about which type is defined\n-in which header. As such, uintptr_t, uint8_t, etc. are  no longer\n-available unless cstdint is included.\n-\n-Add #include <cstdint> in the files that gave errors with GCC 15\n-\n-Most (all?) of these fixes are already upstream, but spread out over\n-various commits that don't necessarily apply to our version. Fixing it\n-ourselves is simpler.\n-\n-Signed-off-by: Arnout Vandecappelle <arnout@rnout.be>\n-Upstream: N/A, already fixed and we're very far behind\n----\n- chromium/base/task/thread_pool.h                                 | 1 +\n- chromium/net/tools/huffman_trie/trie_entry.h                     | 1 +\n- .../transport_security_state_entry.h                             | 1 +\n- .../perfetto/include/perfetto/ext/tracing/core/slice.h           | 1 +\n- .../perfetto/include/perfetto/tracing/tracing_backend.h          | 1 +\n- .../perfetto/src/trace_processor/importers/gzip/gzip_utils.h     | 1 +\n- 6 files changed, 6 insertions(+)\n-\n-diff --git a/chromium/base/task/thread_pool.h b/chromium/base/task/thread_pool.h\n-index 085c249ba58e6..afc674ca7f6fb 100644\n---- a/chromium/base/task/thread_pool.h\n-+++ b/chromium/base/task/thread_pool.h\n-@@ -5,6 +5,7 @@\n- #ifndef BASE_TASK_THREAD_POOL_H_\n- #define BASE_TASK_THREAD_POOL_H_\n- \n-+#include <cstdint>\n- #include <memory>\n- #include <utility>\n- \n-diff --git a/chromium/net/tools/huffman_trie/trie_entry.h b/chromium/net/tools/huffman_trie/trie_entry.h\n-index fe70260f981f2..eac6a7fc2499d 100644\n---- a/chromium/net/tools/huffman_trie/trie_entry.h\n-+++ b/chromium/net/tools/huffman_trie/trie_entry.h\n-@@ -5,6 +5,7 @@\n- #ifndef NET_TOOLS_HUFFMAN_TRIE_TRIE_ENTRY_H_\n- #define NET_TOOLS_HUFFMAN_TRIE_TRIE_ENTRY_H_\n- \n-+#include <cstdint>\n- #include <memory>\n- #include <string>\n- #include <vector>\n-diff --git a/chromium/net/tools/transport_security_state_generator/transport_security_state_entry.h b/chromium/net/tools/transport_security_state_generator/transport_security_state_entry.h\n-index 59059d88f6df2..fe15bb7429f6d 100644\n---- a/chromium/net/tools/transport_security_state_generator/transport_security_state_entry.h\n-+++ b/chromium/net/tools/transport_security_state_generator/transport_security_state_entry.h\n-@@ -5,6 +5,7 @@\n- #ifndef NET_TOOLS_TRANSPORT_SECURITY_STATE_GENERATOR_TRANSPORT_SECURITY_STATE_ENTRY_H_\n- #define NET_TOOLS_TRANSPORT_SECURITY_STATE_GENERATOR_TRANSPORT_SECURITY_STATE_ENTRY_H_\n- \n-+#include <cstdint>\n- #include <map>\n- #include <memory>\n- #include <string>\n-diff --git a/chromium/third_party/perfetto/include/perfetto/ext/tracing/core/slice.h b/chromium/third_party/perfetto/include/perfetto/ext/tracing/core/slice.h\n-index 4ce66fdeadc3a..3f3932b228737 100644\n---- a/chromium/third_party/perfetto/include/perfetto/ext/tracing/core/slice.h\n-+++ b/chromium/third_party/perfetto/include/perfetto/ext/tracing/core/slice.h\n-@@ -20,6 +20,7 @@\n- #include <stddef.h>\n- #include <string.h>\n- \n-+#include <cstdint>\n- #include <memory>\n- #include <string>\n- #include <vector>\n-diff --git a/chromium/third_party/perfetto/include/perfetto/tracing/tracing_backend.h b/chromium/third_party/perfetto/include/perfetto/tracing/tracing_backend.h\n-index 67b0d2eb51e0d..3c2462de588dd 100644\n---- a/chromium/third_party/perfetto/include/perfetto/tracing/tracing_backend.h\n-+++ b/chromium/third_party/perfetto/include/perfetto/tracing/tracing_backend.h\n-@@ -17,6 +17,7 @@\n- #ifndef INCLUDE_PERFETTO_TRACING_TRACING_BACKEND_H_\n- #define INCLUDE_PERFETTO_TRACING_TRACING_BACKEND_H_\n- \n-+#include <cstdint>\n- #include <memory>\n- #include <string>\n- \n-diff --git a/chromium/third_party/perfetto/src/trace_processor/importers/gzip/gzip_utils.h b/chromium/third_party/perfetto/src/trace_processor/importers/gzip/gzip_utils.h\n-index 624363ff66f90..68783e879c8e0 100644\n---- a/chromium/third_party/perfetto/src/trace_processor/importers/gzip/gzip_utils.h\n-+++ b/chromium/third_party/perfetto/src/trace_processor/importers/gzip/gzip_utils.h\n-@@ -18,6 +18,7 @@\n- #define SRC_TRACE_PROCESSOR_IMPORTERS_GZIP_GZIP_UTILS_H_\n- \n- #include <memory>\n-+#include <cstdint>\n- \n- struct z_stream_s;\n- \n--- \n-2.49.0\n-\ndiff --git a/package/qt5/qt5webengine-chromium/qt5webengine-chromium.hash b/package/qt5/qt5webengine-chromium/qt5webengine-chromium.hash\nindex 8026c3f697..63df676a9d 100644\n--- a/package/qt5/qt5webengine-chromium/qt5webengine-chromium.hash\n+++ b/package/qt5/qt5webengine-chromium/qt5webengine-chromium.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  fb0953b0cc7b980f128d5f66b8345eb4fbf2e05b70db3926958fb657953b64dc  qtwebengine-chromium-18c9261dc5b8aa57a0bdd5b62ce6f648cca1ef5e.tar.bz2\n+sha256  c1c73b6b72a90bb345e0d4365b9e69ce05e898d1c4480a4e9444e39a1c2801da  qtwebengine-chromium-85337c28bae7d7d2c79282c4f4c92435cd7649b8.tar.bz2\n \n # Locally calculated with:\n # for i in $(find * -type f \\( -iname 'license*' -o -iname 'copying*' -o -name 'APPLE_LICENSE' -o -name 'Copyright' -o -path '*/license_texts/*' -o -path '*/licenses/*' \\) -a -not -name '*.cc' -not -name '*.py' -not -name '*.pyc' -not -name '*.h' -not -name 'LICENSE.sha1' -not -name 'licensecheck.pl*' -not -name 'license.after' -not -name 'license.before' -not -path 'chromium/third_party/catapult/*') ; do echo -n \"sha256  \" ; sha256sum $i ; done | sort --key=3\ndiff --git a/package/qt5/qt5webengine-chromium/qt5webengine-chromium.mk b/package/qt5/qt5webengine-chromium/qt5webengine-chromium.mk\nindex fc48945e0d..ce1f204b3d 100644\n--- a/package/qt5/qt5webengine-chromium/qt5webengine-chromium.mk\n+++ b/package/qt5/qt5webengine-chromium/qt5webengine-chromium.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5WEBENGINE_CHROMIUM_VERSION = 18c9261dc5b8aa57a0bdd5b62ce6f648cca1ef5e\n+QT5WEBENGINE_CHROMIUM_VERSION = 85337c28bae7d7d2c79282c4f4c92435cd7649b8\n QT5WEBENGINE_CHROMIUM_SITE = $(QT5_SITE)/qtwebengine-chromium/-/archive/$(QT5WEBENGINE_CHROMIUM_VERSION)\n QT5WEBENGINE_CHROMIUM_SOURCE = qtwebengine-chromium-$(QT5WEBENGINE_CHROMIUM_VERSION).tar.bz2\n QT5WEBENGINE_CHROMIUM_PATCH_DEPENDENCIES = qt5webengine-chromium-catapult\ndiff --git a/package/qt5/qt5webengine/0002-Add-python3-build-support.patch b/package/qt5/qt5webengine/0002-Add-python3-build-support.patch\ndeleted file mode 100644\nindex 18fc1c1de0..0000000000\n--- a/package/qt5/qt5webengine/0002-Add-python3-build-support.patch\n+++ /dev/null\n@@ -1,168 +0,0 @@\n-From 1e299a6c9eeb08555208b76623e453d8ab96b6e3 Mon Sep 17 00:00:00 2001\n-From: James Hilliard <james.hilliard1@gmail.com>\n-Date: Fri, 4 Feb 2022 16:16:35 -0700\n-Subject: [PATCH] Add python3 build support\n-\n-Adapted from:\n-https://github.com/archlinux/svntogit-packages/blob/6edf5f1aaea952d046aff89a2e0175258fe77361/trunk/qt5-webengine-python3.patch\n-\n-Signed-off-by: James Hilliard <james.hilliard1@gmail.com>\n----\n- configure.pri                     | 13 ++++++-------\n- mkspecs/features/functions.prf    |  6 +++---\n- src/buildtools/config/support.pri | 10 +++++-----\n- src/buildtools/configure.json     | 18 +++++++++---------\n- 4 files changed, 23 insertions(+), 24 deletions(-)\n-\n-diff --git a/configure.pri b/configure.pri\n-index e072961f..6fec7b20 100644\n---- a/configure.pri\n-+++ b/configure.pri\n-@@ -13,8 +13,7 @@ defineTest(isPythonVersionSupported) {\n-     python_version = $$split(python_version, ',')\n-     python_major_version = $$first(python_version)\n-     greaterThan(python_major_version, 2) {\n--        qtLog(\"Python version 3 is not supported by Chromium.\")\n--        return(false)\n-+        return(true)\n-     }\n-     python_minor_version = $$member(python_version, 1)\n-     python_patch_version = $$member(python_version, 2)\n-@@ -52,10 +51,10 @@ defineTest(qtConfReport_jumboBuild) {\n-     qtConfReportPadded($${1}, $$mergeLimit)\n- }\n- \n--defineTest(qtConfTest_detectPython2) {\n--    python = $$qtConfFindInPath(\"python2$$EXE_SUFFIX\")\n-+defineTest(qtConfTest_detectPython) {\n-+    python = $$qtConfFindInPath(\"python$$EXE_SUFFIX\")\n-     isEmpty(python) {\n--        qtLog(\"'python2$$EXE_SUFFIX' not found in PATH. Checking for 'python$$EXE_SUFFIX'.\")\n-+        qtLog(\"'python$$EXE_SUFFIX' not found in PATH. Checking for 'python$$EXE_SUFFIX'.\")\n-         python = $$qtConfFindInPath(\"python$$EXE_SUFFIX\")\n-     }\n-     isEmpty(python) {\n-@@ -63,11 +62,11 @@ defineTest(qtConfTest_detectPython2) {\n-         return(false)\n-     }\n-     !isPythonVersionSupported($$python) {\n--        qtLog(\"A suitable Python 2 executable could not be located.\")\n-+        qtLog(\"A suitable Python executable could not be located.\")\n-         return(false)\n-     }\n- \n--    # Make tests.python2.location available in configure.json.\n-+    # Make tests.python.location available in configure.json.\n-     $${1}.location = $$clean_path($$python)\n-     export($${1}.location)\n-     $${1}.cache += location\n-diff --git a/mkspecs/features/functions.prf b/mkspecs/features/functions.prf\n-index 2750d707..9fda13d0 100644\n---- a/mkspecs/features/functions.prf\n-+++ b/mkspecs/features/functions.prf\n-@@ -39,11 +39,11 @@ defineReplace(which) {\n- \n- # Returns the unquoted path to the python executable.\n- defineReplace(pythonPath) {\n--    isEmpty(QMAKE_PYTHON2) {\n-+    isEmpty(QMAKE_PYTHON) {\n-         # Fallback for building QtWebEngine with Qt < 5.8\n--        QMAKE_PYTHON2 = python\n-+        QMAKE_PYTHON = python\n-     }\n--    return($$QMAKE_PYTHON2)\n-+    return($$QMAKE_PYTHON)\n- }\n- \n- # Returns the python executable for use with shell / make targets.\n-diff --git a/src/buildtools/config/support.pri b/src/buildtools/config/support.pri\n-index e7f869a1..1bf2c5d7 100644\n---- a/src/buildtools/config/support.pri\n-+++ b/src/buildtools/config/support.pri\n-@@ -21,7 +21,7 @@ defineReplace(qtwebengine_checkWebEngineCoreError) {\n-     !qtwebengine_checkForGperf(QtWebEngine):return(false)\n-     !qtwebengine_checkForBison(QtWebEngine):return(false)\n-     !qtwebengine_checkForFlex(QtWebEngine):return(false)\n--    !qtwebengine_checkForPython2(QtWebEngine):return(false)\n-+    !qtwebengine_checkForPython(QtWebEngine):return(false)\n-     !qtwebengine_checkForNodejs(QtWebEngine):return(false)\n-     !qtwebengine_checkForSanitizer(QtWebEngine):return(false)\n-     linux:!qtwebengine_checkForPkgCfg(QtWebEngine):return(false)\n-@@ -51,7 +51,7 @@ defineReplace(qtwebengine_checkPdfError) {\n-     !qtwebengine_checkForGperf(QtPdf):return(false)\n-     !qtwebengine_checkForBison(QtPdf):return(false)\n-     !qtwebengine_checkForFlex(QtPdf):return(false)\n--    !qtwebengine_checkForPython2(QtPdf):return(false)\n-+    !qtwebengine_checkForPython(QtPdf):return(false)\n-     !qtwebengine_checkForSanitizer(QtPdf):return(false)\n-     linux:!qtwebengine_checkForPkgCfg(QtPdf):return(false)\n-     linux:!qtwebengine_checkForHostPkgCfg(QtPdf):return(false)\n-@@ -143,10 +143,10 @@ defineTest(qtwebengine_checkForFlex) {\n-     return(true)\n- }\n- \n--defineTest(qtwebengine_checkForPython2) {\n-+defineTest(qtwebengine_checkForPython) {\n-     module = $$1\n--    !qtConfig(webengine-python2) {\n--        qtwebengine_skipBuild(\"Python version 2 (2.7.5 or later) is required to build $${module}.\")\n-+    !qtConfig(webengine-python) {\n-+        qtwebengine_skipBuild(\"Python is required to build $${module}.\")\n-         return(false)\n-     }\n-     return(true)\n-diff --git a/src/buildtools/configure.json b/src/buildtools/configure.json\n-index 88d1790c..032aa665 100644\n---- a/src/buildtools/configure.json\n-+++ b/src/buildtools/configure.json\n-@@ -295,9 +295,9 @@\n-             \"label\": \"system ninja\",\n-             \"type\": \"detectNinja\"\n-         },\n--        \"webengine-python2\": {\n--            \"label\": \"python2\",\n--            \"type\": \"detectPython2\",\n-+        \"webengine-python\": {\n-+            \"label\": \"python\",\n-+            \"type\": \"detectPython\",\n-             \"log\": \"location\"\n-         },\n-         \"webengine-winversion\": {\n-@@ -374,7 +374,7 @@\n-                          && features.webengine-gperf\n-                          && features.webengine-bison\n-                          && features.webengine-flex\n--                         && features.webengine-python2\n-+                         && features.webengine-python\n-                          && features.webengine-nodejs\n-                          && (!config.sanitizer || features.webengine-sanitizer)\n-                          && (!config.linux || features.pkg-config)\n-@@ -400,7 +400,7 @@\n-                          && features.webengine-gperf\n-                          && features.webengine-bison\n-                          && features.webengine-flex\n--                         && features.webengine-python2\n-+                         && features.webengine-python\n-                          && (!config.sanitizer || features.webengine-sanitizer)\n-                          && (!config.linux || features.pkg-config)\n-                          && (!config.linux || features.webengine-host-pkg-config)\n-@@ -423,12 +423,12 @@\n-             \"autoDetect\": \"features.private_tests\",\n-             \"output\": [ \"privateFeature\" ]\n-         },\n--        \"webengine-python2\": {\n--            \"label\": \"python2\",\n--            \"condition\": \"tests.webengine-python2\",\n-+        \"webengine-python\": {\n-+            \"label\": \"python\",\n-+            \"condition\": \"tests.webengine-python\",\n-             \"output\": [\n-                 \"privateFeature\",\n--                { \"type\": \"varAssign\", \"name\": \"QMAKE_PYTHON2\", \"value\": \"tests.webengine-python2.location\" }\n-+                { \"type\": \"varAssign\", \"name\": \"QMAKE_PYTHON\", \"value\": \"tests.webengine-python.location\" }\n-             ]\n-         },\n-         \"webengine-gperf\": {\n--- \n-2.25.1\n-\ndiff --git a/package/qt5/qt5webengine/0003-configure.pri-remove-some-of-the-thumb-detection-log.patch b/package/qt5/qt5webengine/0002-configure.pri-remove-some-of-the-thumb-detection-log.patch\nsimilarity index 96%\nrename from package/qt5/qt5webengine/0003-configure.pri-remove-some-of-the-thumb-detection-log.patch\nrename to package/qt5/qt5webengine/0002-configure.pri-remove-some-of-the-thumb-detection-log.patch\nindex 57ed3558bc..1ad103cd0e 100644\n--- a/package/qt5/qt5webengine/0003-configure.pri-remove-some-of-the-thumb-detection-log.patch\n+++ b/package/qt5/qt5webengine/0002-configure.pri-remove-some-of-the-thumb-detection-log.patch\n@@ -46,10 +46,10 @@ upstream, so not sent.\n  1 file changed, 8 deletions(-)\n \n diff --git a/configure.pri b/configure.pri\n-index 8da334c83..3ff298e9f 100644\n+index cb53c93b0..73a0e7a2a 100644\n --- a/configure.pri\n +++ b/configure.pri\n-@@ -370,14 +370,6 @@ defineTest(qtConfTest_hasThumbFlag) {\n+@@ -384,14 +384,6 @@ defineTest(qtConfTest_hasThumbFlag) {\n      !isEmpty(FLAG): return(true)\n      FLAG = $$qtwebengine_extractCFlag(\"-marm\")\n      !isEmpty(FLAG): return(false)\ndiff --git a/package/qt5/qt5webengine/qt5webengine.hash b/package/qt5/qt5webengine/qt5webengine.hash\nindex fcd6d4d3d6..fe140df9ae 100644\n--- a/package/qt5/qt5webengine/qt5webengine.hash\n+++ b/package/qt5/qt5webengine/qt5webengine.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  f760fbc14fec8fed3485cb757986e459f7b150cfc8484aced1116158f6b8a656  qtwebengine-v5.15.14-lts.tar.bz2\n+sha256  8fa9d026fe0d04cb436ab7a66cdf249d189a91b61c565a1564a9bf05c7c73f7a  qtwebengine-v5.15.18-lts.tar.bz2\n \n # Locally calculated\n sha256  f34787ef0342c614b667186a6ec2f5d6b9d650e30142a2788a589a89743e88e9  LICENSE.Chromium\ndiff --git a/package/qt5/qt5websockets/qt5websockets.hash b/package/qt5/qt5websockets/qt5websockets.hash\nindex c7fe153f7c..212b6829b5 100644\n--- a/package/qt5/qt5websockets/qt5websockets.hash\n+++ b/package/qt5/qt5websockets/qt5websockets.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  00c915dc0f909d91c13aae4fb39e83e7c4bb5b8c6ad98de9f4e1e44f699cc605  qtwebsockets-dbbdc64b804f7c4d0ed92198aaab49b07fa15e7f.tar.bz2\n+sha256  565f37e5d4c497c0b60a3411afe64d11f254c7fbc1e558c39b77b41cabb39ebf  qtwebsockets-0f910acb737cefc889ce1088fc60d15bc18efe9c.tar.bz2\n \n # Hashes for license files:\n sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSE.GPL2\ndiff --git a/package/qt5/qt5websockets/qt5websockets.mk b/package/qt5/qt5websockets/qt5websockets.mk\nindex 565894e0ba..c3a97adbe0 100644\n--- a/package/qt5/qt5websockets/qt5websockets.mk\n+++ b/package/qt5/qt5websockets/qt5websockets.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5WEBSOCKETS_VERSION = dbbdc64b804f7c4d0ed92198aaab49b07fa15e7f\n+QT5WEBSOCKETS_VERSION = 0f910acb737cefc889ce1088fc60d15bc18efe9c\n QT5WEBSOCKETS_SITE = $(QT5_SITE)/qtwebsockets/-/archive/$(QT5WEBSOCKETS_VERSION)\n QT5WEBSOCKETS_SOURCE = qtwebsockets-$(QT5WEBSOCKETS_VERSION).tar.bz2\n QT5WEBSOCKETS_INSTALL_STAGING = YES\ndiff --git a/package/qt5/qt5webview/qt5webview.hash b/package/qt5/qt5webview/qt5webview.hash\nindex 55aedd54e6..dbaa068d20 100644\n--- a/package/qt5/qt5webview/qt5webview.hash\n+++ b/package/qt5/qt5webview/qt5webview.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  7b5bf69f3037f55a8ff7b9e153bfa5a42dcdecb322ce2749ace8f11562a0780d  qtwebview-bbb1891595aba23ff3c6d137aa74442f9e54479b.tar.bz2\n+sha256  efcc711f71fdccd58ea3d43c5ca259a38b99222882459de545e81614963baaba  qtwebview-34342073a59f3a27ef3de02f6b21337c4f8db6cf.tar.bz2\n \n # Hashes for license files:\n sha256  ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d  LICENSE.FDL\ndiff --git a/package/qt5/qt5webview/qt5webview.mk b/package/qt5/qt5webview/qt5webview.mk\nindex 310bfbba42..2b3e554ac3 100644\n--- a/package/qt5/qt5webview/qt5webview.mk\n+++ b/package/qt5/qt5webview/qt5webview.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5WEBVIEW_VERSION = bbb1891595aba23ff3c6d137aa74442f9e54479b\n+QT5WEBVIEW_VERSION = 34342073a59f3a27ef3de02f6b21337c4f8db6cf\n QT5WEBVIEW_SITE = $(QT5_SITE)/qtwebview/-/archive/$(QT5WEBVIEW_VERSION)\n QT5WEBVIEW_SOURCE = qtwebview-$(QT5WEBVIEW_VERSION).tar.bz2\n QT5WEBVIEW_DEPENDENCIES = qt5webengine\ndiff --git a/package/qt5/qt5x11extras/qt5x11extras.hash b/package/qt5/qt5x11extras/qt5x11extras.hash\nindex a84df3f2e2..07cda343b6 100644\n--- a/package/qt5/qt5x11extras/qt5x11extras.hash\n+++ b/package/qt5/qt5x11extras/qt5x11extras.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  85943a927c6e07a2a7b2cdf2b6006b554cd9b52271d8892f6475fe9db67d16f3  qtx11extras-6c3605fcb3b34e55951f597e06c135d97dfa6cd7.tar.bz2\n+sha256  b10784b71e6ed9451d4b52c74e512f4bb61f1fed1a1da6c263210935bdbbbd3a  qtx11extras-c44c4fa86fa0794c25baef4ee1f6272aca8c511a.tar.bz2\n \n # Hashes for license files:\n sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSE.GPL2\ndiff --git a/package/qt5/qt5x11extras/qt5x11extras.mk b/package/qt5/qt5x11extras/qt5x11extras.mk\nindex 922730c4d7..93e61677de 100644\n--- a/package/qt5/qt5x11extras/qt5x11extras.mk\n+++ b/package/qt5/qt5x11extras/qt5x11extras.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5X11EXTRAS_VERSION = 6c3605fcb3b34e55951f597e06c135d97dfa6cd7\n+QT5X11EXTRAS_VERSION = c44c4fa86fa0794c25baef4ee1f6272aca8c511a\n QT5X11EXTRAS_SITE = $(QT5_SITE)/qtx11extras/-/archive/$(QT5X11EXTRAS_VERSION)\n QT5X11EXTRAS_SOURCE = qtx11extras-$(QT5X11EXTRAS_VERSION).tar.bz2\n QT5X11EXTRAS_INSTALL_STAGING = YES\ndiff --git a/package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash b/package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash\nindex 9531c02e53..e97ad378e7 100644\n--- a/package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash\n+++ b/package/qt5/qt5xmlpatterns/qt5xmlpatterns.hash\n@@ -1,5 +1,5 @@\n # Locally calculated\n-sha256  2dcac1941b2510ea6fd85fe700fead9443f737e93cc12bf9b90dc6b71ff8d844  qtxmlpatterns-087f6f35bd027f940818b1696d0aad822e034377.tar.bz2\n+sha256  ef029d2ce7ce5226d777640783b2d953bf57b23e9d3be3c08149b838e45d0a31  qtxmlpatterns-0b644263abca66503db1ce8a4e126cf358a34685.tar.bz2\n \n # Hashes for license files:\n sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  LICENSE.GPL2\ndiff --git a/package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk b/package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk\nindex d346d92f7b..b098cb8034 100644\n--- a/package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk\n+++ b/package/qt5/qt5xmlpatterns/qt5xmlpatterns.mk\n@@ -4,7 +4,7 @@\n #\n ################################################################################\n \n-QT5XMLPATTERNS_VERSION = 087f6f35bd027f940818b1696d0aad822e034377\n+QT5XMLPATTERNS_VERSION = 0b644263abca66503db1ce8a4e126cf358a34685\n QT5XMLPATTERNS_SITE = $(QT5_SITE)/qtxmlpatterns/-/archive/$(QT5XMLPATTERNS_VERSION)\n QT5XMLPATTERNS_SOURCE = qtxmlpatterns-$(QT5XMLPATTERNS_VERSION).tar.bz2\n QT5XMLPATTERNS_INSTALL_STAGING = YES\n",
    "prefixes": [
        "v2",
        "5/5"
    ]
}