Compare commits

...

122 Commits

Author SHA1 Message Date
6e0957a0c8
Merge commit '74eb5d46aa5afc39e4e017390f7da92775ed930e' into main-riscv64
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-09-05 17:01:49 +03:00
Neal Gompa
74eb5d46aa Roll back autorelease+autochangelog conversion 2024-08-20 11:20:16 -04:00
Jan Grulich
fd03f499cd Use Python 3 and bundled re2
Re2 was used bundled anyway and just copying header files from system
doesn't actually change anything, except that it breaks when there is
an API change.
2024-08-20 15:28:06 +02:00
Denis Arnaud
e5457a1795 Back to python2 macro, even though it is failing currently on Rawhide 2024-08-15 19:35:31 +02:00
Denis Arnaud
c2a54c1aad [Rawhide] python2 -> python2.7, as the python2 macro no longer seems to work on Rawhide 2024-08-15 19:18:19 +02:00
Denis Arnaud
12cc3017a4 [WIP] The python2 RPM macro seems no longer valid on Rawhide 2024-08-15 15:44:27 +02:00
Neal Gompa
3c3c0827d2 Fix comment for ffmpeg7 patch 2024-08-08 02:24:08 -04:00
Neal Gompa
19d26b37ac Backport Chromium support for ffmpeg 6.1/7.0 2024-08-08 02:21:27 -04:00
e35b1e90eb
Disable gold linker on riscv64
gold linker was never ported to riscv64.

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-07-29 09:15:18 +03:00
Fedora Release Engineering
aa8bf91442 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-19 17:52:11 +00:00
Sérgio M. Basto
46c62e5dc1 5.15.17
add qtwebengine-5.15.13_p20240322-ninja1.12.patch from gentoo
add fix_build_pdf_extension_util.patch
delete qtwebengine-icu-74.patch
delete 0001-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch
2024-07-05 00:23:32 +01:00
Jan Grulich
b21761eee8 Fix remaining %patchN usage 2024-05-30 13:38:34 +02:00
Jan Grulich
7a1edf9347 Rebuild (qt5) 2024-05-30 13:12:17 +02:00
U2FsdGVkX1
9c31cf3699 Add riscv64 support 2024-04-30 01:34:12 -04:00
Jan Grulich
494778a609 Rebuild (qt5) 2024-03-14 20:34:18 +01:00
Marie Loise Nolden
ce8eb4227a move qt designer plugin to -devel 2024-03-11 12:17:29 +00:00
FAS Marie Loise Nolden
685931ea60 throw out dead stuff
throw out dead ifdef's and the docs package. The docs should be part of qt5-doc instead and are disabled anyway.
2024-03-11 12:15:19 +00:00
Paul Wouters
3741eb523a
- Rebuilt for libre2.so.11 bump 2024-02-23 22:35:24 -05:00
Pete Walter
2863f084d5 Rebuild for libvpx 1.14.x 2024-02-08 00:03:17 +00:00
Jan Grulich
e6bdd9ab8d Re-add missing sources 2024-02-01 19:39:17 +01:00
Jan Grulich
428169914b 5.15.6 2024-02-01 19:36:12 +01:00
Fedora Release Engineering
7dc870a81b Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-26 14:14:29 +00:00
Fedora Release Engineering
b0a5a3210c Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-22 09:54:09 +00:00
Jan Grulich
84fcc5169c Rebuild (qt5) 2024-01-03 10:18:17 +01:00
Jan Grulich
7b776a41de Backport upstream patch to fix assembly with binutils 2.41 2023-10-08 20:09:52 +02:00
Jan Grulich
24b7c5c687 Rebuild (qt5) 2023-10-08 17:04:45 +02:00
Fedora Release Engineering
7a06b223b7 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-21 16:09:20 +00:00
František Zatloukal
b8059b7b5e Rebuilt for ICU 73.2 2023-07-12 00:32:00 +02:00
Jan Grulich
e596b1ceeb Rebuild (qt5) 2023-06-13 15:53:23 +02:00
Jan Grulich
0103b75b86 Rebuild (qt5) 2023-04-11 18:12:34 +02:00
Florian Weimer
628adfbb06 Port bundled libsync to C99 (#2155642)
Related to:

  <https://fedoraproject.org/wiki/Changes/PortingToModernC>
  <https://fedoraproject.org/wiki/Toolchain/PortingToModernC>
2023-02-23 16:26:19 +01:00
Tom Callaway
2483bdc6b0 rebuild for libvpx 2023-02-15 17:20:10 -05:00
Jan Grulich
5dc49e0102 Last missing fix for GCC 13 2023-01-31 09:49:08 +01:00
Jan Grulich
9a37c86a90 Fix wrongly generated files that don't build with GCC13 2023-01-31 09:09:58 +01:00
Jan Grulich
14bbdcc056 Fix build against GCC13 2023-01-27 16:33:29 +01:00
Fedora Release Engineering
42a405105c Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-20 19:08:23 +00:00
Jan Grulich
fcb65f83e3 5.15.12 2023-01-16 10:26:28 +01:00
Jan Grulich
e40dff5d8a Rebuild (qt5) 2023-01-06 12:57:49 +01:00
Pete Walter
ff38c83c17 Rebuild for ICU 72 2022-12-31 04:04:24 +00:00
Neal Gompa
e54439c5b2 Refresh QtWebEngine patch for 16k page support from official Chromium commit
This refreshes the commit with the upstream Chromium commit data and
the upstream Qt references required for upstreaming the change.
2022-11-20 14:06:44 -05:00
Neal Gompa
63fa67df29 Add patch to backport support for 16k pages on AArch64
This is a backport of the change in Chromium that enables support
for running on Linux AArch64 systems that use 16K pages, notably
Apple Silicon hardware. This fix exists in Qt6 for QtWebEngine by
virtue of being based on a newer Chromium (Chromium >= 102).

The patch is originally sourced from the Arch Linux ARM project,
tweaked to apply properly on the QtWebEngine sources.

Resolves: rhbz#2144200
2022-11-20 08:16:32 -05:00
Jan Grulich
7e4c2d0c45 Rebuild (qt5) 2022-10-31 14:28:12 +01:00
Jan Grulich
5d7fb448f0 Rebuild (qt5) 2022-09-21 08:23:11 +02:00
Ankur Sinha (Ankur Sinha Gmail)
56925bd64c
feat: bump spec to 5.15.10 2022-08-29 21:41:14 +01:00
Ankur Sinha (Ankur Sinha Gmail)
6deffa33bd
feat: upload 5.15.10 sources 2022-08-29 21:39:56 +01:00
František Zatloukal
c3db46dbfb Rebuilt for ICU 71.1 2022-08-02 13:23:52 +02:00
Fedora Release Engineering
b22f6246a6 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 00:09:49 +00:00
Kevin Kofler
9816079afb Drop obsolete no-icudtl-dat patch, code has been fixed upstream since 5.11.0
* Wed Jul 20 2022 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.15.9-3
- Drop obsolete no-icudtl-dat patch, code has been fixed upstream since 5.11.0

If you look closely at the patch, you will see that the code that is
removed does not actually mention the offending icudtl.dat anywhere.
This upstream code snippet was fixed back in 5.11.0 to check for
qtwebengine_resources.pak instead, which is always installed. (Compare
my original patch with the version rebased by Rex Dieter for 5.11.0.)

Searching for alternate resource paths is still pointless in packaged
QtWebEngine, mind you. (The file installed by the package should always
be found.) So the patch did not hurt. But still, it is no longer
necessary to patch this out.
2022-07-20 02:52:28 +02:00
Jan Grulich
a9c79ab034 Rebuild (Qt 5.15.5) 2022-07-14 12:12:40 +02:00
Rex Dieter
734c76e76c 5.15.9 2022-06-02 08:08:23 -05:00
Jan Grulich
2583ebbf3f Add missing includes 2022-05-18 12:17:53 +02:00
Jan Grulich
28e4282899 Rebuild (Qt 5.15.4) 2022-05-17 12:27:19 +02:00
Troy Dawson
6f87bfde8d python2 rpms for rhel9 only 2022-05-06 09:59:03 -07:00
Parag Nemade
f79a8388e1
Update hunspell dictionary path by adding conditional support
F36 Change https://fedoraproject.org/wiki/Changes/Hunspell_dictionary_dir_change

Signed-off-by: Parag Nemade <pnemade@fedoraproject.org>
2022-04-05 09:35:29 +05:30
Jan Grulich
b20253f3ff Disable PipeWire for now, WebRTC in qtwebengine is still PW 0.2 based 2022-03-09 09:53:10 +01:00
Jan Grulich
046e95e43a Rebuild (qt5) 2022-03-09 08:15:12 +01:00
Rex Dieter
864d624114 respin pipewire patch
enable rtc_link_pipewire
2022-02-18 12:36:26 -06:00
Rex Dieter
5e1880c665 patch8 awol, added 2022-02-18 10:18:47 -06:00
Rex Dieter
54a875c23a fix pipewire support
patch inspired by chromium-80.0.3987.87-libpipewire-0.3.patch
2022-02-18 09:58:17 -06:00
Rex Dieter
4c3f7f038d fix typo
*appears* to work this way too, but want to keep option enablement
consistent
2022-02-17 14:12:57 -06:00
Rex Dieter
6736cadbe2 Screen sharing support under Wayland (#2054690) 2022-02-17 14:04:37 -06:00
Rex Dieter
af46fc18c6 use python2 hack only on epel
and not unconditionally
2022-02-17 14:03:23 -06:00
Troy Dawson
dfae144a41 Specifically for epel9 only, until things switch to python3
Bundle python2 for building only
Bundled re2
No docs
2022-02-01 15:45:56 -08:00
Tom spot Callaway
9294599c24 rebuild for libvpx 2022-01-27 16:38:58 -05:00
Troy Dawson
15ba324421 get_free_ffmpeg_source_files.py use python3 2022-01-26 09:39:53 -08:00
Kevin Kofler
f523d61a98 Fix Provides: bundled(*), remove no longer used BR pkgconfig(protobuf).
* Sun Jan 23 2022 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.15.8-2
- Update Provides: bundled(*) version numbers, remove ones dropped upstream
- Restore Provides: bundled(protobuf), unbundling support dropped years ago
- Remove no longer used BuildRequires: yasm and pkgconfig(protobuf)
2022-01-23 17:33:16 +01:00
Kevin Kofler
09d69c316a Remove no longer used BuildRequires: yasm. 2022-01-23 17:01:02 +01:00
Kevin Kofler
9aa6750784 Delete qtwebengine-everywhere-src-5.10.0-linux-pri.patch.
The yasm part is obsolete because QtWebEngine uses nasm now (but
currently a bundled copy, that needs to be fixed).

The libpci part seems obsolete as well, -lpci is getting linked already.

Also restore an AWOL patch comment.
2022-01-23 16:36:40 +01:00
Kevin Kofler
c7db84b885 Include qtwebengine-release.sh as Source1.
(and increment the Source numbers of the cleanup scripts by 1)
2022-01-23 16:22:27 +01:00
Kevin Kofler
e3cb59b44a Mark qtwebengine-release.sh executable. 2022-01-23 16:01:12 +01:00
Kevin Kofler
9ae22d8d06 %undefine _package_note_file (#2043178). 2022-01-22 23:49:21 +01:00
Kevin Kofler
6d39634c0e Set "%%global _package_notes_linker gold" (#2043178). 2022-01-22 16:09:01 +01:00
Kevin Kofler
f6a6f07c22 Revert "Drop "use_gold_linker" (see #2043178)."
This reverts commit b36104f4bb.

This fails to build on i686 due to ffmpeg text relocations (which
produce a warning from ld.bfd, and -Wl,--fatal-warnings gets passed):
https://bugzilla.redhat.com/show_bug.cgi?id=2043178#c14
2022-01-22 16:07:15 +01:00
Kevin Kofler
b36104f4bb Drop "use_gold_linker" (see #2043178). 2022-01-22 13:47:09 +01:00
Kevin Kofler
0c04e957df Fix Provides: bundled(chromium). 2022-01-22 13:45:54 +01:00
Rex Dieter
c36afa25bf one more nullptr.patch (hunspell) 2022-01-19 17:10:14 -06:00
Rex Dieter
02956c858d commit awol nullptr.patch 2022-01-19 09:36:28 -06:00
Rex Dieter
2126c35130 update bundle versions, nullptr gcc12 ftbfs fix 2022-01-19 09:35:51 -06:00
Rex Dieter
2ea927dfdb drop old/unused patches 2022-01-19 08:55:49 -06:00
Rex Dieter
b20c6739c1 5.15.8 2022-01-18 14:31:59 -06:00
Miro Hrončok
a8dd1a7a58 Rebuilt for libre2.so.9 2022-01-08 11:41:46 +01:00
Rex Dieter
1442be6d39 respin harfbuzz.patch 2021-09-21 09:45:06 -05:00
Rex Dieter
db3b70b97f patch use of deprecated harfbuzz apis 2021-09-21 08:58:51 -05:00
Rex Dieter
09d1fc370f rebuild (harfbuzz) 2021-09-20 15:51:37 -05:00
Rex Dieter
40e9dfd0b0 5.15.6 2021-09-03 14:07:40 -05:00
Rex Dieter
b08ccbcbe9 bump bundled(chromium) Provides 2021-08-23 12:24:57 -05:00
Troy Dawson
85acb836bc Fix use-python2.patch 2021-08-12 09:43:31 -07:00
Fedora Release Engineering
bb966b45bd - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 10:52:38 +00:00
Rex Dieter
a767051e9c import qtwebengine-release.sh
Used to generate source tarball
2021-06-28 14:37:43 -05:00
Rex Dieter
d122c01163 5.15.5 2021-06-28 14:07:15 -05:00
Rex Dieter
5c93e67981 respin bool.patch 2021-06-24 14:44:19 -05:00
Rex Dieter
04f58d9aa7 respin bool.patch 2021-06-24 14:15:24 -05:00
Rex Dieter
c2956dae37 respin bool.patch 2021-06-24 12:46:53 -05:00
Rex Dieter
3e16f741fa workaround 'TRUE'/'FALSE' was not declared in this scope 2021-06-24 12:04:43 -05:00
Rex Dieter
4cef673b2d workaround SIGSTKSZ FTBFS (#19455950 2021-06-16 09:23:37 -05:00
Pete Walter
32062243e8 Rebuild for ICU 69 2021-05-20 01:16:47 +01:00
Jonathan Wakely
0236974f1f Rebuilt for removed libstdc++ symbols (#1937698) 2021-05-10 16:08:31 +01:00
Jonathan Wakely
75dddc5aef Rebuilt for removed libstdc++ symbol (#1937698) 2021-03-30 19:39:37 +01:00
Kevin Kofler
a86893d286 Add versioned Conflicts with -freeworld built against bundled ICU (#1920379)
* Tue Jan 26 2021 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.15.2-8
- Add versioned Conflicts with -freeworld built against bundled ICU (#1920379)

The offending -freeworld builds want the ICU data file previously
shipped here. -freeworld must be upgraded together with this package.
2021-01-26 13:52:53 +01:00
Kevin Kofler
8f7f959da3 Fix sandbox issue on 32-bit architectures with glibc >= 2.31 (from Debian)
* Sat Jan 23 2021 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.15.2-7
- Fix sandbox issue on 32-bit architectures with glibc >= 2.31 (from Debian)

Unlike the other sandbox fix, this one also affects stable Fedora
releases, but it affects only 32-bit architectures such as armv7hl or
the i386 multilib, not 64-bit architectures such as x86_64 or aarch64.
2021-01-23 23:31:04 +01:00
Kevin Kofler
393d059f13 Reenable system ICU on F33+, ICU 67 supported since 5.15.1 according to Debian
* Sat Jan 23 2021 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.15.2-6
- Reenable system ICU on F33+, ICU 67 supported since 5.15.1 according to Debian
2021-01-23 10:49:35 +01:00
Kevin Kofler
09e1adb883 -#1904652 patch: Fail more gracefully on bad fstatat.
Do not crash if an fstatat is not allowed, but fail in the way
documented by the fstatat manpage (set errno to EACCES and return -1).
Otherwise, QtWebEngine always crashes.
2021-01-22 19:13:51 +01:00
Kevin Kofler
98d7dd5b84 Fix sandbox issue breaking text rendering with glibc 2.33 (#1904652)
* Wed Jan 20 2021 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.15.2-5
- Fix sandbox issue breaking text rendering with glibc 2.33 (#1904652)
2021-01-20 02:50:55 +01:00
Tom Stellard
101979aadb Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2021-01-09 06:37:01 +00:00
Mattia Verga
bf83cfa46f Rebuild for gcc bugfix upgrade 2020-12-30 14:00:14 +01:00
Jeff Law
6aa5c41e88 Fix another missing #include for gcc-11 2020-12-04 12:22:42 -07:00
Jan Grulich
a3ce39e504 Rebuild for qtbase with -no-reduce-relocations option 2020-11-24 07:55:17 +01:00
Jan Grulich
7d0e99c8fe Rebase GCC11 patch 2020-11-20 11:21:53 +01:00
Jan Grulich
5f4140fe45 Add back missing sources 2020-11-20 09:20:34 +01:00
Jan Grulich
62bdc27178 5.15.2 2020-11-20 09:12:46 +01:00
Jeff Law
bf0addefca Fix missing #includes for gcc-11 2020-11-04 13:39:21 -07:00
Jan Grulich
6cf36e6da8 Rebuild (libevent) 2020-09-23 12:53:07 +02:00
Jan Grulich
c0b909f308 BR: xkbcommon 2020-09-11 12:06:33 +02:00
Jan Grulich
87255949e2 Rebase patches 2020-09-11 10:56:41 +02:00
Jan Grulich
c3347b713e 5.15.1 2020-09-11 10:41:17 +02:00
Than Ngo
0f2066a515 Fix FTBFS 2020-09-06 10:44:40 +02:00
Fedora Release Engineering
9f9009e6e2 - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-08-01 07:36:45 +00:00
Fedora Release Engineering
1d3b8d400f - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-29 05:14:57 +00:00
Marie Loise Nolden
692d13d648 compile on rhel 7 2020-06-17 13:21:29 +00:00
Marie Loise Nolden
000c49fd94 introduce %if 0%{?use_system_re2} %if 0%{?use_system_jsoncpp} to select where to use system vs. shipped libs better
make things a bit more optional for shipped vs. built-in libs re2 and jsoncpp with variables collected at one place.
F30 fails to build because re2 is too small, centos-stream and rhel don't ship them at all while they are included in epel 8 already.
2020-06-17 13:18:40 +00:00
Rex Dieter
e83ad4cc52 pulseaudio header sources too 2020-06-11 15:27:30 -05:00
Rex Dieter
c778c7c102 5.15.0
f33's icu-67.x currently not compatible, use bundled icu
2020-06-11 15:26:18 -05:00
32 changed files with 37792 additions and 463 deletions

21
.gitignore vendored
View File

@ -1,13 +1,10 @@
/qtwebengine-everywhere-src-5.11.1-clean.tar.xz
/qtwebengine-everywhere-src-5.11.2-clean.tar.xz
/qtwebengine-everywhere-src-5.11.3-clean.tar.xz
/qtwebengine-everywhere-src-5.12.1-clean.tar.xz
/qtwebengine-everywhere-src-5.12.2-clean.tar.xz
/qtwebengine-everywhere-src-5.12.3-clean.tar.xz
/qtwebengine-everywhere-src-5.12.4-clean.tar.xz
/pulseaudio-12.2-headers.tar.gz
/qtwebengine-everywhere-src-5.12.5-clean.tar.xz
/qtwebengine-everywhere-src-5.12.6-clean.tar.xz
/qtwebengine-everywhere-src-5.13.2-clean.tar.xz
/qtwebengine-everywhere-src-5.14.1-clean.tar.xz
/qtwebengine-everywhere-src-5.14.2-clean.tar.xz
/qtwebengine-everywhere-src-5.15.8-clean.tar.xz
/python2.7-2.7.18-19.el9.1.src.rpm
/python2.7-2.7.18-19.el9.1.aarch64.rpm
/python2.7-2.7.18-19.el9.1.x86_64.rpm
/qtwebengine-everywhere-src-5.15.9-clean.tar.xz
/qtwebengine-everywhere-src-5.15.10-clean.tar.xz
/qtwebengine-everywhere-src-5.15.12-clean.tar.xz
/qtwebengine-everywhere-src-5.15.16-clean.tar.xz
/qtwebengine-everywhere-src-5.15.17-clean.tar.xz

View File

@ -0,0 +1,12 @@
diff -up qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/angle/src/common/utilities.cpp.nullptr qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/angle/src/common/utilities.cpp
--- qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/angle/src/common/utilities.cpp.nullptr 2021-12-15 10:09:27.000000000 -0600
+++ qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/angle/src/common/utilities.cpp 2022-01-19 08:52:02.659577615 -0600
@@ -254,7 +254,7 @@ std::string GetGLSLTypeString(GLenum typ
return "mat4";
default:
UNREACHABLE();
- return nullptr;
+ return "";
}
}

View File

@ -0,0 +1,12 @@
diff -up qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/hunspell/src/hunspell/hunspell.cxx.nullptr qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/hunspell/src/hunspell/hunspell.cxx
--- qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/hunspell/src/hunspell/hunspell.cxx.nullptr 2021-12-15 10:09:27.000000000 -0600
+++ qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/hunspell/src/hunspell/hunspell.cxx 2022-01-19 10:30:40.845051982 -0600
@@ -1725,7 +1725,7 @@ std::string HunspellImpl::get_xml_par(co
if (end == '>')
end = '<';
else if (end != '\'' && end != '"')
- return 0; // bad XML
+ return dest; // bad XML
for (par++; *par != '\0' && *par != end; ++par) {
dest.push_back(*par);
}

View File

@ -38,6 +38,7 @@ header_files=" libavutil/x86/asm.h \
libavutil/x86/timer.h \
libavutil/aarch64/asm.S \
libavutil/aarch64/bswap.h \
libavutil/aarch64/cpu.h \
libavutil/aarch64/timer.h \
libavutil/arm/asm.S \
libavutil/arm/bswap.h \
@ -61,6 +62,16 @@ header_files=" libavutil/x86/asm.h \
libavutil/avutil.h \
libavutil/bswap.h \
libavutil/buffer_internal.h \
libavcodec/bsf_internal.h \
libavcodec/codec.h \
libavcodec/codec_desc.h \
libavcodec/codec_id.h \
libavcodec/codec_par.h \
libavcodec/decode.h \
libavcodec/hwconfig.h \
libavcodec/internal.h \
libavcodec/packet.h \
libavcodec/packet_internal.h \
libavutil/common.h \
libavutil/colorspace.h \
libavutil/cpu_internal.h \
@ -80,6 +91,7 @@ header_files=" libavutil/x86/asm.h \
libavutil/lzo.h \
libavutil/macros.h \
libavutil/mem_internal.h \
libavcodec/mlp_parse.h \
libavutil/old_pix_fmts.h \
libavutil/pixfmt.h \
libavutil/qsort.h \
@ -89,6 +101,8 @@ header_files=" libavutil/x86/asm.h \
libavutil/timer.h \
libavutil/timestamp.h \
libavutil/time_internal.h \
libavutil/tx_priv.h \
libavutil/tx_template.c \
libavutil/version.h \
libavutil/x86_cpu.h
libavcodec/aarch64/neon.S \
@ -269,6 +283,7 @@ manual_files=" libavutil/x86/x86inc.asm \
libavutil/fixed_dsp.c \
libavutil/float_dsp.c \
libavutil/imgutils.c \
libavutil/aarch64/cpu.c \
libavutil/aarch64/float_dsp_neon.S \
libavutil/arm/cpu.c \
libavutil/arm/float_dsp_neon.S \

View File

@ -21,7 +21,7 @@
if [ -z "$1" ] ; then
echo "usage: ./clean_qtwebengine.sh VERSION"
echo "e.g.: ./clean_qtwebengine.sh 5.14.1"
echo "e.g.: ./clean_qtwebengine.sh 5.15.16"
exit 1
fi
@ -61,7 +61,7 @@ echo "ripping out openh264 sources"
rm -rf "$DIRNAME/src/3rdparty/chromium/third_party/openh264/src" || exit $?
echo "repacking as $DIRNAME-clean.tar.xz"
XZ_OPT="-9 -T 4" tar cJf "$DIRNAME-clean.tar.xz" "$DIRNAME" || exit $?
XZ_OPT="-8 -T 2" tar cJf "$DIRNAME-clean.tar.xz" "$DIRNAME" || exit $?
echo "removing $DIRNAME"
rm -rf "$DIRNAME" || exit $?

View File

@ -0,0 +1,10 @@
--- ./src/3rdparty/chromium/qtwebengine/browser/pdf/BUILD.gn.orig 2024-07-03 13:49:13.812285886 +0100
+++ ./src/3rdparty/chromium/qtwebengine/browser/pdf/BUILD.gn 2024-07-03 13:51:45.789966941 +0100
@@ -6,6 +6,7 @@ source_set("pdf") {
]
deps = [
+ "//chrome/app:generated_resources",
"//content/public/browser",
]
}

View File

@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/python3
# Copyright 2015 Tomas Popela <tpopela@redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@ -73,7 +73,7 @@ def parse_ffmpeg_gyni_file(gyni_path, arch_not_arm):
sys.stderr.write("Something went wrong, no sources parsed!\n")
sys.exit(1)
print ' '.join(output_sources)
print(' '.join(output_sources))
if __name__ == "__main__":

26
python3.12-imp.patch Normal file
View File

@ -0,0 +1,26 @@
Description: stop using imp module which was removed in Python 3.12
Origin: upstream, commits
https://chromium.googlesource.com/chromium/src/+/9e0c89a3b5638ba2
https://chromium.googlesource.com/chromium/src/+/f5f6e361d037c316
Last-Update: 2024-03-17
--- a/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/fileutil.py
+++ b/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/fileutil.py
@@ -3,7 +3,6 @@
# found in the LICENSE file.
import errno
-import imp
import os.path
import sys
--- a/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/lexer.py
+++ b/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/parse/lexer.py
@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import imp
import os.path
import sys

58
python3.12-six.patch Normal file
View File

@ -0,0 +1,58 @@
Patch-Source: https://sources.debian.org/data/main/q/qtwebengine-opensource-src/5.15.16+dfsg-3/debian/patches/python3.12-six.patch
--
Description: implement find_spec() for _SixMetaPathImporter
Origin: upstream, https://github.com/benjaminp/six/commit/25916292d96f5f09
Last-Update: 2024-03-17
--- a/src/3rdparty/chromium/third_party/protobuf/third_party/six/six.py
+++ b/src/3rdparty/chromium/third_party/protobuf/third_party/six/six.py
@@ -71,6 +71,11 @@ else:
MAXSIZE = int((1 << 63) - 1)
del X
+if PY34:
+ from importlib.util import spec_from_loader
+else:
+ spec_from_loader = None
+
def _add_doc(func, doc):
"""Add documentation to a function."""
@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
return self
return None
+ def find_spec(self, fullname, path, target=None):
+ if fullname in self.known_modules:
+ return spec_from_loader(fullname, self)
+ return None
+
def __get_module(self, fullname):
try:
return self.known_modules[fullname]
--- a/src/3rdparty/chromium/tools/grit/third_party/six/__init__.py
+++ b/src/3rdparty/chromium/tools/grit/third_party/six/__init__.py
@@ -71,6 +71,11 @@ else:
MAXSIZE = int((1 << 63) - 1)
del X
+if PY34:
+ from importlib.util import spec_from_loader
+else:
+ spec_from_loader = None
+
def _add_doc(func, doc):
"""Add documentation to a function."""
@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
return self
return None
+ def find_spec(self, fullname, path, target=None):
+ if fullname in self.known_modules:
+ return spec_from_loader(fullname, self)
+ return None
+
def __get_module(self, fullname):
try:
return self.known_modules[fullname]

21
python3.13-pipes.patch Normal file
View File

@ -0,0 +1,21 @@
diff --git a/src/3rdparty/chromium/build/android/gyp/util/build_utils.py b/src/3rdparty/chromium/build/android/gyp/util/build_utils.py
index 022980517..e3f82704a 100644
--- a/src/3rdparty/chromium/build/android/gyp/util/build_utils.py
+++ b/src/3rdparty/chromium/build/android/gyp/util/build_utils.py
@@ -12,7 +12,6 @@ import fnmatch
import json
import logging
import os
-import pipes
import re
import shutil
import stat
@@ -198,7 +197,7 @@ class CalledProcessError(Exception):
# A user should be able to simply copy and paste the command that failed
# into their shell.
copyable_command = '( cd {}; {} )'.format(os.path.abspath(self.cwd),
- ' '.join(map(pipes.quote, self.args)))
+ printed_cmd)
return 'Command failed: {}\n{}'.format(copyable_command, self.output)

45
qt5-qtwebengine-c99.patch Normal file
View File

@ -0,0 +1,45 @@
Avoid calls to the undeclared strlcpy function in libsync. This
prevents a build failure with future compilers.
Submitted upstream: <https://bugreports.qt.io/browse/QTBUG-111440>
diff -up qtwebengine-everywhere-src-5.15.12/src/3rdparty/chromium/third_party/libsync/BUILD.gn.c99 qtwebengine-everywhere-src-5.15.12/src/3rdparty/chromium/third_party/libsync/BUILD.gn
--- qtwebengine-everywhere-src-5.15.12/src/3rdparty/chromium/third_party/libsync/BUILD.gn.c99 2023-02-23 10:54:15.909380015 +0100
+++ qtwebengine-everywhere-src-5.15.12/src/3rdparty/chromium/third_party/libsync/BUILD.gn 2023-02-23 11:00:32.019601795 +0100
@@ -21,24 +21,15 @@ if (!use_system_libsync) {
]
}
- config("libsync_private_config") {
- # To suppress the warning caused by strlcpy.
- cflags = [ "-Wno-implicit-function-declaration" ]
- }
-
source_set("libsync") {
sources = [
"src/include/sync/sync.h",
"src/sw_sync.h",
"src/sync.c",
- "strlcpy.c",
]
configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [
- "//build/config/compiler:no_chromium_code",
- ":libsync_private_config",
- ]
+ configs += [ "//build/config/compiler:no_chromium_code" ]
public_configs = [ ":libsync_config" ]
}
diff -up qtwebengine-everywhere-src-5.15.12/src/3rdparty/chromium/third_party/libsync/src/sync.c.c99 qtwebengine-everywhere-src-5.15.12/src/3rdparty/chromium/third_party/libsync/src/sync.c
--- qtwebengine-everywhere-src-5.15.12/src/3rdparty/chromium/third_party/libsync/src/sync.c.c99 2023-02-23 10:54:30.650231820 +0100
+++ qtwebengine-everywhere-src-5.15.12/src/3rdparty/chromium/third_party/libsync/src/sync.c 2023-02-23 10:54:50.116036131 +0100
@@ -29,6 +29,7 @@
#include <sync/sync.h>
+#include "../strlcpy.c"
struct sw_sync_create_fence_data {
__u32 value;

View File

@ -0,0 +1,493 @@
From 6e554a30893150793c2638e3689cf208ffc8e375 Mon Sep 17 00:00:00 2001
From: Dale Curtis <dalecurtis@chromium.org>
Date: Sat, 2 Apr 2022 05:13:53 +0000
Subject: [PATCH] Roll src/third_party/ffmpeg/ 574c39cce..32b2d1d526 (1125
commits)
https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/574c39cce323..32b2d1d526
Created with:
roll-dep src/third_party/ffmpeg
Fixed: 1293918
Cq-Include-Trybots: luci.chromium.try:mac_chromium_asan_rel_ng,linux_chromium_asan_rel_ng,linux_chromium_chromeos_asan_rel_ng
Change-Id: I41945d0f963e3d1f65940067bac22f63b68e37d2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3565647
Auto-Submit: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#988253}
---
.../clear_key_cdm/ffmpeg_cdm_audio_decoder.cc | 29 ++++++++++---------
media/ffmpeg/ffmpeg_common.cc | 11 +++----
media/filters/audio_file_reader.cc | 9 +++---
media/filters/audio_file_reader_unittest.cc | 6 ++--
.../filters/audio_video_metadata_extractor.cc | 11 +++++--
.../filters/ffmpeg_aac_bitstream_converter.cc | 7 +++--
...ffmpeg_aac_bitstream_converter_unittest.cc | 2 +-
media/filters/ffmpeg_audio_decoder.cc | 13 +++++----
8 files changed, 51 insertions(+), 37 deletions(-)
diff --git a/src/3rdparty/chromium/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc b/src/3rdparty/chromium/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
index a043005..9ae2ca9 100644
--- a/src/3rdparty/chromium/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
+++ b/src/3rdparty/chromium/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
@@ -73,7 +73,7 @@ void CdmAudioDecoderConfigToAVCodecContext(
codec_context->sample_fmt = AV_SAMPLE_FMT_NONE;
}
- codec_context->channels = config.channel_count;
+ codec_context->ch_layout.nb_channels = config.channel_count;
codec_context->sample_rate = config.samples_per_second;
if (config.extra_data) {
@@ -123,8 +123,8 @@ void CopySamples(cdm::AudioFormat cdm_format,
case cdm::kAudioFormatPlanarS16:
case cdm::kAudioFormatPlanarF32: {
const int decoded_size_per_channel =
- decoded_audio_size / av_frame.channels;
- for (int i = 0; i < av_frame.channels; ++i) {
+ decoded_audio_size / av_frame.ch_layout.nb_channels;
+ for (int i = 0; i < av_frame.ch_layout.nb_channels; ++i) {
memcpy(output_buffer, av_frame.extended_data[i],
decoded_size_per_channel);
output_buffer += decoded_size_per_channel;
@@ -184,13 +184,14 @@ bool FFmpegCdmAudioDecoder::Initialize(
// Success!
decoding_loop_.reset(new FFmpegDecodingLoop(codec_context_.get()));
samples_per_second_ = config.samples_per_second;
- bytes_per_frame_ = codec_context_->channels * config.bits_per_channel / 8;
+ bytes_per_frame_ =
+ codec_context_->ch_layout.nb_channels * config.bits_per_channel / 8;
output_timestamp_helper_.reset(
new AudioTimestampHelper(config.samples_per_second));
is_initialized_ = true;
// Store initial values to guard against midstream configuration changes.
- channels_ = codec_context_->channels;
+ channels_ = codec_context_->ch_layout.nb_channels;
av_sample_format_ = codec_context_->sample_fmt;
return true;
@@ -290,17 +291,18 @@ cdm::Status FFmpegCdmAudioDecoder::DecodeBuffer(
for (auto& frame : audio_frames) {
int decoded_audio_size = 0;
if (frame->sample_rate != samples_per_second_ ||
- frame->channels != channels_ || frame->format != av_sample_format_) {
+ frame->ch_layout.nb_channels != channels_ ||
+ frame->format != av_sample_format_) {
DLOG(ERROR) << "Unsupported midstream configuration change!"
<< " Sample Rate: " << frame->sample_rate << " vs "
- << samples_per_second_ << ", Channels: " << frame->channels
+ << samples_per_second_ << ", Channels: " << frame->ch_layout.nb_channels
<< " vs " << channels_ << ", Sample Format: " << frame->format
<< " vs " << av_sample_format_;
return cdm::kDecodeError;
}
decoded_audio_size = av_samples_get_buffer_size(
- nullptr, codec_context_->channels, frame->nb_samples,
+ nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples,
codec_context_->sample_fmt, 1);
if (!decoded_audio_size)
continue;
@@ -319,7 +321,7 @@ bool FFmpegCdmAudioDecoder::OnNewFrame(
size_t* total_size,
std::vector<std::unique_ptr<AVFrame, ScopedPtrAVFreeFrame>>* audio_frames,
AVFrame* frame) {
- *total_size += av_samples_get_buffer_size(nullptr, codec_context_->channels,
+ *total_size += av_samples_get_buffer_size(nullptr, codec_context_->ch_layout.nb_channels,
frame->nb_samples,
codec_context_->sample_fmt, 1);
audio_frames->emplace_back(av_frame_clone(frame));
diff --git a/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc b/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc
index c17dd9f..0448cb5 100644
--- a/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc
+++ b/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc
@@ -341,10 +341,11 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context,
codec_context->sample_fmt, codec_context->codec_id);
ChannelLayout channel_layout =
- codec_context->channels > 8
+ codec_context->ch_layout.nb_channels > 8
? CHANNEL_LAYOUT_DISCRETE
- : ChannelLayoutToChromeChannelLayout(codec_context->channel_layout,
- codec_context->channels);
+ : ChannelLayoutToChromeChannelLayout(
+ codec_context->ch_layout.u.mask,
+ codec_context->ch_layout.nb_channels);
int sample_rate = codec_context->sample_rate;
switch (codec) {
@@ -397,7 +398,7 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context,
extra_data, encryption_scheme, seek_preroll,
codec_context->delay);
if (channel_layout == CHANNEL_LAYOUT_DISCRETE)
- config->SetChannelsForDiscrete(codec_context->channels);
+ config->SetChannelsForDiscrete(codec_context->ch_layout.nb_channels);
#if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO)
// These are bitstream formats unknown to ffmpeg, so they don't have
@@ -462,7 +463,7 @@ void AudioDecoderConfigToAVCodecContext(const AudioDecoderConfig& config,
// TODO(scherkus): should we set |channel_layout|? I'm not sure if FFmpeg uses
// said information to decode.
- codec_context->channels = config.channels();
+ codec_context->ch_layout.nb_channels = config.channels();
codec_context->sample_rate = config.samples_per_second();
if (config.extra_data().empty()) {
diff --git a/src/3rdparty/chromium/media/filters/audio_file_reader.cc b/src/3rdparty/chromium/media/filters/audio_file_reader.cc
index bd73908..745c4c7 100644
--- a/src/3rdparty/chromium/media/filters/audio_file_reader.cc
+++ b/src/3rdparty/chromium/media/filters/audio_file_reader.cc
@@ -112,14 +112,15 @@ bool AudioFileReader::OpenDecoder() {
// Verify the channel layout is supported by Chrome. Acts as a sanity check
// against invalid files. See http://crbug.com/171962
- if (ChannelLayoutToChromeChannelLayout(codec_context_->channel_layout,
- codec_context_->channels) ==
+ if (ChannelLayoutToChromeChannelLayout(
+ codec_context_->ch_layout.u.mask,
+ codec_context_->ch_layout.nb_channels) ==
CHANNEL_LAYOUT_UNSUPPORTED) {
return false;
}
// Store initial values to guard against midstream configuration changes.
- channels_ = codec_context_->channels;
+ channels_ = codec_context_->ch_layout.nb_channels;
audio_codec_ = CodecIDToAudioCodec(codec_context_->codec_id);
sample_rate_ = codec_context_->sample_rate;
av_sample_format_ = codec_context_->sample_fmt;
@@ -222,7 +223,7 @@ bool AudioFileReader::OnNewFrame(
if (frames_read < 0)
return false;
- const int channels = frame->channels;
+ const int channels = frame->ch_layout.nb_channels;
if (frame->sample_rate != sample_rate_ || channels != channels_ ||
frame->format != av_sample_format_) {
DLOG(ERROR) << "Unsupported midstream configuration change!"
diff --git a/src/3rdparty/chromium/media/filters/ffmpeg_aac_bitstream_converter.cc b/src/3rdparty/chromium/media/filters/ffmpeg_aac_bitstream_converter.cc
index 6f231c8..ca5e5fb 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_aac_bitstream_converter.cc
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_aac_bitstream_converter.cc
@@ -195,14 +195,15 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) {
if (!header_generated_ || codec_ != stream_codec_parameters_->codec_id ||
audio_profile_ != stream_codec_parameters_->profile ||
sample_rate_index_ != sample_rate_index ||
- channel_configuration_ != stream_codec_parameters_->channels ||
+ channel_configuration_ !=
+ stream_codec_parameters_->ch_layout.nb_channels ||
frame_length_ != header_plus_packet_size) {
header_generated_ =
GenerateAdtsHeader(stream_codec_parameters_->codec_id,
0, // layer
stream_codec_parameters_->profile, sample_rate_index,
0, // private stream
- stream_codec_parameters_->channels,
+ stream_codec_parameters_->ch_layout.nb_channels,
0, // originality
0, // home
0, // copyrighted_stream
@@ -214,7 +215,7 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) {
codec_ = stream_codec_parameters_->codec_id;
audio_profile_ = stream_codec_parameters_->profile;
sample_rate_index_ = sample_rate_index;
- channel_configuration_ = stream_codec_parameters_->channels;
+ channel_configuration_ = stream_codec_parameters_->ch_layout.nb_channels;
frame_length_ = header_plus_packet_size;
}
diff --git a/src/3rdparty/chromium/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc b/src/3rdparty/chromium/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
index ac8bb13..3e4e3f6 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
@@ -29,7 +29,7 @@ class FFmpegAACBitstreamConverterTest : public testing::Test {
memset(&test_parameters_, 0, sizeof(AVCodecParameters));
test_parameters_.codec_id = AV_CODEC_ID_AAC;
test_parameters_.profile = FF_PROFILE_AAC_MAIN;
- test_parameters_.channels = 2;
+ test_parameters_.ch_layout.nb_channels = 2;
test_parameters_.extradata = extradata_header_;
test_parameters_.extradata_size = sizeof(extradata_header_);
}
diff --git a/src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc b/src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc
index 72fac61..ab49fd5 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc
@@ -27,7 +27,7 @@ namespace media {
// Return the number of channels from the data in |frame|.
static inline int DetermineChannels(AVFrame* frame) {
- return frame->channels;
+ return frame->ch_layout.nb_channels;
}
// Called by FFmpeg's allocation routine to allocate a buffer. Uses
@@ -227,7 +227,7 @@ bool FFmpegAudioDecoder::OnNewFrame(const DecoderBuffer& buffer,
// Translate unsupported into discrete layouts for discrete configurations;
// ffmpeg does not have a labeled discrete configuration internally.
ChannelLayout channel_layout = ChannelLayoutToChromeChannelLayout(
- codec_context_->channel_layout, codec_context_->channels);
+ codec_context_->ch_layout.u.mask, codec_context_->ch_layout.nb_channels);
if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED &&
config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE) {
channel_layout = CHANNEL_LAYOUT_DISCRETE;
@@ -344,11 +344,11 @@ bool FFmpegAudioDecoder::ConfigureDecoder(const AudioDecoderConfig& config) {
// Success!
av_sample_format_ = codec_context_->sample_fmt;
- if (codec_context_->channels != config.channels()) {
+ if (codec_context_->ch_layout.nb_channels != config.channels()) {
MEDIA_LOG(ERROR, media_log_)
<< "Audio configuration specified " << config.channels()
<< " channels, but FFmpeg thinks the file contains "
- << codec_context_->channels << " channels";
+ << codec_context_->ch_layout.nb_channels << " channels";
ReleaseFFmpegResources();
state_ = kUninitialized;
return false;
@@ -398,7 +398,7 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s,
if (frame->nb_samples <= 0)
return AVERROR(EINVAL);
- if (s->channels != channels) {
+ if (s->ch_layout.nb_channels != channels) {
DLOG(ERROR) << "AVCodecContext and AVFrame disagree on channel count.";
return AVERROR(EINVAL);
}
@@ -431,7 +431,8 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s,
ChannelLayout channel_layout =
config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE
? CHANNEL_LAYOUT_DISCRETE
- : ChannelLayoutToChromeChannelLayout(s->channel_layout, s->channels);
+ : ChannelLayoutToChromeChannelLayout(s->ch_layout.u.mask,
+ s->ch_layout.nb_channels);
if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED) {
DLOG(ERROR) << "Unsupported channel layout.";
commit 62274859104bd828373ae406aa9309e610449ac5
Author: Ted Meyer <tmathmeyer@chromium.org>
Date: Fri Mar 22 19:56:55 2024 +0000
Replace deprecated use of AVCodecContext::reordered_opaque
We can use the AV_CODEC_FLAG_COPY_OPAQUE flag on the codec context
now to trigger timestamp propagation.
Bug: 330573128
Change-Id: I6bc57241a35ab5283742aad8d42acb4dc5e85858
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5384308
Commit-Queue: Ted (Chromium) Meyer <tmathmeyer@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1277051}
diff --git a/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc b/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc
index 0448cb5..89e9cf9 100644
--- a/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc
+++ b/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc
@@ -414,7 +414,9 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context,
#if BUILDFLAG(USE_PROPRIETARY_CODECS)
// TODO(dalecurtis): Just use the profile from the codec context if ffmpeg
// ever starts supporting xHE-AAC.
- if (codec == kCodecAAC && codec_context->profile == FF_PROFILE_UNKNOWN) {
+ constexpr uint8_t kXHEAAc = 41;
+ if (codec == kCodecAAC && codec_context->profile == FF_PROFILE_UNKNOWN ||
+ codec_context->profile == kXHEAAc) {
// Errors aren't fatal here, so just drop any MediaLog messages.
NullMediaLog media_log;
mp4::AAC aac_parser;
diff --git a/src/3rdparty/chromium/media/ffmpeg/ffmpeg_regression_tests.cc b/src/3rdparty/chromium/media/ffmpeg/ffmpeg_regression_tests.cc
index ebd1bab..04d5ecc 100644
--- a/src/3rdparty/chromium/media/ffmpeg/ffmpeg_regression_tests.cc
+++ b/src/3rdparty/chromium/media/ffmpeg/ffmpeg_regression_tests.cc
@@ -86,16 +86,16 @@ FFMPEG_TEST_CASE(Cr47761, "crbug47761.ogg", PIPELINE_OK, PIPELINE_OK);
FFMPEG_TEST_CASE(Cr50045, "crbug50045.mp4", PIPELINE_OK, PIPELINE_OK);
FFMPEG_TEST_CASE(Cr62127, "crbug62127.webm", PIPELINE_OK, PIPELINE_OK);
FFMPEG_TEST_CASE(Cr93620, "security/93620.ogg", PIPELINE_OK, PIPELINE_OK);
-FFMPEG_TEST_CASE(Cr100492,
- "security/100492.webm",
- DECODER_ERROR_NOT_SUPPORTED,
- DECODER_ERROR_NOT_SUPPORTED);
+FFMPEG_TEST_CASE(Cr100492, "security/100492.webm", PIPELINE_OK, PIPELINE_OK);
FFMPEG_TEST_CASE(Cr100543, "security/100543.webm", PIPELINE_OK, PIPELINE_OK);
FFMPEG_TEST_CASE(Cr101458,
"security/101458.webm",
PIPELINE_ERROR_DECODE,
PIPELINE_ERROR_DECODE);
-FFMPEG_TEST_CASE(Cr108416, "security/108416.webm", PIPELINE_OK, PIPELINE_OK);
+FFMPEG_TEST_CASE(Cr108416,
+ "security/108416.webm",
+ PIPELINE_ERROR_DECODE,
+ PIPELINE_ERROR_DECODE);
FFMPEG_TEST_CASE(Cr110849,
"security/110849.mkv",
DEMUXER_ERROR_COULD_NOT_OPEN,
@@ -150,7 +150,10 @@ FFMPEG_TEST_CASE(Cr234630b,
"security/234630b.mov",
DEMUXER_ERROR_NO_SUPPORTED_STREAMS,
DEMUXER_ERROR_NO_SUPPORTED_STREAMS);
-FFMPEG_TEST_CASE(Cr242786, "security/242786.webm", PIPELINE_OK, PIPELINE_OK);
+FFMPEG_TEST_CASE(Cr242786,
+ "security/242786.webm",
+ PIPELINE_OK,
+ PIPELINE_ERROR_DECODE);
// Test for out-of-bounds access with slightly corrupt file (detection logic
// thinks it's a MONO file, but actually contains STEREO audio).
FFMPEG_TEST_CASE(Cr275590,
@@ -371,8 +374,8 @@ FFMPEG_TEST_CASE(WEBM_2,
DEMUXER_ERROR_NO_SUPPORTED_STREAMS);
FFMPEG_TEST_CASE(WEBM_4,
"security/out.webm.68798.1929",
- DECODER_ERROR_NOT_SUPPORTED,
- DECODER_ERROR_NOT_SUPPORTED);
+ PIPELINE_OK,
+ PIPELINE_OK);
FFMPEG_TEST_CASE(WEBM_5, "frame_size_change.webm", PIPELINE_OK, PIPELINE_OK);
// General MKV test cases.
diff --git a/src/3rdparty/chromium/media/filters/audio_file_reader.cc b/src/3rdparty/chromium/media/filters/audio_file_reader.cc
index 745c4c7..2b3abba 100644
--- a/src/3rdparty/chromium/media/filters/audio_file_reader.cc
+++ b/src/3rdparty/chromium/media/filters/audio_file_reader.cc
@@ -242,10 +242,10 @@ bool AudioFileReader::OnNewFrame(
// silence from being output. In the case where we are also discarding some
// portion of the packet (as indicated by a negative pts), we further want to
// adjust the duration downward by however much exists before zero.
- if (audio_codec_ == kCodecAAC && frame->pkt_duration) {
+ if (audio_codec_ == kCodecAAC && frame->duration) {
const base::TimeDelta pkt_duration = ConvertFromTimeBase(
glue_->format_context()->streams[stream_index_]->time_base,
- frame->pkt_duration + std::min(static_cast<int64_t>(0), frame->pts));
+ frame->duration + std::min(static_cast<int64_t>(0), frame->pts));
const base::TimeDelta frame_duration = base::TimeDelta::FromSecondsD(
frames_read / static_cast<double>(sample_rate_));
diff --git a/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc b/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc
index 7996606..a15aafc 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc
@@ -86,7 +86,7 @@ bool FFmpegVideoDecoder::IsCodecSupported(VideoCodec codec) {
}
FFmpegVideoDecoder::FFmpegVideoDecoder(MediaLog* media_log)
- : media_log_(media_log), state_(kUninitialized), decode_nalus_(false) {
+ : media_log_(media_log), state_(kUninitialized), decode_nalus_(false), timestamp_map_(128) {
DVLOG(1) << __func__;
thread_checker_.DetachFromThread();
}
@@ -183,7 +183,6 @@ int FFmpegVideoDecoder::GetVideoBuffer(struct AVCodecContext* codec_context,
frame->width = coded_size.width();
frame->height = coded_size.height();
frame->format = codec_context->pix_fmt;
- frame->reordered_opaque = codec_context->reordered_opaque;
// Now create an AVBufferRef for the data just allocated. It will own the
// reference to the VideoFrame object.
@@ -318,8 +317,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(timestamp_id, timestamp);
+ packet.opaque = reinterpret_cast<void*>(timestamp_id.GetUnsafeValue());
}
switch (decoding_loop_->DecodePacket(
@@ -358,8 +359,13 @@ bool FFmpegVideoDecoder::OnNewFrame(AVFrame* frame) {
scoped_refptr<VideoFrame> video_frame =
reinterpret_cast<VideoFrame*>(av_buffer_get_opaque(frame->buf[0]));
+ 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;
+ }
video_frame->set_timestamp(
- base::TimeDelta::FromMicroseconds(frame->reordered_opaque));
+ base::TimeDelta::FromMicroseconds(std::get<1>(*ts_lookup)));
video_frame->metadata()->power_efficient = false;
output_cb_.Run(video_frame);
return true;
@@ -385,8 +391,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/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.h b/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.h
index f13ce41..ee2444b 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.h
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.h
@@ -8,6 +8,8 @@
#include <list>
#include <memory>
+#include "base/containers/mru_cache.h"
+#include "base/util/type_safety/id_type.h"
#include "base/callback.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
@@ -85,6 +87,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 = util::IdType<int64_t, size_t, 0>;
+
+ TimestampId::Generator timestamp_id_generator_;
+ base::MRUCache<TimestampId, int64_t> timestamp_map_;
+
VideoDecoderConfig config_;
VideoFramePool frame_pool_;
diff --git a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
index d12fade..8abfbbf 100644
--- a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
+++ b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
@@ -114,7 +114,6 @@ int H264DecoderImpl::AVGetBuffer2(AVCodecContext* context,
int total_size = y_size + 2 * uv_size;
av_frame->format = context->pix_fmt;
- av_frame->reordered_opaque = context->reordered_opaque;
// Set |av_frame| members as required by FFmpeg.
av_frame->data[kYPlaneIndex] = frame_buffer->MutableDataY();
@@ -273,8 +272,6 @@ int32_t H264DecoderImpl::Decode(const EncodedImage& input_image,
return WEBRTC_VIDEO_CODEC_ERROR;
}
packet.size = static_cast<int>(input_image.size());
- int64_t frame_timestamp_us = input_image.ntp_time_ms_ * 1000; // ms -> μs
- av_context_->reordered_opaque = frame_timestamp_us;
int result = avcodec_send_packet(av_context_.get(), &packet);
if (result < 0) {
@@ -290,10 +287,6 @@ int32_t H264DecoderImpl::Decode(const EncodedImage& input_image,
return WEBRTC_VIDEO_CODEC_ERROR;
}
- // We don't expect reordering. Decoded frame tamestamp should match
- // the input one.
- RTC_DCHECK_EQ(av_frame_->reordered_opaque, frame_timestamp_us);
-
absl::optional<uint8_t> qp;
// TODO(sakal): Maybe it is possible to get QP directly from FFmpeg.
h264_bitstream_parser_.ParseBitstream(input_image.data(), input_image.size());

View File

@ -2,19 +2,18 @@
%global _hardened_build 1
# define to build docs, need to undef this for bootstrapping
# where qt5-qttools (qt5-doctools) builds are not yet available
%global docs 1
# package-notes causes FTBFS (#2043178)
%undefine _package_note_file
%if 0%{?fedora}
# need libvpx >= 1.8.0 (need commit 297dfd869609d7c3c5cd5faa3ebc7b43a394434e)
%global use_system_libvpx 1
# For screen sharing on Wayland, currently Fedora only thing - no epel
#global pipewire 1
%endif
# need libwebp >= 0.6.0
%global use_system_libwebp 1
%if 0%{?fedora} > 31
# need libicu >= 64, only currently available on f32+
%if 0%{?fedora} > 32
# need libicu >= 65, only currently available on f33+
%global use_system_libicu 1
%endif
@ -48,35 +47,30 @@
Summary: Qt5 - QtWebEngine components
Name: qt5-qtwebengine
Version: 5.14.2
Release: 2%{?dist}
Version: 5.15.17
Release: 8.0.riscv64%{?dist}
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
# See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html
# The other licenses are from Chromium and the code it bundles
License: (LGPLv2 with exceptions or GPLv3 with exceptions) and BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
URL: http://www.qt.io
# leaned tarball with patent-encumbered codecs removed from the bundled FFmpeg
# wget http://download.qt.io/official_releases/qt/5.14/5.14.2/submodules/qtwebengine-everywhere-src-5.14.2.tar.xz
# ./clean_qtwebengine.sh 5.14.2
# cleaned tarball with patent-encumbered codecs removed from the bundled FFmpeg
# ./qtwebengine-release.sh
# ./clean_qtwebengine.sh 5.15.1
Source0: qtwebengine-everywhere-src-%{version}-clean.tar.xz
# release script used above
Source1: qtwebengine-release.sh
# cleanup scripts used above
Source1: clean_qtwebengine.sh
Source2: clean_ffmpeg.sh
Source3: get_free_ffmpeg_source_files.py
Source2: clean_qtwebengine.sh
Source3: clean_ffmpeg.sh
Source4: get_free_ffmpeg_source_files.py
# macros
Source10: macros.qt5-qtwebengine
# pulseaudio headers
Source20: pulseaudio-12.2-headers.tar.gz
# some tweaks to linux.pri (system yasm, link libpci, run unbundling script)
Patch0: qtwebengine-everywhere-src-5.10.0-linux-pri.patch
# quick hack to avoid checking for the nonexistent icudtl.dat and silence the
# resulting warnings - not upstreamable as is because it removes the fallback
# mechanism for the ICU data directory (which is not used in our builds because
# we use the system ICU, which embeds the data statically) completely
Patch1: qtwebengine-everywhere-src-5.11.0-no-icudtl-dat.patch
# fix extractCFlag to also look in QMAKE_CFLAGS_RELEASE, needed to detect the
# ARM flags with our %%qmake_qt5 macro, including for the next patch
Patch2: qtwebengine-opensource-src-5.12.4-fix-extractcflag.patch
@ -86,26 +80,39 @@ Patch3: qtwebengine-opensource-src-5.9.0-no-neon.patch
# workaround FTBFS against kernel-headers-5.2.0+
Patch4: qtwebengine-SIOCGSTAMP.patch
# fix build when using qt < 5.14
Patch5: qtwebengine-5.14-1-QT_DEPRECATED_VERSION.patch
# remove Android dependencies from openmax_dl ARM NEON detection (detect.c)
Patch10: qtwebengine-opensource-src-5.9.0-openmax-dl-neon.patch
# Force verbose output from the GN bootstrap process
Patch21: qtwebengine-everywhere-src-5.12.0-gn-bootstrap-verbose.patch
Patch5: qtwebengine-5.15.0-QT_DEPRECATED_VERSION.patch
# gcc-12 FTBFS "use of deleted function"
Patch6: chromium-angle-nullptr.patch
Patch7: chromium-hunspell-nullptr.patch
Patch8: qtwebengine-everywhere-5.15.8-libpipewire-0.3.patch
# Fix/workaround FTBFS on aarch64 with newer glibc
Patch24: qtwebengine-everywhere-src-5.11.3-aarch64-new-stat.patch
# Use Python2
Patch26: qtwebengine-everywhere-5.13.2-use-python2.patch
# Fix missing include in chromium
Patch27: qtwebengine-everywhere-5.13.2-fix-chromium-headers.patch
# Fix gcc10 FTBFS
Patch29: qtwebengine-everywhere-5.14.1-gcc10.patch
Patch32: qtwebengine-skia-missing-includes.patch
Patch34: qtwebengine-fix-build.patch
Patch35: qt5-qtwebengine-c99.patch
# Working with ffmpeg
Patch60: qtwebengine-ffmpeg5.patch
# Adapt for ffmpeg7 (from openSUSE)
Patch61: qt5-qtwebengine-ffmpeg7.patch
# Fix build
Patch70: qtwebengine-5.15.13_p20240322-ninja1.12.patch
Patch71: fix_build_pdf_extension_util.patch
Patch72: python3.12-imp.patch
Patch73: python3.12-six.patch
Patch74: python3.13-pipes.patch
# riscv64 support patch from https://github.com/felixonmars/archriscv-packages/tree/master/qt5-webengine
Patch100: v8.patch
Patch101: riscv.patch
## Upstream patches:
# qtwebengine-chromium
# handled by qt5-srpm-macros, which defines %%qt5_qtwebengine_arches
ExclusiveArch: %{qt5_qtwebengine_arches}
BuildRequires: make
BuildRequires: qt5-qtbase-devel
BuildRequires: qt5-qtbase-private-devel
# TODO: check of = is really needed or if >= would be good enough -- rex
@ -114,6 +121,7 @@ BuildRequires: qt5-qtdeclarative-devel
BuildRequires: qt5-qtxmlpatterns-devel
BuildRequires: qt5-qtlocation-devel
BuildRequires: qt5-qtsensors-devel
BuildRequires: qt5-qtsvg-devel
BuildRequires: qt5-qtwebchannel-devel
BuildRequires: qt5-qttools-static
# for examples?
@ -123,20 +131,23 @@ BuildRequires: cmake
BuildRequires: bison
BuildRequires: flex
BuildRequires: gcc-c++
%ifnarch riscv64
BuildRequires: binutils-gold
%endif
# gn links statically (for now)
BuildRequires: libstdc++-static
BuildRequires: git-core
BuildRequires: gperf
BuildRequires: krb5-devel
%if 0%{?use_system_libicu}
BuildRequires: libicu-devel >= 64
BuildRequires: libicu-devel >= 65
%endif
BuildRequires: libjpeg-devel
BuildRequires: re2-devel
BuildRequires: snappy-devel
%ifarch %{ix86} x86_64
BuildRequires: yasm
BuildRequires: nodejs
%if 0%{?pipewire}
BuildRequires: pkgconfig(libpipewire-0.3)
%endif
BuildRequires: snappy-devel
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(gobject-2.0)
BuildRequires: pkgconfig(glib-2.0)
@ -147,20 +158,15 @@ BuildRequires: pkgconfig(egl)
BuildRequires: pkgconfig(jsoncpp)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libudev)
%if 0%{?use_system_libwebp}
BuildRequires: pkgconfig(libwebp) >= 0.6.0
%endif
BuildRequires: pkgconfig(harfbuzz)
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(opus)
BuildRequires: pkgconfig(protobuf)
BuildRequires: pkgconfig(libevent)
BuildRequires: pkgconfig(poppler-cpp)
BuildRequires: pkgconfig(zlib)
%if 0%{?fedora} && 0%{?fedora} < 30
BuildRequires: pkgconfig(minizip)
%else
BuildConflicts: minizip-devel
Provides: bundled(minizip) = 1.2
%endif
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xi)
BuildRequires: pkgconfig(xcursor)
@ -179,21 +185,26 @@ BuildRequires: pkgconfig(libpci)
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(nss)
BuildRequires: pkgconfig(lcms2)
BuildRequires: pkgconfig(xkbcommon)
BuildRequires: pkgconfig(xkbfile)
## https://bugreports.qt.io/browse/QTBUG-59094
## requires libxml2 built with icu support
#BuildRequires: pkgconfig(libxslt) pkgconfig(libxml-2.0)
BuildRequires: perl-interpreter
# fesco exception to allow python2 use: https://pagure.io/fesco/issue/2208
# per https://fedoraproject.org/wiki/Changes/RetirePython2#FESCo_exceptions
# Only the interpreter is needed
%if 0%{?fedora} > 29 || 0%{?rhel} > 8
BuildRequires: %{__python2}
%else
BuildRequires: python2
BuildRequires: python2-rpm-macros
%endif
BuildRequires: %{__python3}
BuildRequires: python3-html5lib
%if 0%{?use_system_libvpx}
BuildRequires: pkgconfig(vpx) >= 1.7.0
BuildRequires: pkgconfig(vpx) >= 1.8.0
%endif
# For python on EPEL9, These get pulled in via python2
BuildRequires: libtirpc
BuildRequires: libnsl2
BuildRequires: python-rpm-macros
# For ffmpeg libraries
BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libavformat)
BuildRequires: pkgconfig(libavutil)
# extra (non-upstream) functions needed, see
# src/3rdparty/chromium/third_party/sqlite/README.chromium for details
@ -212,16 +223,18 @@ BuildRequires: pkgconfig(vpx) >= 1.7.0
# Of course, Chromium itself is bundled. It cannot be unbundled because it is
# not a library, but forked (modified) application code.
# Some security fixes (up to version 64.0.3282.140) are backported, see:
# http://code.qt.io/cgit/qt/qtwebengine-chromium.git/log/?h=61-based
# see dist/changes-5.10.1 for the version numbers (base, security fixes) and for
# a list of CVEs fixed by the added security backports
# See Patch101 for additional fixes applied (up to version 65.0.3325.146)
Provides: bundled(chromium) = 61.0.3163.140
Provides: bundled(chromium) = 87.0.4280.144
# Bundled in src/3rdparty/chromium/third_party:
# Check src/3rdparty/chromium/third_party/*/README.chromium for version numbers,
# except where specified otherwise.
# Note that many of those libraries are git snapshots, so version numbers are
# necessarily approximate.
# Also note that the list is probably not complete anymore due to Chromium
# adding more and more bundled stuff at every release, some of which (but not
# all) is actually built in QtWebEngine.
# src/3rdparty/chromium/third_party/angle/doc/ChoosingANGLEBranch.md points to
# http://omahaproxy.appspot.com/deps.json?version=87.0.4280.144 chromium_branch
Provides: bundled(angle) = 2422
# Google's fork of OpenSSL
# We cannot build against NSS instead because it no longer works with NSS 3.21:
@ -237,43 +250,38 @@ Provides: bundled(brotli)
# out. See clean_qtwebengine.sh, clean_ffmpeg.sh, and
# get_free_ffmpeg_source_files.py.
# see src/3rdparty/chromium/third_party/ffmpeg/Changelog for the version number
Provides: bundled(ffmpeg) = 3.3
Provides: bundled(ffmpeg) = 4.3
Provides: bundled(hunspell) = 1.6.0
Provides: bundled(iccjpeg)
# bundled as "khronos", headers only
Provides: bundled(khronos_headers)
# bundled as "leveldatabase"
Provides: bundled(leveldb) = 1.20
Provides: bundled(leveldb) = 1.22
# bundled as "libjingle_xmpp"
Provides: bundled(libjingle)
# see src/3rdparty/chromium/third_party/libsrtp/CHANGES for the version number
Provides: bundled(libsrtp) = 2.1.0
Provides: bundled(libsrtp) = 2.2.0
%if !0%{?use_system_libvpx}
# claims "Version: 1.6.0", but according to the fine print, this is actually a
# snapshot from master from after the 1.6.1 release
Provides: bundled(libvpx) = 1.6.1
%endif
%if !0%{?use_system_libwebp}
Provides: bundled(libwebp) = 0.6.0
Provides: bundled(libvpx) = 1.8.2
%endif
# bundled as "libxml"
# see src/3rdparty/chromium/third_party/libxml/linux/include/libxml/xmlversion.h
Provides: bundled(libxml2) = 2.9.4
# post 2.9.9 snapshot?, 2.9.9-0b3c64d9f2f3e9ce1a98d8f19ee7a763c87e27d5
Provides: bundled(libxml2) = 2.9.10
# see src/3rdparty/chromium/third_party/libxslt/linux/config.h for version
Provides: bundled(libxslt) = 1.1.29
Provides: bundled(libxslt) = 1.1.34
Provides: bundled(libXNVCtrl) = 302.17
Provides: bundled(libyuv) = 1658
Provides: bundled(libyuv) = 1768
Provides: bundled(modp_b64)
Provides: bundled(openmax_dl) = 1.0.2
Provides: bundled(ots)
Provides: bundled(re2)
# see src/3rdparty/chromium/third_party/protobuf/CHANGES.txt for the version
#Provides: bundled(protobuf) = 3.0.0-0.1.beta3
Provides: bundled(protobuf) = 3.9.0
Provides: bundled(qcms) = 4
Provides: bundled(sfntly)
Provides: bundled(skia)
# bundled as "smhasher"
Provides: bundled(SMHasher) = 0-0.1.svn147
Provides: bundled(sqlite) = 3.20
Provides: bundled(SMHasher) = 0-147
Provides: bundled(sqlite) = 3.35.5
Provides: bundled(usrsctp)
Provides: bundled(webrtc) = 90
@ -286,7 +294,6 @@ Provides: bundled(x86inc)
# Bundled in src/3rdparty/chromium/base/third_party:
# Check src/3rdparty/chromium/third_party/base/*/README.chromium for version
# numbers, except where specified otherwise.
Provides: bundled(dmg_fp)
Provides: bundled(dynamic_annotations) = 4384
Provides: bundled(superfasthash) = 0
Provides: bundled(symbolize)
@ -311,7 +318,7 @@ Provides: bundled(nsURLParsers)
# Bundled outside of third_party, apparently not considered as such by Chromium:
Provides: bundled(mojo)
# see src/3rdparty/chromium/v8/include/v8_version.h for the version number
Provides: bundled(v8) = 6.1.534.44
Provides: bundled(v8) = 8.7.220.35
# bundled by v8 (src/3rdparty/chromium/v8/src/base/ieee754.cc)
# The version number is 5.3, the last version that upstream released, years ago:
# http://www.netlib.org/fdlibm/readme
@ -319,6 +326,10 @@ Provides: bundled(fdlibm) = 5.3
%{?_qt5_version:Requires: qt5-qtbase%{?_isa} = %{_qt5_version}}
%if 0%{?use_system_icu}
# Those versions were built with bundled ICU and want the data file.
Conflicts: qt5-qtwebengine-freeworld < 5.15.2-2
%endif
%description
%{summary}.
@ -346,22 +357,6 @@ Summary: Example files for %{name}
%{summary}.
%if 0%{?docs}
%package doc
Summary: API documentation for %{name}
BuildRequires: qt5-qdoc
BuildRequires: qt5-qhelpgenerator
BuildRequires: qt5-qtbase-doc
Requires: qt5-qtbase-doc
BuildRequires: qt5-qtxmlpatterns-doc
Requires: qt5-qtxmlpatterns-doc
BuildRequires: qt5-qtdeclarative-doc
Requires: qt5-qtdeclarative-doc
BuildArch: noarch
%description doc
%{summary}.
%endif
%prep
%setup -q -n %{qt_module}-everywhere-src-%{version}%{?prerelease:-%{prerelease}} -a20
@ -371,73 +366,56 @@ mv pulse src/3rdparty/chromium/
pushd src/3rdparty/chromium
popd
%patch0 -p1 -b .linux-pri
%if 0%{?use_system_libicu}
%patch1 -p1 -b .no-icudtl-dat
%endif
%patch2 -p1 -b .fix-extractcflag
%patch -P2 -p1 -b .fix-extractcflag
%if !0%{?arm_neon}
%patch3 -p1 -b .no-neon
%patch -P3 -p1 -b .no-neon
%endif
%patch4 -p1 -b .SIOCGSTAMP
%patch5 -p1 -b .QT_DEPRECATED_VERSION
%patch -P4 -p1 -b .SIOCGSTAMP
%patch -P5 -p1 -b .QT_DEPRECATED_VERSION
%patch -P6 -p1 -b .angle_nullptr
%patch -P7 -p1 -b .hunspell_nullptr
#if 0%{?pipewire}
%patch -P8 -p1 -b .libpipewire-0.3
#endif
## upstream patches
%patch -P24 -p1 -b .aarch64-new-stat
%patch -P32 -p1 -b .skia-missing-includes
%patch -P34 -p1 -b .fix-build
#patch10 -p1 -b .openmax-dl-neon
## NEEDSWORK
#patch21 -p1 -b .gn-bootstrap-verbose
%patch24 -p1 -b .aarch64-new-stat
%patch26 -p1 -b .use-python2
%patch27 -p1 -b .fix-chromium
%patch29 -p1 -b .gcc10
%patch -P35 -p1 -b .c99
# the xkbcommon config/feature was renamed in 5.12, so need to adjust QT_CONFIG references
# when building on older Qt releases
%if "%{_qt5_version}" < "5.12.0"
sed -i -e 's|QT_CONFIG(xkbcommon)|QT_CONFIG(xkbcommon_evdev)|g' src/core/web_event_factory.cpp
%patch -P60 -p1
%patch -P61 -p1
%patch -P70 -p1
%patch -P71 -p1
%patch -P72 -p1
%patch -P73 -p1
%patch -P74 -p1
%ifarch riscv64
%patch -P100 -p1 -b .riscv64-v8
%patch -P101 -p1 -b .riscv64
%endif
# fix // in #include in content/renderer/gpu to avoid debugedit failure
#sed -i -e 's!gpu//!gpu/!g' \
# src/3rdparty/chromium/content/renderer/gpu/compositor_forwarding_message_filter.cc
# and another one in 2 files in WebRTC
sed -i -e 's!audio_processing//!audio_processing/!g' \
src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/utility/ooura_fft.cc \
src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc
# remove ./ from #line commands in ANGLE to avoid debugedit failure (?)
sed -i -e 's!\./!!g' \
src/3rdparty/chromium/third_party/angle/src/compiler/preprocessor/Tokenizer.cpp \
src/3rdparty/chromium/third_party/angle/src/compiler/translator/glslang_lex.cpp
# delete all "toolprefix = " lines from build/toolchain/linux/BUILD.gn, as we
# never cross-compile in native Fedora RPMs, fixes ARM and aarch64 FTBFS
sed -i -e '/toolprefix = /d' -e 's/\${toolprefix}//g' \
src/3rdparty/chromium/build/toolchain/linux/BUILD.gn
# http://bugzilla.redhat.com/1337585
# can't just delete, but we'll overwrite with system headers to be on the safe side
cp -bv /usr/include/re2/*.h src/3rdparty/chromium/third_party/re2/src/re2/
%if 0
#ifarch x86_64
# enable this to force -g2 on x86_64 (most arches run out of memory with -g2)
# DISABLED BECAUSE OF:
# /usr/lib/rpm/find-debuginfo.sh: line 188: 3619 Segmentation fault
# (core dumped) eu-strip --remove-comment $r $g -f "$1" "$2"
sed -i -e 's/symbol_level=1/symbol_level=2/g' src/core/config/common.pri
%endif
# generate qtwebengine-3rdparty.qdoc, it is missing from the tarball
pushd src/3rdparty
%{__python2} chromium/tools/licenses.py \
--file-template ../../tools/about_credits.tmpl \
--entry-template ../../tools/about_credits_entry.tmpl \
credits >../webengine/doc/src/qtwebengine-3rdparty.qdoc
popd
# copy the Chromium license so it is installed with the appropriate name
cp -p src/3rdparty/chromium/LICENSE LICENSE.Chromium
# consider doing this as part of the tarball creation step instead? rdieter
# fix/workaround
# fatal error: QtWebEngineCore/qtwebenginecoreglobal.h: No such file or directory
if [ ! -f "./include/QtWebEngineCore/qtwebenginecoreglobal.h" ]; then
%_qt5_bindir/syncqt.pl -version %{version}
fi
# abort if this doesn't get created by syncqt.pl
test -f "./include/QtWebEngineCore/qtwebenginecoreglobal.h"
%build
export STRIP=strip
@ -446,25 +424,23 @@ export NINJA_PATH=%{__ninja}
%{qmake_qt5} \
%{?debug_config:CONFIG+="%{debug_config}}" \
%ifarch riscv64
CONFIG+="link_pulseaudio" \
%else
CONFIG+="link_pulseaudio use_gold_linker" \
%endif
QMAKE_EXTRA_ARGS+="-system-webengine-ffmpeg -system-webengine-webp -system-webengine-opus" \
QMAKE_EXTRA_ARGS+="-webengine-kerberos -webengine-python-version python3" \
%{?use_system_libicu:QMAKE_EXTRA_ARGS+="-system-webengine-icu"} \
QMAKE_EXTRA_ARGS+="-webengine-kerberos" \
%{?pipewire:QMAKE_EXTRA_ARGS+="-webengine-webrtc-pipewire"} \
.
# avoid %%make_build for now, the -O flag buffers output from intermediate build steps done via ninja
make %{?_smp_mflags}
%if 0%{?docs}
%make_build docs
%endif
%install
make install INSTALL_ROOT=%{buildroot}
%if 0%{?docs}
make install_docs INSTALL_ROOT=%{buildroot}
%endif
# rpm macros
install -p -m644 -D %{SOURCE10} \
%{buildroot}%{rpm_macros_dir}/macros.qt5-qtwebengine
@ -475,14 +451,6 @@ sed -i \
-e "s|@@EVR@@|%{?epoch:%{epoch:}}%{version}-%{release}|g" \
%{buildroot}%{rpm_macros_dir}/macros.qt5-qtwebengine
# hardlink files to {_bindir}
mkdir -p %{buildroot}%{_bindir}
pushd %{buildroot}%{_qt5_bindir}
for i in * ; do
ln -v ${i} %{buildroot}%{_bindir}/${i}
done
popd
## .prl/.la file love
# nuke .prl reference(s) to %%buildroot, excessive (.la-like) libs
pushd %{buildroot}%{_qt5_libdir}
@ -508,7 +476,11 @@ sed -i -e "s|%{version} \${_Qt5WebEngine|%{lesser_version} \${_Qt5WebEngine|" \
%ldconfig_scriptlets
%if 0%{?fedora} > 35 || 0%{?epel} > 9
%filetriggerin -- %{_datadir}/hunspell
%else
%filetriggerin -- %{_datadir}/myspell
%endif
while read filename ; do
case "$filename" in
*.dic)
@ -519,13 +491,12 @@ while read filename ; do
done
%files
%license LICENSE.* src/webengine/doc/src/qtwebengine-3rdparty.qdoc
%license LICENSE.*
%{_qt5_libdir}/libQt5*.so.*
%{_bindir}/qwebengine_convert_dict
%{_qt5_bindir}/qwebengine_convert_dict
%{_qt5_libdir}/qt5/qml/*
%{_qt5_libdir}/qt5/libexec/QtWebEngineProcess
%{_qt5_plugindir}/designer/libqwebengineview.so
%{_qt5_plugindir}/imageformats/libqpdf.so
%dir %{_qt5_datadir}/resources/
%if ! 0%{?use_system_libicu}
%{_qt5_datadir}/resources/icudtl.dat
@ -594,10 +565,10 @@ done
%{_qt5_headerdir}/Qt*/
%{_qt5_libdir}/libQt5*.so
%{_qt5_libdir}/libQt5*.prl
#{_qt5_libdir}/Qt5WebEngineCore.la
%{_qt5_libdir}/cmake/Qt5*/
%{_qt5_libdir}/pkgconfig/Qt5*.pc
%{_qt5_archdatadir}/mkspecs/modules/*.pri
%{_qt5_plugindir}/designer/libqwebengineview.so
%files devtools
%{_qt5_datadir}/resources/qtwebengine_devtools_resources.pak
@ -605,13 +576,232 @@ done
%files examples
%{_qt5_examplesdir}/
%if 0%{?docs}
%files doc
%{_qt5_docdir}/*
%endif
%changelog
* Thu Sep 05 2024 David Abdurachmanov <davidlt@rivosinc.com> - 5.15.17-8.0.riscv64
- Disable gold linker on riscv64 (not ported)
* Tue Aug 20 2024 Jan Grulich <jgrulich@redhat.com> - 5.15.17-8
- Use Python 3 and bundled re2
* Thu Aug 15 2024 Denis Arnaud <denis.arnaud_fedora@m4x.org> - 5.15.17-7
- Back to python2 macro, even though it is failing currently on Rawhide
* Thu Aug 15 2024 Denis Arnaud <denis.arnaud_fedora@m4x.org> - 5.15.17-6
- [Rawhide] python2 -> python2.7, as the python2 macro no longer seems to
work on Rawhide
* Thu Aug 15 2024 Denis Arnaud <denis.arnaud_fedora@m4x.org> - 5.15.17-5
- [WIP] The python2 RPM macro seems no longer valid on Rawhide
* Thu Aug 08 2024 Neal Gompa <ngompa@fedoraproject.org> - 5.15.17-4
- Fix comment for ffmpeg7 patch
* Thu Aug 08 2024 Neal Gompa <ngompa@fedoraproject.org> - 5.15.17-3
- Backport Chromium support for ffmpeg 6.1/7.0
* Fri Jul 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.15.17-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Mon Jun 24 2024 Sérgio Basto <sergio@serjux.com> - 5.15.17-1
- 5.15.17
- BR: binutils-gold to build on rawhide
* Thu May 30 2024 Jan Grulich <jgrulich@redhat.com> - 5.15.16-6
- Rebuild (qt5)
* Wed Mar 20 2024 Liu Yang <Yang.Liu.sn@gmail.com> - 5.15.16-5
- Add riscv64 support patch from Arch Linux
* Thu Mar 14 2024 Jan Grulich <jgrulich@redhat.com> - 5.15.16-4
- Rebuild (qt5)
* Sat Feb 24 2024 Paul Wouters <paul.wouters@aiven.io> - 5.15.16-3
- Rebuilt for libre2.so.11 bump
* Thu Feb 08 2024 Pete Walter <pwalter@fedoraproject.org> - 5.15.16-2
- Rebuild for libvpx 1.14.x
* Thu Feb 01 2024 Jan Grulich <jgrulich@redhat.com> - 5.15.16-1
- 5.15.16
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.15.12-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.15.12-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Jan 03 2024 Jan Grulich <jgrulich@redhat.com> - 5.15.12-10
- Rebuild (qt5)
* Sun Oct 08 2023 Jan Grulich <jgrulich@redhat.com> - 5.15.12-9
- Rebuild (qt5)
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.15.12-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jul 11 2023 František Zatloukal <fzatlouk@redhat.com> - 5.15.12-7
- Rebuilt for ICU 73.2
* Tue Jun 13 2023 Jan Grulich <jgrulich@redhat.com> - 5.15.12-6
- Rebuild (qt5)
* Tue Apr 11 2023 Jan Grulich <jgrulich@redhat.com> - 5.15.12-5
- Rebuild (qt5)
* Thu Feb 23 2023 Florian Weimer <fweimer@redhat.com> - 5.15.12-4
- Port bundled libsync to C99 (#2155642)
* Wed Feb 15 2023 Tom Callaway <spot@fedoraproject.org> - 5.15.12-3
- rebuild for libvpx
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.15.12-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Mon Jan 16 2023 Jan Grulich <jgrulich@redhat.com> - 5.15.12-1
- 5.15.12
* Fri Jan 06 2023 Jan Grulich <jgrulich@redhat.com> - 5.15.10-6
- Rebuild (qt5)
* Sat Dec 31 2022 Pete Walter <pwalter@fedoraproject.org> - 5.15.10-5
- Rebuild for ICU 72
* Sun Nov 20 2022 Neal Gompa <ngompa@fedoraproject.org> - 5.15.10-4
- Add patch to backport support for 16k pages on AArch64 (#2144200)
* Mon Oct 31 2022 Jan Grulich <jgrulich@redhat.com> - 5.15.10-3
- Rebuild (qt5)
* Wed Sep 21 2022 Jan Grulich <jgrulich@redhat.com> - 5.15.10-2
- Rebuild (qt5)
* Mon Aug 29 2022 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 5.15.10-1
- Update to 5.15.10
* Tue Aug 02 2022 Frantisek Zatloukal <fzatlouk@redhat.com> - 5.15.9-5
- Rebuilt for ICU 71.1
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.15.9-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Jul 20 2022 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.15.9-3
- Drop obsolete no-icudtl-dat patch, code has been fixed upstream since 5.11.0
* Thu Jul 14 2022 Jan Grulich <jgrulich@redhat.com> - 5.15.9-2
- Rebuild (Qt 5.15.5)
* Wed Jun 01 2022 Rex Dieter <rdieter@fedoraproject.org> - 5.15.9-1
- 5.15.9
* Tue May 17 2022 Jan Grulich <jgrulich@redhat.com> - 5.15.8-7
- Rebuild (Qt 5.15.4)
* Tue Mar 29 2022 Parag Nemade <pnemade AT redhat DOT com> - 5.15.8-6
- Update hunspell dictionary path by adding conditional support
F36 Change https://fedoraproject.org/wiki/Changes/Hunspell_dictionary_dir_change
* Wed Mar 09 2022 Jan Grulich <jgrulich@redhat.com> - 5.15.8-5
- Rebuild (qt5)
* Thu Feb 17 2022 Rex Dieter <rdieter@fedoraproject.org> - 5.15.8-4
- Screen sharing support under Wayland (#2054690)
* Tue Feb 01 2022 Troy Dawson <tdawson@redhat.com> - 5.15.8-3.1
- Specifically for epel9 only, until things switch to python3
- Bundle python2 for building only
- Bundled re2
- No docs
* Thu Jan 27 2022 Tom Callaway <spot@fedoraproject.org> - 5.15.8-3
- rebuild for libvpx
* Sun Jan 23 2022 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.15.8-2
- Update Provides: bundled(*) version numbers, remove ones dropped upstream
- Restore Provides: bundled(protobuf), unbundling support dropped years ago
- Remove no longer used BuildRequires: yasm and pkgconfig(protobuf)
* Tue Jan 11 2022 Rex Dieter <rdieter@fedoraproject.org> - 5.15.8-1
- 5.15.8
- %%undefine _package_note_file (#2043178)
* Sat Jan 08 2022 Miro Hrončok <mhroncok@redhat.com> - 5.15.6-3
- Rebuilt for libre2.so.9
* Mon Sep 20 2021 Rex Dieter <rdieter@fedoraproject.org> - 5.15.6-2
- patch use of deprecated harfbuzz apis
* Fri Sep 03 2021 Rex Dieter <rdieter@fedoraproject.org> - 5.15.6-1
- 5.15.6
* Thu Aug 12 2021 Troy Dawson <tdawson@redhat.com> - 5.15.5-3
- Fix use-python2.patch
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 5.15.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jun 23 2021 Rex Dieter <rdieter@fedoraproject.org> - 5.15.5-1
- 5.15.5
* Wed Jun 16 2021 Rex Dieter <rdieter@fedoraproject.org> - 5.15.2-12
- workaround SIGSTKSZ FTBFS (#1945595)
- workaround 'TRUE'/'FALSE' was not declared in this scope
* Thu May 20 2021 Pete Walter <pwalter@fedoraproject.org> - 5.15.2-11
- Rebuild for ICU 69
* Mon May 10 2021 Jonathan Wakely <jwakely@redhat.com> - 5.15.2-10
- Rebuilt for removed libstdc++ symbols (#1937698)
* Tue Mar 30 2021 Jonathan Wakely <jwakely@redhat.com> - 5.15.2-9
- Rebuilt for removed libstdc++ symbol (#1937698)
* Tue Jan 26 2021 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.15.2-8
- Add versioned Conflicts with -freeworld built against bundled ICU (#1920379)
* Sat Jan 23 2021 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.15.2-7
- Fix sandbox issue on 32-bit architectures with glibc >= 2.31 (from Debian)
* Sat Jan 23 2021 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.15.2-6
- Reenable system ICU on F33+, ICU 67 supported since 5.15.1 according to Debian
* Wed Jan 20 2021 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.15.2-5
- Fix sandbox issue breaking text rendering with glibc 2.33 (#1904652)
* Wed Dec 30 2020 Mattia Verga <mattia.verga@protonmail.com> - 5.15.2-4
- Rebuild for gcc bugfix upgrade
* Fri Dec 04 2020 Jeff Law <law@redhat.com> - 5.15.2-3
- Fix another missing #include for gcc-11
* Tue Nov 24 07:55:13 CET 2020 Jan Grulich <jgrulich@redhat.com> - 5.15.2-2
- Rebuild for qtbase with -no-reduce-relocations option
* Fri Nov 20 09:12:35 CET 2020 Jan Grulich <jgrulich@redhat.com> - 5.15.2-1
- 5.15.2
* Wed Nov 04 2020 Jeff Law <law@redhat.com> - 5.15.1-3
- Fix missing #includes for gcc-11
* Wed Sep 23 12:52:56 CEST 2020 Jan Grulich <jgrulich@redhat.com> - 5.15.1-2
- Rebuild (libevent)
* Fri Sep 11 2020 Jan Grulich <jgrulich@redhat.com> - 5.15.1-1
- 5.15.1
* Fri Sep 04 2020 Than Ngo <than@redhat.com> - 5.15.0-4
- Fix FTBFS
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.15.0-3
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.15.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jun 10 2020 Rex Dieter <rdieter@fedoraproject.org> - 5.15.0-1
- 5.15.0
- f33's icu-67.x currently not compatible, use bundled icu
* Sat Apr 04 2020 Rex Dieter <rdieter@fedoraproject.org> - 5.14.2-2
- rebuild (qt5)
@ -1177,3 +1367,5 @@ done
* Thu Jun 25 2015 Helio Chissini de Castro <helio@kde.org> - 5.5.0-0.2.rc
- Update for official RC1 released packages

View File

@ -1,17 +0,0 @@
diff -up qtwebengine-everywhere-src-5.14.1.orig/src/webenginewidgets/api/qwebenginedownloaditem.h.QT_DEPRECATED qtwebengine-everywhere-src-5.14.1.orig/src/webenginewidgets/api/qwebenginedownloaditem.h
--- qtwebengine-everywhere-src-5.14.1.orig/src/webenginewidgets/api/qwebenginedownloaditem.h.QT_DEPRECATED 2020-01-20 05:17:16.000000000 -0600
+++ qtwebengine-everywhere-src-5.14.1.orig/src/webenginewidgets/api/qwebenginedownloaditem.h 2020-03-24 15:42:03.558394148 -0500
@@ -119,9 +119,13 @@ public:
QUrl url() const;
QString mimeType() const;
#if QT_DEPRECATED_SINCE(5, 14)
+#if QT_VERSION >= QT_VERSION_CHECK(5,14,0)
QT_DEPRECATED_VERSION_X(5, 14, "Use downloadDirectory() and downloadFileName() instead")
+#endif
QString path() const;
+#if QT_VERSION >= QT_VERSION_CHECK(5,14,0)
QT_DEPRECATED_VERSION_X(5, 14, "Use setDownloadDirectory() and setDownloadFileName() instead")
+#endif
void setPath(QString path);
#endif
bool isFinished() const;

View File

@ -0,0 +1,17 @@
diff -up qtwebengine-everywhere-src-5.15.5/src/webenginewidgets/api/qwebenginedownloaditem.h.QT_DEPRECATED_VERSION qtwebengine-everywhere-src-5.15.5/src/webenginewidgets/api/qwebenginedownloaditem.h
--- qtwebengine-everywhere-src-5.15.5/src/webenginewidgets/api/qwebenginedownloaditem.h.QT_DEPRECATED_VERSION 2021-06-24 07:34:27.991417071 -0500
+++ qtwebengine-everywhere-src-5.15.5/src/webenginewidgets/api/qwebenginedownloaditem.h 2021-06-24 07:36:28.996937357 -0500
@@ -120,9 +120,13 @@ public:
QString mimeType() const;
#if QT_DEPRECATED_SINCE(5, 14)
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
+#if QT_VERSION >= QT_VERSION_CHECK(5,14,0)
QT_DEPRECATED_VERSION_X(5, 14, "Use downloadDirectory() and downloadFileName() instead")
+#endif
QString path() const;
+#if QT_VERSION >= QT_VERSION_CHECK(5,14,0)
QT_DEPRECATED_VERSION_X(5, 14, "Use setDownloadDirectory() and setDownloadFileName() instead")
+#endif
void setPath(QString path);
#else
QT_DEPRECATED_X("Use downloadDirectory() and downloadFileName() instead")

View File

@ -0,0 +1,27 @@
Quoting the description from qtwebengine-6.7.0-ninja1.12.patch:
"""
Patch status: pending being looked at upstream
Issue[1][2][3] also exist in chromium itself[4], and unclear
why this started happening only with ninja-1.12.0 at the moment.
Just a quickfix, likely not fully correct and seems there may
be further unresolved race issues.
[1] https://bugs.gentoo.org/930107
[2] https://bugreports.qt.io/browse/QTBUG-124375
[3] https://github.com/ninja-build/ninja/issues/2417
[4] https://bugs.gentoo.org/930112
"""
This has a hunk removed but is otherwise the same.
--- ./src/3rdparty/chromium/content/browser/BUILD.gn.orig 2024-03-26 14:47:34.000000000 +0000
+++ ./src/3rdparty/chromium/content/browser/BUILD.gn 2024-06-24 04:57:25.108720935 +0100
@@ -196,6 +196,7 @@ jumbo_static_library("browser") {
"//content/common",
"//content/common:buildflags",
"//content/common:mojo_bindings",
+ "//components/spellcheck:buildflags",
"//content/public/browser:proto",
"//content/public/common:common_sources",
"//content/public/common:content_descriptor_keys",

View File

@ -1,39 +0,0 @@
From 033c7aa2da1bc78347765d60c15843ece02ef4d8 Mon Sep 17 00:00:00 2001
From: Troy Dawson <tdawson@redhat.com>
Date: Tue, 11 Feb 2020 15:43:30 -0800
Subject: [PATCH] fix chromium headers
---
.../chromium/cc/base/list_container_helper.cc | 250 -----------------
.../chromium/cc/base/list_container_helper.h | 254 ++++++++++++++++++
.../aec3/clockdrift_detector.h | 1 +
.../modules/video_coding/decoding_state.h | 1 +
4 files changed, 256 insertions(+), 250 deletions(-)
diff --git a/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h b/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
index 22528c948..69e624e8b 100644
--- a/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+++ b/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
@@ -12,6 +12,7 @@
#define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
#include <array>
+#include <cstddef>
namespace webrtc {
diff --git a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/decoding_state.h b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/decoding_state.h
index b87fb2d03..ec972949d 100644
--- a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/decoding_state.h
+++ b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/decoding_state.h
@@ -11,6 +11,7 @@
#ifndef MODULES_VIDEO_CODING_DECODING_STATE_H_
#define MODULES_VIDEO_CODING_DECODING_STATE_H_
+#include <cstdint>
#include <map>
#include <set>
#include <vector>
--
2.24.1

View File

@ -1,13 +0,0 @@
diff --git a/src/webengine/module.pro b/src/webengine/module.pro
index 49a1086b2..afc89d49e 100644
--- a/src/webengine/module.pro
+++ b/src/webengine/module.pro
@@ -76,7 +76,7 @@ qtConfig(webengine-testsupport) {
python = $$pythonPathForShell()
chromium_attributions.commands = \
cd $$shell_quote($$shell_path($$PWD/../3rdparty)) && \
- $$python chromium/tools/licenses.py \
+ python2 chromium/tools/licenses.py \
--file-template ../../tools/about_credits.tmpl \
--entry-template ../../tools/about_credits_entry.tmpl credits \
$$shell_quote($$shell_path($$OUT_PWD/chromium_attributions.qdoc))

View File

@ -1,35 +0,0 @@
diff -up qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/media/cdm/supported_cdm_versions.cc.gcc10 qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/media/cdm/supported_cdm_versions.cc
diff -up qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/media/cdm/supported_cdm_versions.h.gcc10 qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/media/cdm/supported_cdm_versions.h
--- qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/media/cdm/supported_cdm_versions.h.gcc10 2020-01-20 04:37:42.000000000 -0600
+++ qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/media/cdm/supported_cdm_versions.h 2020-03-25 08:19:35.628534572 -0500
@@ -6,6 +6,7 @@
#define MEDIA_CDM_SUPPORTED_CDM_VERSIONS_H_
#include <array>
+#include <cstdlib>
#include "media/base/media_export.h"
#include "media/cdm/api/content_decryption_module.h"
diff -up qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/third_party/perfetto/include/perfetto/base/task_runner.h.gcc10 qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/third_party/perfetto/include/perfetto/base/task_runner.h
--- qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/third_party/perfetto/include/perfetto/base/task_runner.h.gcc10 2020-01-20 04:37:42.000000000 -0600
+++ qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/third_party/perfetto/include/perfetto/base/task_runner.h 2020-03-17 16:59:11.432193734 -0500
@@ -18,6 +18,7 @@
#define INCLUDE_PERFETTO_BASE_TASK_RUNNER_H_
#include <functional>
+#include <cstdint>
#include "perfetto/base/export.h"
diff -up qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/third_party/webrtc/call/rtx_receive_stream.h.gcc10 qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/third_party/webrtc/call/rtx_receive_stream.h
--- qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/third_party/webrtc/call/rtx_receive_stream.h.gcc10 2020-01-20 04:37:42.000000000 -0600
+++ qtwebengine-everywhere-src-5.14.1.orig/src/3rdparty/chromium/third_party/webrtc/call/rtx_receive_stream.h 2020-03-25 09:37:13.373280961 -0500
@@ -11,6 +11,8 @@
#ifndef CALL_RTX_RECEIVE_STREAM_H_
#define CALL_RTX_RECEIVE_STREAM_H_
+#include <cstdlib>
+#include <cstdint>
#include <map>
#include "call/rtp_packet_sink_interface.h"

View File

@ -0,0 +1,24 @@
diff -up qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/BUILD.gn.libpipewire-0.3 qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/BUILD.gn
--- qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/BUILD.gn.libpipewire-0.3 2021-12-15 10:09:27.000000000 -0600
+++ qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/BUILD.gn 2022-02-18 09:43:31.402923179 -0600
@@ -202,7 +202,7 @@ if (is_linux || is_chromeos) {
if (rtc_link_pipewire) {
pkg_config("pipewire") {
- packages = [ "libpipewire-0.2" ]
+ packages = [ "libpipewire-0.3" ]
}
} else {
# When libpipewire is not directly linked, use stubs to allow for dlopening of
diff -up qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/webrtc/webrtc.gni.libpipewire-0.3 qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/webrtc/webrtc.gni
--- qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/webrtc/webrtc.gni.libpipewire-0.3 2021-12-15 10:09:27.000000000 -0600
+++ qtwebengine-everywhere-src-5.15.8/src/3rdparty/chromium/third_party/webrtc/webrtc.gni 2022-02-18 12:35:13.895009491 -0600
@@ -115,7 +115,7 @@ declare_args() {
rtc_use_pipewire = is_desktop_linux && use_sysroot
# Set this to link PipeWire directly instead of using the dlopen.
- rtc_link_pipewire = false
+ rtc_link_pipewire = true
# Enable to use the Mozilla internal settings.
build_with_mozilla = false

View File

@ -1,23 +0,0 @@
diff -ur qtwebengine-everywhere-src-5.10.0/src/buildtools/config/linux.pri qtwebengine-everywhere-src-5.10.0-linux-pri/src/buildtools/config/linux.pri
--- qtwebengine-everywhere-src-5.10.0/src/buildtools/config/linux.pri 2017-11-29 09:42:29.000000000 +0100
+++ qtwebengine-everywhere-src-5.10.0-linux-pri/src/buildtools/config/linux.pri 2017-12-25 12:07:40.262411459 +0100
@@ -157,3 +157,19 @@
#qtConfig(webengine-system-jsoncpp): gn_args += use_system_jsoncpp=true
#qtConfig(webengine-system-libsrtp: gn_args += use_system_libsrtp=true
}
+
+# yasm is only used on x86, and passing use_system_yasm makes the build fail on
+# other architectures (e.g., ARM), so make it conditional on the architecture
+contains(QT_ARCH, "x86_64")|contains(QT_ARCH, "i386") {
+ gn_args += use_system_yasm=true
+}
+
+# link libpci instead of dlopening it, our Qt packaging depends on it anyway
+gn_args += linux_link_libpci=true
+
+# run the unbundling script Chromium provides
+CHROMIUM_SRC_DIR = "$$QTWEBENGINE_ROOT/$$getChromiumSrcDir()"
+R_G_F_PY = "$$CHROMIUM_SRC_DIR/build/linux/unbundle/replace_gn_files.py"
+R_G_F_PY_ARGS = "--system-libraries yasm"
+log("Running python2 $$R_G_F_PY $$R_G_F_PY_ARGS$${EOL}")
+!system("python2 $$R_G_F_PY $$R_G_F_PY_ARGS"): error("-- unbundling failed")

View File

@ -1,34 +0,0 @@
diff --git a/src/core/web_engine_library_info.cpp b/src/core/web_engine_library_info.cpp
index 1c8316430..a1c27d28f 100644
--- a/src/core/web_engine_library_info.cpp
+++ b/src/core/web_engine_library_info.cpp
@@ -259,29 +259,12 @@ QString dictionariesPath()
QString resourcesDataPath()
{
- static bool initialized = false;
static QString potentialResourcesPath =
#if defined(OS_MACOSX) && defined(QT_MAC_FRAMEWORK_BUILD)
getResourcesPath(frameworkBundle());
#else
QLibraryInfo::location(QLibraryInfo::DataPath) % QLatin1String("/resources");
#endif
- if (!initialized) {
- initialized = true;
- if (!QFileInfo::exists(potentialResourcesPath % QLatin1String("/qtwebengine_resources.pak"))) {
- qWarning("Qt WebEngine resources not found at %s. Trying parent directory...", qPrintable(potentialResourcesPath));
- potentialResourcesPath = QLibraryInfo::location(QLibraryInfo::DataPath);
- }
- if (!QFileInfo::exists(potentialResourcesPath % QLatin1String("/qtwebengine_resources.pak"))) {
- qWarning("Qt WebEngine resources not found at %s. Trying application directory...", qPrintable(potentialResourcesPath));
- potentialResourcesPath = QCoreApplication::applicationDirPath();
- }
- if (!QFileInfo::exists(potentialResourcesPath % QLatin1String("/qtwebengine_resources.pak"))) {
- qWarning("Qt WebEngine resources not found at %s. Trying fallback directory... The application MAY NOT work.", qPrintable(potentialResourcesPath));
- potentialResourcesPath = fallbackDir();
- }
- }
-
return potentialResourcesPath;
}
} // namespace

View File

@ -1,13 +0,0 @@
diff --git a/src/buildtools/gn.pro b/src/buildtools/gn.pro
index b6bf9cfc4..30f92e6ac 100644
--- a/src/buildtools/gn.pro
+++ b/src/buildtools/gn.pro
@@ -18,7 +18,7 @@ build_pass|!debug_and_release {
src_3rd_party_dir = $$absolute_path("$${getChromiumSrcDir()}/../", "$$QTWEBENGINE_ROOT")
gn_bootstrap = $$system_path($$absolute_path(gn/build/gen.py, $$src_3rd_party_dir))
- gn_gen_args = --no-last-commit-position --out-path $$out_path \
+ gn_gen_args = --no-last-commit-position --verbose --out-path $$out_path \
--cc \"$$which($$QMAKE_CC)\" --cxx \"$$which($$QMAKE_CXX)\" \
--ld \"$$which($$QMAKE_LINK)\"

154
qtwebengine-ffmpeg5.patch Normal file
View File

@ -0,0 +1,154 @@
Allow building qtwebengine using ffmpeg 5
Origin: ArchLinux, https://github.com/archlinux/svntogit-packages/tree/packages/qt5-webengine/trunk
diff --git a/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h b/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h
index 2734a48..70b1877 100644
--- a/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h
+++ b/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h
@@ -29,6 +29,7 @@ extern "C" {
#include <libavformat/avformat.h>
#include <libavformat/avio.h>
#include <libavutil/avutil.h>
+#include <libavutil/channel_layout.h>
#include <libavutil/imgutils.h>
#include <libavutil/log.h>
#include <libavutil/mastering_display_metadata.h>
diff --git a/src/3rdparty/chromium/media/filters/audio_file_reader.cc b/src/3rdparty/chromium/media/filters/audio_file_reader.cc
index cb81d92..bd73908 100644
--- a/src/3rdparty/chromium/media/filters/audio_file_reader.cc
+++ b/src/3rdparty/chromium/media/filters/audio_file_reader.cc
@@ -85,7 +85,7 @@ bool AudioFileReader::OpenDemuxer() {
}
bool AudioFileReader::OpenDecoder() {
- AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
+ const AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
if (codec) {
// MP3 decodes to S16P which we don't support, tell it to use S16 instead.
if (codec_context_->sample_fmt == AV_SAMPLE_FMT_S16P)
diff --git a/src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc b/src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc
index 0d825ed..72fac61 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc
@@ -329,7 +329,7 @@ bool FFmpegAudioDecoder::ConfigureDecoder(const AudioDecoderConfig& config) {
}
}
- AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
+ const AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
if (!codec ||
avcodec_open2(codec_context_.get(), codec, &codec_options) < 0) {
DLOG(ERROR) << "Could not initialize audio decoder: "
diff --git a/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc b/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc
index d34db63..427565b 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc
@@ -98,12 +98,12 @@ static base::TimeDelta ExtractStartTime(AVStream* stream) {
// Next try to use the first DTS value, for codecs where we know PTS == DTS
// (excludes all H26x codecs). The start time must be returned in PTS.
- if (stream->first_dts != kNoFFmpegTimestamp &&
+ if (av_stream_get_first_dts(stream) != kNoFFmpegTimestamp &&
stream->codecpar->codec_id != AV_CODEC_ID_HEVC &&
stream->codecpar->codec_id != AV_CODEC_ID_H264 &&
stream->codecpar->codec_id != AV_CODEC_ID_MPEG4) {
const base::TimeDelta first_pts =
- ConvertFromTimeBase(stream->time_base, stream->first_dts);
+ ConvertFromTimeBase(stream->time_base, av_stream_get_first_dts(stream));
if (first_pts < start_time)
start_time = first_pts;
}
@@ -408,11 +408,11 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
scoped_refptr<DecoderBuffer> buffer;
if (type() == DemuxerStream::TEXT) {
- int id_size = 0;
+ size_t id_size = 0;
uint8_t* id_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_WEBVTT_IDENTIFIER, &id_size);
- int settings_size = 0;
+ size_t settings_size = 0;
uint8_t* settings_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size);
@@ -424,7 +424,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
buffer = DecoderBuffer::CopyFrom(packet->data, packet->size,
side_data.data(), side_data.size());
} else {
- int side_data_size = 0;
+ size_t side_data_size = 0;
uint8_t* side_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
@@ -485,7 +485,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
packet->size - data_offset);
}
- int skip_samples_size = 0;
+ size_t skip_samples_size = 0;
const uint32_t* skip_samples_ptr =
reinterpret_cast<const uint32_t*>(av_packet_get_side_data(
packet.get(), AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));
diff --git a/src/3rdparty/chromium/media/filters/ffmpeg_glue.cc b/src/3rdparty/chromium/media/filters/ffmpeg_glue.cc
index 0ef3521..8483ecc 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_glue.cc
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_glue.cc
@@ -59,7 +59,6 @@ static int64_t AVIOSeekOperation(void* opaque, int64_t offset, int whence) {
}
void FFmpegGlue::InitializeFFmpeg() {
- av_register_all();
}
static void LogContainer(bool is_local_file,
@@ -95,9 +94,6 @@ FFmpegGlue::FFmpegGlue(FFmpegURLProtocol* protocol) {
// Enable fast, but inaccurate seeks for MP3.
format_context_->flags |= AVFMT_FLAG_FAST_SEEK;
- // Ensures we can read out various metadata bits like vp8 alpha.
- format_context_->flags |= AVFMT_FLAG_KEEP_SIDE_DATA;
-
// Ensures format parsing errors will bail out. From an audit on 11/2017, all
// instances were real failures. Solves bugs like http://crbug.com/710791.
format_context_->error_recognition |= AV_EF_EXPLODE;
diff --git a/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc b/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc
index ef12477..7996606 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc
@@ -391,7 +391,7 @@ bool FFmpegVideoDecoder::ConfigureDecoder(const VideoDecoderConfig& config,
if (decode_nalus_)
codec_context_->flags2 |= AV_CODEC_FLAG2_CHUNKS;
- AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
+ const AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
if (!codec || avcodec_open2(codec_context_.get(), codec, NULL) < 0) {
ReleaseFFmpegResources();
return false;
diff --git a/src/3rdparty/chromium/media/filters/media_file_checker.cc b/src/3rdparty/chromium/media/filters/media_file_checker.cc
index 59c2a2f..1a9872c 100644
--- a/src/3rdparty/chromium/media/filters/media_file_checker.cc
+++ b/src/3rdparty/chromium/media/filters/media_file_checker.cc
@@ -68,7 +68,7 @@ bool MediaFileChecker::Start(base::TimeDelta check_time) {
auto context = AVStreamToAVCodecContext(format_context->streams[i]);
if (!context)
continue;
- AVCodec* codec = avcodec_find_decoder(cp->codec_id);
+ const AVCodec* codec = avcodec_find_decoder(cp->codec_id);
if (codec && avcodec_open2(context.get(), codec, nullptr) >= 0) {
auto loop = std::make_unique<FFmpegDecodingLoop>(context.get());
stream_contexts[i] = {std::move(context), std::move(loop)};
diff --git a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
index 9002b87..d12fade 100644
--- a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
+++ b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
@@ -203,7 +203,7 @@ int32_t H264DecoderImpl::InitDecode(const VideoCodec* codec_settings,
// a pointer |this|.
av_context_->opaque = this;
- AVCodec* codec = avcodec_find_decoder(av_context_->codec_id);
+ const AVCodec* codec = avcodec_find_decoder(av_context_->codec_id);
if (!codec) {
// This is an indication that FFmpeg has not been initialized or it has not
// been compiled/initialized with the correct set of codecs.

213
qtwebengine-fix-build.patch Normal file
View File

@ -0,0 +1,213 @@
diff --git a/src/3rdparty/chromium/base/debug/profiler.h b/src/3rdparty/chromium/base/debug/profiler.h
index be6e272e0..b27f5f690 100644
--- a/src/3rdparty/chromium/base/debug/profiler.h
+++ b/src/3rdparty/chromium/base/debug/profiler.h
@@ -5,6 +5,7 @@
#ifndef BASE_DEBUG_PROFILER_H_
#define BASE_DEBUG_PROFILER_H_
+#include <cstdint>
#include <stddef.h>
#include <cstdint>
diff --git a/src/3rdparty/chromium/cc/trees/target_property.cc b/src/3rdparty/chromium/cc/trees/target_property.cc
index 00595fda0..ebd8c605a 100644
--- a/src/3rdparty/chromium/cc/trees/target_property.cc
+++ b/src/3rdparty/chromium/cc/trees/target_property.cc
@@ -6,6 +6,10 @@
#include "cc/trees/target_property.h"
+#include <cstdint>
+
+#include <cstdint>
+
namespace cc {
static_assert(TargetProperty::LAST_TARGET_PROPERTY < kMaxTargetPropertyIndex,
diff --git a/src/3rdparty/chromium/device/base/synchronization/one_writer_seqlock.cc b/src/3rdparty/chromium/device/base/synchronization/one_writer_seqlock.cc
index 98266a16c..7676e6097 100644
--- a/src/3rdparty/chromium/device/base/synchronization/one_writer_seqlock.cc
+++ b/src/3rdparty/chromium/device/base/synchronization/one_writer_seqlock.cc
@@ -6,6 +6,8 @@
#include "device/base/synchronization/one_writer_seqlock.h"
+#include <cstdint>
+
namespace device {
OneWriterSeqLock::OneWriterSeqLock() : sequence_(0) {}
diff --git a/src/3rdparty/chromium/extensions/common/constants.h b/src/3rdparty/chromium/extensions/common/constants.h
index e6183dc11..5a12758ac 100644
--- a/src/3rdparty/chromium/extensions/common/constants.h
+++ b/src/3rdparty/chromium/extensions/common/constants.h
@@ -13,6 +13,8 @@
#include "components/version_info/channel.h"
#include "ui/base/layout.h"
+#include <cstdint>
+
namespace extensions {
// Scheme we serve extension content from.
diff --git a/src/3rdparty/chromium/gpu/config/gpu_preferences.h b/src/3rdparty/chromium/gpu/config/gpu_preferences.h
index 57bda1f99..7a5ef9b3a 100644
--- a/src/3rdparty/chromium/gpu/config/gpu_preferences.h
+++ b/src/3rdparty/chromium/gpu/config/gpu_preferences.h
@@ -5,6 +5,7 @@
#ifndef GPU_CONFIG_GPU_PREFERENCES_H_
#define GPU_CONFIG_GPU_PREFERENCES_H_
+#include <cstdint>
#include <stddef.h>
#include <cstdint>
#include <string>
diff --git a/src/3rdparty/chromium/net/base/parse_number.h b/src/3rdparty/chromium/net/base/parse_number.h
index 301d14ac8..378058a23 100644
--- a/src/3rdparty/chromium/net/base/parse_number.h
+++ b/src/3rdparty/chromium/net/base/parse_number.h
@@ -11,6 +11,8 @@
#include "base/strings/string_piece.h"
#include "net/base/net_export.h"
+#include <cstdint>
+
// This file contains utility functions for parsing numbers, in the context of
// network protocols.
//
diff --git a/src/3rdparty/chromium/pdf/document_attachment_info.h b/src/3rdparty/chromium/pdf/document_attachment_info.h
index fd78cb729..f9330a0db 100644
--- a/src/3rdparty/chromium/pdf/document_attachment_info.h
+++ b/src/3rdparty/chromium/pdf/document_attachment_info.h
@@ -9,6 +9,8 @@
#include "base/strings/string16.h"
+#include <cstdint>
+
namespace chrome_pdf {
struct DocumentAttachmentInfo {
diff --git a/src/3rdparty/chromium/ppapi/utility/completion_callback_factory_thread_traits.h b/src/3rdparty/chromium/ppapi/utility/completion_callback_factory_thread_traits.h
index ac0b31a75..5d1c421d0 100644
--- a/src/3rdparty/chromium/ppapi/utility/completion_callback_factory_thread_traits.h
+++ b/src/3rdparty/chromium/ppapi/utility/completion_callback_factory_thread_traits.h
@@ -38,6 +38,10 @@ namespace pp {
/// As a further optimization, we can add support for this later.
class ThreadSafeThreadTraits {
public:
+
+ typedef pp::Lock Lock;
+ typedef pp::AutoLock AutoLock;
+
class RefCount {
public:
/// Default constructor. In debug mode, this checks that the object is being
@@ -67,8 +71,6 @@ class ThreadSafeThreadTraits {
int32_t ref_;
};
- typedef pp::Lock Lock;
- typedef pp::AutoLock AutoLock;
};
/// The non-thread-safe version of thread traits. Using this class as the
diff --git a/src/3rdparty/chromium/third_party/angle/src/common/angleutils.h b/src/3rdparty/chromium/third_party/angle/src/common/angleutils.h
index fb9a44225..f9330f313 100644
--- a/src/3rdparty/chromium/third_party/angle/src/common/angleutils.h
+++ b/src/3rdparty/chromium/third_party/angle/src/common/angleutils.h
@@ -15,6 +15,7 @@
# include "absl/container/flat_hash_map.h"
#endif // defined(ANGLE_USE_ABSEIL)
+#include <cstdint>
#include <climits>
#include <cstdarg>
#include <cstddef>
diff --git a/src/3rdparty/chromium/third_party/libgav1/src/src/utils/threadpool.cc b/src/3rdparty/chromium/third_party/libgav1/src/src/utils/threadpool.cc
index 4e8788bc4..a5d35b31b 100644
--- a/src/3rdparty/chromium/third_party/libgav1/src/src/utils/threadpool.cc
+++ b/src/3rdparty/chromium/third_party/libgav1/src/src/utils/threadpool.cc
@@ -31,6 +31,7 @@
#include <cstdio>
#include <cstdint>
#include <cstring>
+#include <cstdio>
#include <new>
#include <utility>
diff --git a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/importers/proto/proto_importer_module.h b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/importers/proto/proto_importer_module.h
index 098433c47..0820bb220 100644
--- a/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/importers/proto/proto_importer_module.h
+++ b/src/3rdparty/chromium/third_party/perfetto/src/trace_processor/importers/proto/proto_importer_module.h
@@ -23,6 +23,8 @@
#include "perfetto/trace_processor/status.h"
#include "src/trace_processor/trace_blob_view.h"
+#include <cstdint>
+
namespace perfetto {
namespace protos {
diff --git a/src/3rdparty/chromium/ui/events/gesture_event_details.h b/src/3rdparty/chromium/ui/events/gesture_event_details.h
index d20416738..8dadab3d0 100644
--- a/src/3rdparty/chromium/ui/events/gesture_event_details.h
+++ b/src/3rdparty/chromium/ui/events/gesture_event_details.h
@@ -5,6 +5,7 @@
#ifndef UI_EVENTS_GESTURE_DETECTION_GESTURE_EVENT_DETAILS_H_
#define UI_EVENTS_GESTURE_DETECTION_GESTURE_EVENT_DETAILS_H_
+#include <cstdint>
#include <string.h>
#include "base/check_op.h"
diff --git a/src/3rdparty/chromium/ui/gl/gl_surface_glx.cc b/src/3rdparty/chromium/ui/gl/gl_surface_glx.cc
index 1d5527691..ef9d5ce13 100644
--- a/src/3rdparty/chromium/ui/gl/gl_surface_glx.cc
+++ b/src/3rdparty/chromium/ui/gl/gl_surface_glx.cc
@@ -4,6 +4,7 @@
#include "ui/gl/gl_surface_glx.h"
+#include <cstdint>
#include <utility>
#include "base/bind.h"
diff --git a/src/3rdparty/chromium/ui/gl/gl_surface_glx.h b/src/3rdparty/chromium/ui/gl/gl_surface_glx.h
index ab612cd87..2178d8514 100644
--- a/src/3rdparty/chromium/ui/gl/gl_surface_glx.h
+++ b/src/3rdparty/chromium/ui/gl/gl_surface_glx.h
@@ -5,6 +5,7 @@
#ifndef UI_GL_GL_SURFACE_GLX_H_
#define UI_GL_GL_SURFACE_GLX_H_
+#include <cstdint>
#include <stdint.h>
#include <memory>
diff --git a/src/3rdparty/chromium/v8/src/base/logging.h b/src/3rdparty/chromium/v8/src/base/logging.h
index 7c774ed30..1c44cf72a 100644
--- a/src/3rdparty/chromium/v8/src/base/logging.h
+++ b/src/3rdparty/chromium/v8/src/base/logging.h
@@ -5,6 +5,7 @@
#ifndef V8_BASE_LOGGING_H_
#define V8_BASE_LOGGING_H_
+#include <cstdint>
#include <cstring>
#include <cstdint>
#include <sstream>
diff --git a/src/core/browsing_data_remover_delegate_qt.h b/src/core/browsing_data_remover_delegate_qt.h
index 5adfbbe7e..4e5c59e33 100644
--- a/src/core/browsing_data_remover_delegate_qt.h
+++ b/src/core/browsing_data_remover_delegate_qt.h
@@ -44,6 +44,8 @@
#include "content/public/browser/browsing_data_remover_delegate.h"
+#include <cstdint>
+
namespace QtWebEngineCore {
class BrowsingDataRemoverDelegateQt : public content::BrowsingDataRemoverDelegate {

View File

@ -1,97 +0,0 @@
diff --git a/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn b/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn
index 96a59c7c7..d5470f284 100644
--- a/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn
+++ b/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn
@@ -208,12 +208,6 @@ if (current_cpu == "arm") {
]
if (arm_optionally_use_neon) {
# Run-time NEON detection.
- deps = [
- "//third_party/android_tools:cpu_features",
- ]
-
- # To get the __android_log_print routine
- libs = [ "log" ]
# Detection routine
sources += [ "sp/src/arm/detect.c" ]
diff --git a/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c b/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c
index 57bfe4089..94a3f7ddc 100644
--- a/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c
+++ b/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c
@@ -9,13 +9,57 @@
*
*/
-#include <cpu-features.h>
-
-#include "android/log.h"
#include "dl/sp/api/omxSP.h"
+// For ArmCpuCaps()
+#include <stdio.h>
+#include <string.h>
+
+// based on libvpx arm_cpudetect.c
+static int ArmCpuCaps(const char* cpuinfo_name) {
+ char cpuinfo_line[512];
+ FILE* f = fopen(cpuinfo_name, "r");
+ if (!f) {
+ // Assume Neon if /proc/cpuinfo is unavailable.
+ // This will occur for Chrome sandbox for Pepper or Render process.
+ return 1;
+ }
+ while (fgets(cpuinfo_line, sizeof(cpuinfo_line) - 1, f)) {
+ if (memcmp(cpuinfo_line, "Features", 8) == 0) {
+ char* p = strstr(cpuinfo_line, " neon");
+ if (p && (p[5] == ' ' || p[5] == '\n')) {
+ fclose(f);
+ return 1;
+ }
+ // aarch64 uses asimd for Neon.
+ p = strstr(cpuinfo_line, " asimd");
+ if (p && (p[6] == ' ' || p[6] == '\n')) {
+ fclose(f);
+ return 1;
+ }
+ }
+ }
+ fclose(f);
+ return 0;
+}
+
int omxSP_HasArmNeon() {
- return (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0;
+#if defined(__arm__) || defined(__aarch64__)
+// gcc -mfpu=neon defines __ARM_NEON__
+// __ARM_NEON__ generates code that requires Neon. NaCL also requires Neon.
+// For Linux, /proc/cpuinfo can be tested but without that assume Neon.
+#if defined(__ARM_NEON__) || defined(__native_client__) || !defined(__linux__)
+ return 1;
+// For aarch64(arm64), /proc/cpuinfo's feature is not complete, e.g. no neon
+// flag in it.
+// So for aarch64, neon enabling is hard coded here.
+#elif defined(__aarch64__)
+ return 1;
+#else
+ // Linux arm parse text file for neon detect.
+ return ArmCpuCaps("/proc/cpuinfo");
+#endif
+#endif // __arm__
}
static void SetFFTRoutines() {
@@ -24,13 +68,9 @@ static void SetFFTRoutines() {
* forward and inverse FFTs
*/
if (omxSP_HasArmNeon()) {
- __android_log_print(ANDROID_LOG_INFO, "OpenMAX DL FFT",
- "Using NEON FFT");
omxSP_FFTFwd_RToCCS_F32 = omxSP_FFTFwd_RToCCS_F32_Sfs;
omxSP_FFTInv_CCSToR_F32 = omxSP_FFTInv_CCSToR_F32_Sfs;
} else {
- __android_log_print(ANDROID_LOG_INFO, "OpenMAX DL FFT",
- "Using non-NEON FFT");
omxSP_FFTFwd_RToCCS_F32 = omxSP_FFTFwd_RToCCS_F32_Sfs_vfp;
omxSP_FFTInv_CCSToR_F32 = omxSP_FFTInv_CCSToR_F32_Sfs_vfp;
}

15
qtwebengine-release.sh Executable file
View File

@ -0,0 +1,15 @@
#!/bin/sh
set -x
VERSION=5.15.17
CHROMIUMHASH=`wget https://code.qt.io/cgit/qt/qtwebengine.git/tree/src/3rdparty?h=$VERSION -q --content-on-error -O - | grep "Bad object name: " | sed 's/^.*Bad object name: \([0-9a-f]\{40\}\).*$/\1/g'`
rm -rf qtwebengine-$VERSION qtwebengine-$VERSION.tar.gz qtwebengine-chromium-$CHROMIUMHASH qtwebengine-chromium-$CHROMIUMHASH.tar.gz qtwebengine-everywhere-src-$VERSION
wget https://github.com/qt/qtwebengine/archive/$VERSION.tar.gz -O qtwebengine-$VERSION.tar.gz || exit $?
tar xzf qtwebengine-$VERSION.tar.gz || exit $?
wget https://github.com/qt/qtwebengine-chromium/archive/$CHROMIUMHASH.tar.gz -O qtwebengine-chromium-$CHROMIUMHASH.tar.gz || exit $?
tar xzf qtwebengine-chromium-$CHROMIUMHASH.tar.gz || exit $?
mv qtwebengine-$VERSION qtwebengine-everywhere-src-$VERSION || exit $?
(cd qtwebengine-everywhere-src-$VERSION ; syncqt.pl -version $VERSION ) || exit $?
rmdir qtwebengine-everywhere-src-$VERSION/src/3rdparty || exit $?
mv qtwebengine-chromium-$CHROMIUMHASH qtwebengine-everywhere-src-$VERSION/src/3rdparty || exit $?
XZ_OPT="-9 -T2" tar cJf qtwebengine-everywhere-src-$VERSION.tar.xz qtwebengine-everywhere-src-$VERSION || exit $?
rm -rf qtwebengine-$VERSION qtwebengine-$VERSION.tar.gz qtwebengine-chromium-$CHROMIUMHASH qtwebengine-chromium-$CHROMIUMHASH.tar.gz qtwebengine-everywhere-src-$VERSION

View File

@ -0,0 +1,15 @@
diff --git a/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp b/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp
index 0dc349706..0bfee6da4 100644
--- a/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp
+++ b/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp
@@ -11,6 +11,10 @@
#include <algorithm> // std::lower_bound
#include <iterator>
+#include <string.h>
+#include <algorithm>
+#include <iterator>
+
static constexpr const char* gColorNames[] = {
"aliceblue",
"antiquewhite",

2999
riscv.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,2 +1,2 @@
SHA512 (qtwebengine-everywhere-src-5.15.17-clean.tar.xz) = d8fa20e0d1eea0c3c15a98145995eaa37ca21edcb7de3bf5ec548a0347c0aa2409a183ba2f8d9fdfc3686802e5e1f5bb083c0d51fe5ad3a435ab3c72b4c32af9
SHA512 (pulseaudio-12.2-headers.tar.gz) = a5a9bcbb16030b3bc83cc0cc8f5e7f90e0723d3e83258a5c77eacb32eaa267118a73fa7814fbcc99a24e4907916a2b371ebb6dedc4f45541c3acf6c834fd35be
SHA512 (qtwebengine-everywhere-src-5.14.2-clean.tar.xz) = 1b946115ac7fba2db6f2807bca5b8911147c164ed19aa13e46bd030a3317f484b2241150cad59ab071da5fd000fc003a81ccc93a68ef3f34a997ff8c4a7d113a

1
sources.keep Normal file
View File

@ -0,0 +1 @@
SHA512 (pulseaudio-12.2-headers.tar.gz) = a5a9bcbb16030b3bc83cc0cc8f5e7f90e0723d3e83258a5c77eacb32eaa267118a73fa7814fbcc99a24e4907916a2b371ebb6dedc4f45541c3acf6c834fd35be

33254
v8.patch Normal file

File diff suppressed because it is too large Load Diff