Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pyside 6.8.0, qt* 6.8.1 #202172

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 2 additions & 10 deletions Formula/p/pyside.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
class Pyside < Formula

Check warning on line 1 in Formula/p/pyside.rb

View workflow job for this annotation

GitHub Actions / macOS 15-arm64

No bottle built for pyside!

pyside has unbottled dependencies, so a bottle will not be built.

Check notice on line 1 in Formula/p/pyside.rb

View workflow job for this annotation

GitHub Actions / macOS 14-arm64

Bottle cache hit

Bottle for pyside built at 6445ab8cce4 (Merge 151f435cbaccbeab665e15c6bbe426f4dc2d2079 into bb74e52d75c83147270282e17286f46505dc640f, 2024-12-23)
include Language::Python::Virtualenv

desc "Official Python bindings for Qt"
homepage "https://wiki.qt.io/Qt_for_Python"
url "https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-6.7.3-src/pyside-setup-everywhere-src-6.7.3.tar.xz"
sha256 "a4c414be013d5051a2d10a9a1151e686488a3172c08a57461ea04b0a0ab74e09"
url "https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-6.8.0.2-src/pyside-setup-everywhere-src-6.8.0.tar.xz"
sha256 "1a1a219a8f327e340d258275fad3a9f261b8f04bc57041747e73dd6ad252b4e1"
# NOTE: We omit some licenses even though they are in SPDX-License-Identifier or LICENSES/ directory:
# 1. LicenseRef-Qt-Commercial is removed from "OR" options as non-free
# 2. GFDL-1.3-no-invariants-only is only used by not installed docs, e.g. sources/{pyside6,shiboken6}/doc
Expand All @@ -14,7 +14,6 @@
{ "GPL-3.0-only" => { with: "Qt-GPL-exception-1.0" } },
{ any_of: ["LGPL-3.0-only", "GPL-2.0-only", "GPL-3.0-only"] },
]
revision 1

livecheck do
url "https://download.qt.io/official_releases/QtForPython/pyside6/"
Expand Down Expand Up @@ -53,7 +52,7 @@
"python3.13"
end

def install

Check failure on line 55 in Formula/p/pyside.rb

View workflow job for this annotation

GitHub Actions / macOS 13-arm64

`brew install --verbose --formula --build-bottle pyside` failed on macOS Ventura (13) on Apple Silicon!

Already downloaded: /Users/brew/Library/Caches/Homebrew/downloads/d345865e422a73141835d55f0013f9506c08956cac523f0ff8668268f488f4c2--llvm--19.1.6.arm64_ventura.bottle.tar.gz ==> Verifying checksum for 'd345865e422a73141835d55f0013f9506c08956cac523f0ff8668268f488f4c2--llvm--19.1.6.arm64_ventura.bottle.tar.gz' ==> Fetching qt ==> Downloading https://ghcr.io/v2/homebrew/core/qt/manifests/6.8.1 /usr/bin/env /opt/homebrew/Library/Homebrew/shims/shared/curl --disable --cookie /dev/null --globoff --show-error --user-agent Homebrew/4.4.13-11-g4ecf9b5\ \(Macintosh\;\ arm64\ Mac\ OS\ X\ 13.7\)\ curl/8.7.1 --header Accept-Language:\ en --fail --silent --retry 3 --header Accept:\ application/vnd.oci.image.index.v1+json --header Authorization:\ Bearer\ QQ== --remote-time --output /Users/brew/Library/Caches/Homebrew/downloads/b2820f29b134a60cfb12d0e2f290a36e4fa89e0a94d29c1fcd67de6688324fd8--qt-6.8.1.bottle_manifest.json.incomplete --location https://ghcr.io/v2/homebrew/core/qt/manifests/6.8.1 curl: (56) The requested URL returned error: 404 ==> Downloading https://ghcr.io/v2/homebrew/core/qt/blobs/sha256:295299335e44701169635bb8672f588aa87d9265c539dcc4d7fe31ccd998e050 /usr/bin/env /opt/homebrew/Library/Homebrew/shims/shared/curl --disable --cookie /dev/null --globoff --show-error --user-agent Homebrew/4.4.13-11-g4ecf9b5\ \(Macintosh\;\ arm64\ Mac\ OS\ X\ 13.7\)\ curl/8.7.1 --header Accept-Language:\ en --fail --silent --retry 3 --header Authorization:\ Bearer\ QQ== --remote-time --output /Users/brew/Library/Caches/Homebrew/downloads/8030146dc656cb864480151517dd175b5889151661e36761327bf5040a022f5a--qt--6.8.1.arm64_ventura.bottle.tar.gz.incomplete --location https://ghcr.io/v2/homebrew/core/qt/blobs/sha256:295299335e44701169635bb8672f588aa87d9265c539dcc4d7fe31ccd998e050 ==> Verifying checksum for '8030146dc656cb864480151517dd175b5889151661e36761327bf5040a022f5a--qt--6.8.1.arm64_ventura.bottle.tar.gz' ==> Verifying attestation for qt ::warning::Failed to verify attestation. Retrying in 1s... ::warning::Failed to verify attestation. Retrying in 3s... ::warning::Failed to verify attestation. Retrying in 9s... ::warning::Failed to verify attestation. Retrying in 27s... ::warning::Failed to verify attestation. Retrying in 81s... ::error::The bottle for qt has an invalid build provenance attestation.%0A%0AThis may indicate that the bottle was not produced by the expected%0Atap, or was maliciously inserted into the expected tap's bottle%0Astorage.%0A%0AAdditional context:%0A%0Ano attestation matches subject: qt--6.8.1.arm64_ventura.bottle.tar.gz%0A

Check failure on line 55 in Formula/p/pyside.rb

View workflow job for this annotation

GitHub Actions / macOS 13-x86_64

`brew install --verbose --formula --build-bottle pyside` failed on macOS Ventura (13)!

Already downloaded: /Users/brew/Library/Caches/Homebrew/downloads/e43ed9af7d531fa2f5ff82622ebd65881129187880982ec7ef525f39b22d472f--llvm--19.1.6.ventura.bottle.tar.gz ==> Verifying checksum for 'e43ed9af7d531fa2f5ff82622ebd65881129187880982ec7ef525f39b22d472f--llvm--19.1.6.ventura.bottle.tar.gz' ==> Fetching qt ==> Downloading https://ghcr.io/v2/homebrew/core/qt/manifests/6.8.1 /usr/bin/env /usr/local/Homebrew/Library/Homebrew/shims/shared/curl --disable --cookie /dev/null --globoff --show-error --user-agent Homebrew/4.4.13-11-g4ecf9b5\ \(Macintosh\;\ Intel\ Mac\ OS\ X\ 13.7\)\ curl/8.7.1 --header Accept-Language:\ en --fail --silent --retry 3 --header Accept:\ application/vnd.oci.image.index.v1+json --header Authorization:\ Bearer\ QQ== --remote-time --output /Users/brew/Library/Caches/Homebrew/downloads/b2820f29b134a60cfb12d0e2f290a36e4fa89e0a94d29c1fcd67de6688324fd8--qt-6.8.1.bottle_manifest.json.incomplete --location https://ghcr.io/v2/homebrew/core/qt/manifests/6.8.1 curl: (56) The requested URL returned error: 404 ==> Downloading https://ghcr.io/v2/homebrew/core/qt/blobs/sha256:5a16728c19d459550d2f369498f431a164569a727475298a53fea542bfaddf77 /usr/bin/env /usr/local/Homebrew/Library/Homebrew/shims/shared/curl --disable --cookie /dev/null --globoff --show-error --user-agent Homebrew/4.4.13-11-g4ecf9b5\ \(Macintosh\;\ Intel\ Mac\ OS\ X\ 13.7\)\ curl/8.7.1 --header Accept-Language:\ en --fail --silent --retry 3 --header Authorization:\ Bearer\ QQ== --remote-time --output /Users/brew/Library/Caches/Homebrew/downloads/0644c7bf22e7ac5d3156e0d763157e630d972de695499e01826f20e851b0f291--qt--6.8.1.ventura.bottle.tar.gz.incomplete --location https://ghcr.io/v2/homebrew/core/qt/blobs/sha256:5a16728c19d459550d2f369498f431a164569a727475298a53fea542bfaddf77 ==> Verifying checksum for '0644c7bf22e7ac5d3156e0d763157e630d972de695499e01826f20e851b0f291--qt--6.8.1.ventura.bottle.tar.gz' ==> Verifying attestation for qt ::warning::Failed to verify attestation. Retrying in 1s... ::warning::Failed to verify attestation. Retrying in 3s... ::warning::Failed to verify attestation. Retrying in 9s... ::warning::Failed to verify attestation. Retrying in 27s... ::warning::Failed to verify attestation. Retrying in 81s... ::error::The bottle for qt has an invalid build provenance attestation.%0A%0AThis may indicate that the bottle was not produced by the expected%0Atap, or was maliciously inserted into the expected tap's bottle%0Astorage.%0A%0AAdditional context:%0A%0Ano attestation matches subject: qt--6.8.1.ventura.bottle.tar.gz%0A
ENV.append_path "PYTHONPATH", buildpath/"build/sources"

extra_include_dirs = [Formula["qt"].opt_include]
Expand All @@ -64,13 +63,6 @@
"${shiboken_include_dirs}",
"${shiboken_include_dirs}:#{extra_include_dirs.join(":")}"

# Fix build failure on macOS because `CMAKE_BINARY_DIR` points to /tmp but
# `location` points to `/private/tmp`, which makes this conditional fail.
# Submitted upstream here: https://codereview.qt-project.org/c/pyside/pyside-setup/+/416706.
inreplace "sources/pyside6/PySide6/__init__.py.in",
"in_build = Path(\"@CMAKE_BINARY_DIR@\") in location.parents",
"in_build = Path(\"@CMAKE_BINARY_DIR@\").resolve() in location.parents"

# Install python scripts into pkgshare rather than bin
inreplace "sources/pyside-tools/CMakeLists.txt", "DESTINATION bin", "DESTINATION #{pkgshare}"

Expand Down
5 changes: 3 additions & 2 deletions Formula/q/qt-libiodbc.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class QtLibiodbc < Formula

Check warning on line 1 in Formula/q/qt-libiodbc.rb

View workflow job for this annotation

GitHub Actions / macOS 15-arm64

No bottle built for qt-libiodbc!

qt-libiodbc has unbottled dependencies, so a bottle will not be built.
desc "Qt SQL Database Driver"
homepage "https://www.qt.io/"
url "https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qtbase-everywhere-src-6.7.3.tar.xz"
sha256 "8ccbb9ab055205ac76632c9eeddd1ed6fc66936fc56afc2ed0fd5d9e23da3097"
url "https://download.qt.io/official_releases/qt/6.8/6.8.1/submodules/qtbase-everywhere-src-6.8.1.tar.xz"
sha256 "40b14562ef3bd779bc0e0418ea2ae08fa28235f8ea6e8c0cb3bce1d6ad58dcaf"
license any_of: ["GPL-2.0-only", "GPL-3.0-only", "LGPL-3.0-only"]

livecheck do
Expand Down Expand Up @@ -34,6 +34,7 @@
-DFEATURE_sql_odbc=ON
-DFEATURE_sql_psql=OFF
-DFEATURE_sql_sqlite=OFF
-DQT_GENERATE_SBOM=OFF
]

system "cmake", "-S", "src/plugins/sqldrivers", "-B", "build", *args, *std_cmake_args
Expand Down
16 changes: 7 additions & 9 deletions Formula/q/qt-mariadb.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class QtMariadb < Formula

Check warning on line 1 in Formula/q/qt-mariadb.rb

View workflow job for this annotation

GitHub Actions / macOS 15-arm64

No bottle built for qt-mariadb!

qt-mariadb has unbottled dependencies, so a bottle will not be built.
desc "Qt SQL Database Driver"
homepage "https://www.qt.io/"
url "https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qtbase-everywhere-src-6.7.3.tar.xz"
sha256 "8ccbb9ab055205ac76632c9eeddd1ed6fc66936fc56afc2ed0fd5d9e23da3097"
url "https://download.qt.io/official_releases/qt/6.8/6.8.1/submodules/qtbase-everywhere-src-6.8.1.tar.xz"
sha256 "40b14562ef3bd779bc0e0418ea2ae08fa28235f8ea6e8c0cb3bce1d6ad58dcaf"
license any_of: ["GPL-2.0-only", "GPL-3.0-only", "LGPL-3.0-only"]

livecheck do
Expand All @@ -26,22 +26,20 @@
because: "qt-mysql, qt-mariadb, and qt-percona-server install the same binaries"

def install
args = std_cmake_args + %W[
args = %W[
-DCMAKE_STAGING_PREFIX=#{prefix}

-DFEATURE_sql_ibase=OFF
-DFEATURE_sql_mysql=ON
-DFEATURE_sql_oci=OFF
-DFEATURE_sql_odbc=OFF
-DFEATURE_sql_psql=OFF
-DFEATURE_sql_sqlite=OFF
-DQT_GENERATE_SBOM=OFF
]

cd "src/plugins/sqldrivers" do
system "cmake", ".", *args
system "cmake", "--build", "."
system "cmake", "--install", "."
end
system "cmake", "-S", "src/plugins/sqldrivers", "-B", "build", *args, *std_cmake_args
system "cmake", "--build", "build"
system "cmake", "--install", "build"
end

test do
Expand Down
16 changes: 7 additions & 9 deletions Formula/q/qt-mysql.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class QtMysql < Formula

Check warning on line 1 in Formula/q/qt-mysql.rb

View workflow job for this annotation

GitHub Actions / macOS 15-arm64

No bottle built for qt-mysql!

qt-mysql has unbottled dependencies, so a bottle will not be built.
desc "Qt SQL Database Driver"
homepage "https://www.qt.io/"
url "https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qtbase-everywhere-src-6.7.3.tar.xz"
sha256 "8ccbb9ab055205ac76632c9eeddd1ed6fc66936fc56afc2ed0fd5d9e23da3097"
url "https://download.qt.io/official_releases/qt/6.8/6.8.1/submodules/qtbase-everywhere-src-6.8.1.tar.xz"
sha256 "40b14562ef3bd779bc0e0418ea2ae08fa28235f8ea6e8c0cb3bce1d6ad58dcaf"
license any_of: ["GPL-2.0-only", "GPL-3.0-only", "LGPL-3.0-only"]

livecheck do
Expand All @@ -26,22 +26,20 @@
because: "qt-mysql, qt-mariadb, and qt-percona-server install the same binaries"

def install
args = std_cmake_args + %W[
args = %W[
-DCMAKE_STAGING_PREFIX=#{prefix}

-DFEATURE_sql_ibase=OFF
-DFEATURE_sql_mysql=ON
-DFEATURE_sql_oci=OFF
-DFEATURE_sql_odbc=OFF
-DFEATURE_sql_psql=OFF
-DFEATURE_sql_sqlite=OFF
-DQT_GENERATE_SBOM=OFF
]

cd "src/plugins/sqldrivers" do
system "cmake", ".", *args
system "cmake", "--build", "."
system "cmake", "--install", "."
end
system "cmake", "-S", "src/plugins/sqldrivers", "-B", "build", *args, *std_cmake_args
system "cmake", "--build", "build"
system "cmake", "--install", "build"
end

test do
Expand Down
7 changes: 3 additions & 4 deletions Formula/q/qt-percona-server.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class QtPerconaServer < Formula

Check warning on line 1 in Formula/q/qt-percona-server.rb

View workflow job for this annotation

GitHub Actions / macOS 15-arm64

No bottle built for qt-percona-server!

qt-percona-server has unbottled dependencies, so a bottle will not be built.
desc "Qt SQL Database Driver"
homepage "https://www.qt.io/"
url "https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qtbase-everywhere-src-6.7.3.tar.xz"
sha256 "8ccbb9ab055205ac76632c9eeddd1ed6fc66936fc56afc2ed0fd5d9e23da3097"
url "https://download.qt.io/official_releases/qt/6.8/6.8.1/submodules/qtbase-everywhere-src-6.8.1.tar.xz"
sha256 "40b14562ef3bd779bc0e0418ea2ae08fa28235f8ea6e8c0cb3bce1d6ad58dcaf"
license any_of: ["GPL-2.0-only", "GPL-3.0-only", "LGPL-3.0-only"]

livecheck do
Expand All @@ -29,15 +29,14 @@
def install
args = %W[
-DCMAKE_STAGING_PREFIX=#{prefix}

-DFEATURE_sql_ibase=OFF
-DFEATURE_sql_mysql=ON
-DFEATURE_sql_oci=OFF
-DFEATURE_sql_odbc=OFF
-DFEATURE_sql_psql=OFF
-DFEATURE_sql_sqlite=OFF

-DMySQL_LIBRARY=#{Formula["percona-server"].opt_lib/shared_library("libperconaserverclient")}
-DQT_GENERATE_SBOM=OFF
]
# Workaround for missing libraries failure in CI dependent tests when `percona-server`
# is unlinked due to conflict handling but not re-linked before linkage test
Expand Down
16 changes: 7 additions & 9 deletions Formula/q/qt-postgresql.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class QtPostgresql < Formula
desc "Qt SQL Database Driver"
homepage "https://www.qt.io/"
url "https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qtbase-everywhere-src-6.7.3.tar.xz"
sha256 "8ccbb9ab055205ac76632c9eeddd1ed6fc66936fc56afc2ed0fd5d9e23da3097"
url "https://download.qt.io/official_releases/qt/6.8/6.8.1/submodules/qtbase-everywhere-src-6.8.1.tar.xz"
sha256 "40b14562ef3bd779bc0e0418ea2ae08fa28235f8ea6e8c0cb3bce1d6ad58dcaf"
license any_of: ["GPL-2.0-only", "GPL-3.0-only", "LGPL-3.0-only"]

livecheck do
Expand All @@ -23,22 +23,20 @@ class QtPostgresql < Formula
depends_on "qt"

def install
args = std_cmake_args + %W[
args = %W[
-DCMAKE_STAGING_PREFIX=#{prefix}

-DFEATURE_sql_ibase=OFF
-DFEATURE_sql_mysql=OFF
-DFEATURE_sql_oci=OFF
-DFEATURE_sql_odbc=OFF
-DFEATURE_sql_psql=ON
-DFEATURE_sql_sqlite=OFF
-DQT_GENERATE_SBOM=OFF
]

cd "src/plugins/sqldrivers" do
system "cmake", ".", *args
system "cmake", "--build", "."
system "cmake", "--install", "."
end
system "cmake", "-S", "src/plugins/sqldrivers", "-B", "build", *args, *std_cmake_args
system "cmake", "--build", "build"
system "cmake", "--install", "build"
end

test do
Expand Down
16 changes: 7 additions & 9 deletions Formula/q/qt-unixodbc.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class QtUnixodbc < Formula
desc "Qt SQL Database Driver"
homepage "https://www.qt.io/"
url "https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qtbase-everywhere-src-6.7.3.tar.xz"
sha256 "8ccbb9ab055205ac76632c9eeddd1ed6fc66936fc56afc2ed0fd5d9e23da3097"
url "https://download.qt.io/official_releases/qt/6.8/6.8.1/submodules/qtbase-everywhere-src-6.8.1.tar.xz"
sha256 "40b14562ef3bd779bc0e0418ea2ae08fa28235f8ea6e8c0cb3bce1d6ad58dcaf"
license any_of: ["GPL-2.0-only", "GPL-3.0-only", "LGPL-3.0-only"]

livecheck do
Expand All @@ -26,22 +26,20 @@ class QtUnixodbc < Formula
because: "qt-unixodbc and qt-libiodbc install the same binaries"

def install
args = std_cmake_args + %W[
args = %W[
-DCMAKE_STAGING_PREFIX=#{prefix}

-DFEATURE_sql_ibase=OFF
-DFEATURE_sql_mysql=OFF
-DFEATURE_sql_oci=OFF
-DFEATURE_sql_odbc=ON
-DFEATURE_sql_psql=OFF
-DFEATURE_sql_sqlite=OFF
-DQT_GENERATE_SBOM=OFF
]

cd "src/plugins/sqldrivers" do
system "cmake", ".", *args
system "cmake", "--build", "."
system "cmake", "--install", "."
end
system "cmake", "-S", "src/plugins/sqldrivers", "-B", "build", *args, *std_cmake_args
system "cmake", "--build", "build"
system "cmake", "--install", "build"
end

test do
Expand Down
134 changes: 6 additions & 128 deletions Formula/q/qt.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
class Qt < Formula

Check notice on line 1 in Formula/q/qt.rb

View workflow job for this annotation

GitHub Actions / macOS 14-arm64

Bottle cache hit

Bottle for qt built at 6445ab8cce4 (Merge 151f435cbaccbeab665e15c6bbe426f4dc2d2079 into bb74e52d75c83147270282e17286f46505dc640f, 2024-12-23)

Check warning on line 1 in Formula/q/qt.rb

View workflow job for this annotation

GitHub Actions / Linux

`brew linkage --cached --test --strict qt` failed on Linux!

openjpeg
include Language::Python::Virtualenv

desc "Cross-platform application and UI framework"
homepage "https://www.qt.io/"
url "https://download.qt.io/official_releases/qt/6.8/6.8.1/single/qt-everywhere-src-6.8.1.tar.xz"
mirror "https://qt.mirror.constant.com/archive/qt/6.8/6.8.1/single/qt-everywhere-src-6.8.1.tar.xz"
mirror "https://mirrors.ukfast.co.uk/sites/qt.io/archive/qt/6.8/6.8.1/single/qt-everywhere-src-6.8.1.tar.xz"
sha256 "45e3a9f6d33c92ffe65a1fde1a8eba5b228112df675f7f9026eaa332b2e2edff"
license all_of: [
"BSD-3-Clause",
"GFDL-1.3-no-invariants-only",
Expand All @@ -12,41 +16,6 @@
]
head "https://code.qt.io/qt/qt5.git", branch: "dev"

stable do
url "https://download.qt.io/official_releases/qt/6.7/6.7.3/single/qt-everywhere-src-6.7.3.tar.xz"
mirror "https://qt.mirror.constant.com/archive/qt/6.7/6.7.3/single/qt-everywhere-src-6.7.3.tar.xz"
mirror "https://mirrors.ukfast.co.uk/sites/qt.io/archive/qt/6.7/6.7.3/single/qt-everywhere-src-6.7.3.tar.xz"
sha256 "a3f1d257cbb14c6536585ffccf7c203ce7017418e1a0c2ed7c316c20c729c801"

# Backport fix for Xcode 16. Remove in the next release
patch do
url "https://github.com/qt/qtwebengine-chromium/commit/8c5cf527c520edf9cd96c143af02ac94966fc2af.patch?full_index=1"
sha256 "ab14d8559c0470cc28f6ba279015dac9e7411135f5f58c285c6a7cf5995e61b4"
directory "qtwebengine/src/3rdparty"
end

# Backport support for FFMpeg 7.
# Ref: https://bugreports.qt.io/browse/QTBUG-125227
patch do
# Use Fedora's backport of https://github.com/qt/qtwebengine-chromium/commit/b30e3535717e1cb970c6e4095b412a2c5fdbce40
url "https://src.fedoraproject.org/rpms/qt6-qtwebengine/raw/864539f2140a11fda9bf3ef878a2e627f04f0b2d/f/qtwebengine-fix-building-with-system-ffmpeg.patch"
sha256 "70b8c468be1954b8dad59243069c6369d7c6eae332f154d99e3027b9119eb7c5"
directory "qtwebengine"
end
patch do
url "https://github.com/qt/qtwebengine-chromium/commit/65aaac35d040aef90c2e9f41a651b5a23470e457.patch?full_index=1"
sha256 "2875e9c534da34902fb113b4171d7a4960e6bc27f6ad45d49929ecf667856d48"
directory "qtwebengine/src/3rdparty"
end
patch do
url "https://github.com/qt/qtwebengine-chromium/commit/d9944bcb991c981574a229e5267e535b4eac8e1c.patch?full_index=1"
sha256 "11d8c7db91e76ea886dd0f30aedb3bfb33211f6ba39236d684ad63bfe80682ff"
directory "qtwebengine/src/3rdparty"
end
# Backport of https://github.com/qt/qtwebengine-chromium/commit/afcbb2eab7c5b0329ad0045782768dd2805d6a05
patch :DATA
end

# The first-party website doesn't make version information readily available,
# so we check the `head` repository tags instead.
livecheck do
Expand Down Expand Up @@ -150,8 +119,8 @@
end

resource "six" do
url "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz"
sha256 "1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"
url "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz"
sha256 "ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"
end

resource "webencodings" do
Expand All @@ -159,7 +128,7 @@
sha256 "b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"
end

def install

Check failure on line 131 in Formula/q/qt.rb

View workflow job for this annotation

GitHub Actions / macOS 13-arm64

`brew install --verbose --formula --build-bottle qt` failed on macOS Ventura (13) on Apple Silicon!

FAILED: obj/device/bluetooth/bluetooth/bluetooth_discovery_filter.o clang++ -MMD -MF obj/device/bluetooth/bluetooth/bluetooth_discovery_filter.o.d -DDEVICE_BLUETOOTH_IMPLEMENTATION -DOFFICIAL_BUILD -DTOOLKIT_QT -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE -DCR_XCODE_VERSION=1520 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DSK_ENABLE_SKSL -DSK_UNTIL_CRBUG_1187654_IS_FIXED -DSK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\" -DSK_WIN_FONTMGR_NO_SIMULATIONS -DSK_DISABLE_LEGACY_SKSURFACE_METHODS -DSK_DISABLE_LEGACY_GRAPHITE_IMAGE_FACTORIES -DSK_DISABLE_LEGACY_GRAPHITE_IMAGE_METHODS -DSK_DISABLE_LEGACY_SKSURFACE_FACTORIES -DSK_DISABLE_LEGACY_SKSURFACE_FLUSH -DSK_DISABLE_LEGACY_SKSURFACE_AS_IMAGE -DSK_DISABLE_LEGACY_SKSURFACE_DISPLAYLIST -DSK_DISABLE_LEGACY_IMAGE_SUBSET_METHODS -DSK_DISABLE_LEGACY_IMAGE_COLORSPACE_METHODS -DSK_DISABLE_LEGACY_IMAGE_RELEASE_PROCS -DSK_DISABLE_LEGACY_GL_BACKEND_SURFACE -DSK_DISABLE_LEGACY_INIT_DECODERS -DSK_DISABLE_LEGACY_GRDIRECTCONTEXT_FLUSH -DSK_DISABLE_LEGACY_GRDIRECTCONTEXT_BOOLS -DSK_DISABLE_LEGACY_GL_GRDIRECTCONTEXT_FACTORIES -DSK_DISABLE_LEGACY_PNG_WRITEBUFFER -DSK_SLUG_DISABLE_LEGACY_DESERIALIZE -DSK_DISABLE_LEGACY_VK_GRDIRECTCONTEXT_FACTORIES -DSK_DEFAULT_TYPEFACE_IS_EMPTY -DSK_DISABLE_LEGACY_DEFAULT_TYPEFACE -DSK_DISABLE_LEGACY_VULKAN_BACKENDSEMAPHORE -DSK_DISABLE_LEGACY_CREATE_CHARACTERIZATION -DSK_DISABLE_LEGACY_FONTMGR_REFDEFAULT -DSK_DISABLE_LEGACY_FONTMGR_FACTORY -DSK_CODEC_DECODES_JPEG -DSK_ENCODE_JPEG -DSK_ENCODE_PNG -DSK_ENCODE_WEBP -DSK_BUILD_FOR_MAC -DSK_GANESH -DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\" -DSK_GL -DSK_GRAPHITE -DWEBP_EXTERN=extern -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_ENABLE_TRACING=1 -DU_ENABLE_RESOURCE_TRACING=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0 -DHAVE_PTHREAD -Igen -I../../../3rdparty/chromium -I../../../3rdparty/chromium/third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -I../../../3rdparty/chromium/net/third_party/quiche/overrides -I../../../3rdparty/chromium/net/third_party/quiche/src/quiche/common/platform/default -I../../../3rdparty/chromium/net/third_party/quiche/src -I../../../3rdparty/chromium/third_party/skia -Igen/third_party/skia -I../../../3rdparty/chromium/third_party/wuffs/src/release/c -I../../../3rdparty/chromium/third_party/libwebp/src/src -I../../../3rdparty/chromium/base/allocator/partition_allocator/src -Igen/base/allocator/partition_allocator/src -I../../../3rdparty/chromium/third_party/abseil-cpp -I../../../3rdparty/chromium/third_party/boringssl/src/include -I../../../3rdparty/chromium/third_party/protobuf/src -Igen/protoc_out -I../../../3rdparty/chromium/third_party/ipcz/include -I../../../3rdparty/chromium/third_party/ced/src -I../../../3rdparty/chromium/third_party/icu/source/common -I../../../3rdparty/chromium/third_party/icu/source/i18n -Igen/net/third_party/quiche/src -I../../../3rdparty/chromium/third_party/re2/src -Wall -Wextra -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wimplicit-fallthrough -Wthread-safety -Wunguarded-availability -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wno-deprecated-declarations -Wenum-compare-conditional -Wno-ignored-pragma-optimize -Wno-deprecated-builtins -Wno-bitfield-constant-conversion -Wno-deprecated-this-capture -Wno-invalid-offsetof -Wno-vla-extension -Wno-thread-safety-reference-return -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing -fstack-protector -Wno-unknown-argument -Wno-unknown-attributes -Wno-unknown-warning-option -Wno-ignored-attributes -Wno-predefined-identifier-outside-function -Wno-self-assign -Wno-unknown-pragmas -fcolor-diagnostics -fmerge-all-constants --target=arm64-apple-macos -mno-outline -O2 -fno-math-errno -fno-omit-frame-pointer -g0 -isysroot ../../.

Check failure on line 131 in Formula/q/qt.rb

View workflow job for this annotation

GitHub Actions / macOS 13-x86_64

`brew install --verbose --formula --build-bottle qt` failed on macOS Ventura (13)!

FAILED: obj/device/bluetooth/bluetooth/bluetooth_discovery_filter.o clang++ -MMD -MF obj/device/bluetooth/bluetooth/bluetooth_discovery_filter.o.d -DDEVICE_BLUETOOTH_IMPLEMENTATION -DOFFICIAL_BUILD -DTOOLKIT_QT -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE -DCR_XCODE_VERSION=1520 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DSK_ENABLE_SKSL -DSK_UNTIL_CRBUG_1187654_IS_FIXED -DSK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\" -DSK_WIN_FONTMGR_NO_SIMULATIONS -DSK_DISABLE_LEGACY_SKSURFACE_METHODS -DSK_DISABLE_LEGACY_GRAPHITE_IMAGE_FACTORIES -DSK_DISABLE_LEGACY_GRAPHITE_IMAGE_METHODS -DSK_DISABLE_LEGACY_SKSURFACE_FACTORIES -DSK_DISABLE_LEGACY_SKSURFACE_FLUSH -DSK_DISABLE_LEGACY_SKSURFACE_AS_IMAGE -DSK_DISABLE_LEGACY_SKSURFACE_DISPLAYLIST -DSK_DISABLE_LEGACY_IMAGE_SUBSET_METHODS -DSK_DISABLE_LEGACY_IMAGE_COLORSPACE_METHODS -DSK_DISABLE_LEGACY_IMAGE_RELEASE_PROCS -DSK_DISABLE_LEGACY_GL_BACKEND_SURFACE -DSK_DISABLE_LEGACY_INIT_DECODERS -DSK_DISABLE_LEGACY_GRDIRECTCONTEXT_FLUSH -DSK_DISABLE_LEGACY_GRDIRECTCONTEXT_BOOLS -DSK_DISABLE_LEGACY_GL_GRDIRECTCONTEXT_FACTORIES -DSK_DISABLE_LEGACY_PNG_WRITEBUFFER -DSK_SLUG_DISABLE_LEGACY_DESERIALIZE -DSK_DISABLE_LEGACY_VK_GRDIRECTCONTEXT_FACTORIES -DSK_DEFAULT_TYPEFACE_IS_EMPTY -DSK_DISABLE_LEGACY_DEFAULT_TYPEFACE -DSK_DISABLE_LEGACY_VULKAN_BACKENDSEMAPHORE -DSK_DISABLE_LEGACY_CREATE_CHARACTERIZATION -DSK_DISABLE_LEGACY_FONTMGR_REFDEFAULT -DSK_DISABLE_LEGACY_FONTMGR_FACTORY -DSK_CODEC_DECODES_JPEG -DSK_ENCODE_JPEG -DSK_ENCODE_PNG -DSK_ENCODE_WEBP -DSK_BUILD_FOR_MAC -DSK_GANESH -DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\" -DSK_GL -DSK_GRAPHITE -DWEBP_EXTERN=extern -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_ENABLE_TRACING=1 -DU_ENABLE_RESOURCE_TRACING=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0 -DHAVE_PTHREAD -Igen -I../../../3rdparty/chromium -I../../../3rdparty/chromium/third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -I../../../3rdparty/chromium/net/third_party/quiche/overrides -I../../../3rdparty/chromium/net/third_party/quiche/src/quiche/common/platform/default -I../../../3rdparty/chromium/net/third_party/quiche/src -I../../../3rdparty/chromium/third_party/skia -Igen/third_party/skia -I../../../3rdparty/chromium/third_party/wuffs/src/release/c -I../../../3rdparty/chromium/third_party/libwebp/src/src -I../../../3rdparty/chromium/base/allocator/partition_allocator/src -Igen/base/allocator/partition_allocator/src -I../../../3rdparty/chromium/third_party/abseil-cpp -I../../../3rdparty/chromium/third_party/boringssl/src/include -I../../../3rdparty/chromium/third_party/protobuf/src -Igen/protoc_out -I../../../3rdparty/chromium/third_party/ipcz/include -I../../../3rdparty/chromium/third_party/ced/src -I../../../3rdparty/chromium/third_party/icu/source/common -I../../../3rdparty/chromium/third_party/icu/source/i18n -Igen/net/third_party/quiche/src -I../../../3rdparty/chromium/third_party/re2/src -Wall -Wextra -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wimplicit-fallthrough -Wthread-safety -Wunguarded-availability -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wno-deprecated-declarations -Wenum-compare-conditional -Wno-ignored-pragma-optimize -Wno-deprecated-builtins -Wno-bitfield-constant-conversion -Wno-deprecated-this-capture -Wno-invalid-offsetof -Wno-vla-extension -Wno-thread-safety-reference-return -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing -fstack-protector -Wno-unknown-argument -Wno-unknown-attributes -Wno-unknown-warning-option -Wno-ignored-attributes -Wno-predefined-identifier-outside-function -Wno-self-assign -Wno-unknown-pragmas -fcolor-diagnostics -fmerge-all-constants --target=x86_64-apple-macos -O2 -fno-math-errno -fno-omit-frame-pointer -g0 -isysroot ../../../../../../.
python3 = "python3.13"

# Allow -march options to be passed through, as Qt builds
Expand Down Expand Up @@ -462,94 +431,3 @@
system "./test"
end
end

__END__
diff --git a/qtwebengine/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc b/qtwebengine/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc
index aaab17bdc3b9c157981f2708c680eea03657f211..737ba737872ca5df4ee9a5efe03d17573a1f2e49 100644
--- a/qtwebengine/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc
+++ b/qtwebengine/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc
@@ -142,7 +142,7 @@ bool FFmpegVideoDecoder::IsCodecSupported(VideoCodec codec) {
}

FFmpegVideoDecoder::FFmpegVideoDecoder(MediaLog* media_log)
- : media_log_(media_log) {
+ : media_log_(media_log), timestamp_map_(128) {
DVLOG(1) << __func__;
DETACH_FROM_SEQUENCE(sequence_checker_);
}
@@ -371,8 +371,10 @@ bool FFmpegVideoDecoder::FFmpegDecode(const DecoderBuffer& buffer) {
DCHECK(packet->data);
DCHECK_GT(packet->size, 0);

- // Let FFmpeg handle presentation timestamp reordering.
- codec_context_->reordered_opaque = buffer.timestamp().InMicroseconds();
+ const int64_t timestamp = buffer.timestamp().InMicroseconds();
+ const TimestampId timestamp_id = timestamp_id_generator_.GenerateNextId();
+ timestamp_map_.Put(std::make_pair(timestamp_id, timestamp));
+ packet->opaque = reinterpret_cast<void*>(timestamp_id.GetUnsafeValue());
}
FFmpegDecodingLoop::DecodeStatus decode_status = decoding_loop_->DecodePacket(
packet, base::BindRepeating(&FFmpegVideoDecoder::OnNewFrame,
@@ -431,7 +433,12 @@ bool FFmpegVideoDecoder::OnNewFrame(AVFrame* frame) {
}
gfx::Size natural_size = aspect_ratio.GetNaturalSize(visible_rect);

- const auto pts = base::Microseconds(frame->reordered_opaque);
+ const auto ts_id = TimestampId(reinterpret_cast<size_t>(frame->opaque));
+ const auto ts_lookup = timestamp_map_.Get(ts_id);
+ if (ts_lookup == timestamp_map_.end()) {
+ return false;
+ }
+ const auto pts = base::Microseconds(std::get<1>(*ts_lookup));
auto video_frame = VideoFrame::WrapExternalDataWithLayout(
opaque->layout, visible_rect, natural_size, opaque->data, opaque->size,
pts);
@@ -506,8 +513,10 @@ bool FFmpegVideoDecoder::ConfigureDecoder(const VideoDecoderConfig& config,
codec_context_->thread_count = GetFFmpegVideoDecoderThreadCount(config);
codec_context_->thread_type =
FF_THREAD_SLICE | (low_delay ? 0 : FF_THREAD_FRAME);
+
codec_context_->opaque = this;
codec_context_->get_buffer2 = GetVideoBufferImpl;
+ codec_context_->flags |= AV_CODEC_FLAG_COPY_OPAQUE;

if (decode_nalus_)
codec_context_->flags2 |= AV_CODEC_FLAG2_CHUNKS;
diff --git a/qtwebengine/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.h b/qtwebengine/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.h
index d02cb89c3ddf7cee0d1a79ee095eae5f52ff5111..0a2de1c623ffff7dc9c5d381344714e9ee3d2f2a 100644
--- a/qtwebengine/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.h
+++ b/qtwebengine/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.h
@@ -7,10 +7,12 @@

#include <memory>

+#include "base/containers/lru_cache.h"
#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/scoped_refptr.h"
#include "base/sequence_checker.h"
+#include "base/types/id_type.h"
#include "media/base/supported_video_decoder_config.h"
#include "media/base/video_decoder.h"
#include "media/base/video_decoder_config.h"
@@ -87,6 +89,20 @@ class MEDIA_EXPORT FFmpegVideoDecoder : public VideoDecoder {
// FFmpeg structures owned by this object.
std::unique_ptr<AVCodecContext, ScopedPtrAVFreeContext> codec_context_;

+ // The gist here is that timestamps need to be 64 bits to store microsecond
+ // precision. A 32 bit integer would overflow at ~35 minutes at this level of
+ // precision. We can't cast the timestamp to the void ptr object used by the
+ // opaque field in ffmpeg then, because it would lose data on a 32 bit build.
+ // However, we don't actually have 2^31 timestamped frames in a single
+ // playback, so it's fine to use the 32 bit value as a key in a map which
+ // contains the actual timestamps. Additionally, we've in the past set 128
+ // outstanding frames for re-ordering as a limit for cross-thread decoding
+ // tasks, so we'll do that here too with the LRU cache.
+ using TimestampId = base::IdType<int64_t, size_t, 0>;
+
+ TimestampId::Generator timestamp_id_generator_;
+ base::LRUCache<TimestampId, int64_t> timestamp_map_;
+
VideoDecoderConfig config_;

scoped_refptr<FrameBufferPool> frame_pool_;
Loading