Merge branch 'i9e' into i8e

i8e
Arkady L. Shane 3 months ago
commit fc47e37dae
Signed by: tigro
GPG Key ID: 1EC08A25C9DB2503

@ -6,3 +6,5 @@ dea187019741602d57aaf189a80abba261fbd2aa SOURCES/linux-x64-0.19.2.tgz
8e9bc55cce3899627b2810ecfe87116c5a9147b5 SOURCES/chromium-browser-gost-icons.tar.xz 8e9bc55cce3899627b2810ecfe87116c5a9147b5 SOURCES/chromium-browser-gost-icons.tar.xz
a2a9663fa5c46439dafbc1b0f23825b2a8c68acf SOURCES/msspi-2e626e5a5605cc4c03fa4bfc0145e459864e897a.tar.xz a2a9663fa5c46439dafbc1b0f23825b2a8c68acf SOURCES/msspi-2e626e5a5605cc4c03fa4bfc0145e459864e897a.tar.xz
4543172087b8a3971b37ddaa4cf1fc91a575bfae SOURCES/Chromium-Gost-3224c62bcc360b80de98da20358cbbe16d773c10.tar.xz 4543172087b8a3971b37ddaa4cf1fc91a575bfae SOURCES/Chromium-Gost-3224c62bcc360b80de98da20358cbbe16d773c10.tar.xz
b66519ed49abdd4712315ae3a4645830073c09cf SOURCES/bindgen-cli-aarch64.tar.xz
107a886d1095bb01268e6cd51f1878385e694229 SOURCES/bindgen-cli-x86_64.tar.xz

2
.gitignore vendored

@ -6,3 +6,5 @@ SOURCES/node-v20.6.1-linux-arm64.tar.xz
SOURCES/chromium-browser-gost-icons.tar.xz SOURCES/chromium-browser-gost-icons.tar.xz
SOURCES/msspi-2e626e5a5605cc4c03fa4bfc0145e459864e897a.tar.xz SOURCES/msspi-2e626e5a5605cc4c03fa4bfc0145e459864e897a.tar.xz
SOURCES/Chromium-Gost-3224c62bcc360b80de98da20358cbbe16d773c10.tar.xz SOURCES/Chromium-Gost-3224c62bcc360b80de98da20358cbbe16d773c10.tar.xz
SOURCES/bindgen-cli-aarch64.tar.xz
SOURCES/bindgen-cli-x86_64.tar.xz

@ -1,53 +0,0 @@
--- chromium-124.0.6367.60/third_party/dav1d/libdav1d/src/arm/asm.S 2024-04-15 22:34:36.000000000 +0200
+++ chromium-122.0.6261.128/third_party/dav1d/libdav1d/src/arm/asm.S 2024-03-13 00:38:27.000000000 +0100
@@ -34,50 +34,6 @@
#define x18 do_not_use_x18
#define w18 do_not_use_w18
-#if HAVE_AS_ARCH_DIRECTIVE
- .arch AS_ARCH_LEVEL
-#endif
-
-#if HAVE_AS_ARCHEXT_DOTPROD_DIRECTIVE
-#define ENABLE_DOTPROD .arch_extension dotprod
-#define DISABLE_DOTPROD .arch_extension nodotprod
-#else
-#define ENABLE_DOTPROD
-#define DISABLE_DOTPROD
-#endif
-#if HAVE_AS_ARCHEXT_I8MM_DIRECTIVE
-#define ENABLE_I8MM .arch_extension i8mm
-#define DISABLE_I8MM .arch_extension noi8mm
-#else
-#define ENABLE_I8MM
-#define DISABLE_I8MM
-#endif
-#if HAVE_AS_ARCHEXT_SVE_DIRECTIVE
-#define ENABLE_SVE .arch_extension sve
-#define DISABLE_SVE .arch_extension nosve
-#else
-#define ENABLE_SVE
-#define DISABLE_SVE
-#endif
-#if HAVE_AS_ARCHEXT_SVE2_DIRECTIVE
-#define ENABLE_SVE2 .arch_extension sve2
-#define DISABLE_SVE2 .arch_extension nosve2
-#else
-#define ENABLE_SVE2
-#define DISABLE_SVE2
-#endif
-
-/* If we do support the .arch_extension directives, disable support for all
- * the extensions that we may use, in case they were implicitly enabled by
- * the .arch level. This makes it clear if we try to assemble an instruction
- * from an unintended extension set; we only allow assmbling such instructions
- * within regions where we explicitly enable those extensions. */
-DISABLE_DOTPROD
-DISABLE_I8MM
-DISABLE_SVE
-DISABLE_SVE2
-
-
/* Support macros for
* - Armv8.3-A Pointer Authentication and
* - Armv8.5-A Branch Target Identification

@ -1,15 +0,0 @@
diff -up chromium-126.0.6478.55/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h.me chromium-126.0.6478.55/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h
--- chromium-126.0.6478.55/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h.me 2024-06-12 13:09:47.539620293 -0400
+++ chromium-126.0.6478.55/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h 2024-06-12 13:12:10.570739701 -0400
@@ -10,9 +10,11 @@
#include "partition_alloc/build_config.h"
#include "partition_alloc/partition_alloc_buildflags.h"
+#if 0
#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
#define HAS_HW_CAPS
#endif
+#endif
#if defined(ARCH_CPU_ARM64) && defined(HAS_HW_CAPS)
#include <asm/hwcap.h>

@ -0,0 +1,38 @@
commit 89dcd2d419755421290f85e32617acabdd81cac1
Author: lauren n. liberda <lauren@selfisekai.rocks>
Date: Thu Jun 20 18:55:57 2024 +0000
unbundle: add missing dav1d targets
fixes "ERROR Unresolved dependencies.
//third_party/crabbyavif:crabbyavif_dav1d_bindings(//build/toolchain/linux/unbundle:default)
needs //third_party/dav1d:dav1d_config(//build/toolchain/linux/unbundle:default)
//third_party/crabbyavif:crabbyavif_dav1d_bindings(//build/toolchain/linux/unbundle:default)
needs //third_party/dav1d:dav1d_headers(//build/toolchain/linux/unbundle:default)"
Change-Id: I85442e5fb67a804985354570fba453cc619c83d7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5642761
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1317534}
diff --git a/build/linux/unbundle/dav1d.gn b/build/linux/unbundle/dav1d.gn
index 3d65158bc6144..a6d005a6622e3 100644
--- a/build/linux/unbundle/dav1d.gn
+++ b/build/linux/unbundle/dav1d.gn
@@ -21,3 +21,14 @@ source_set("dav1d") {
deps = [ ":dav1d_shim" ]
public_configs = [ ":system_dav1d" ]
}
+
+group("dav1d_headers") {
+ public_deps = [ ":dav1d_shim" ]
+}
+
+config("dav1d_config") {
+ configs = [
+ ":system_dav1d",
+ ":dav1d_shim_config",
+ ]
+}

@ -0,0 +1,15 @@
diff -up chromium-127.0.6533.72/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h.me chromium-127.0.6533.72/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h
--- chromium-127.0.6533.72/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h.me 2024-07-25 23:58:19.751616508 +0200
+++ chromium-127.0.6533.72/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h 2024-07-26 00:01:46.391800969 +0200
@@ -10,9 +10,11 @@
#include "partition_alloc/build_config.h"
#include "partition_alloc/partition_alloc_buildflags.h"
+#if 0
#if PA_BUILDFLAG(IS_ANDROID) || PA_BUILDFLAG(IS_LINUX)
#define HAS_HW_CAPS
#endif
+#endif
#if PA_BUILDFLAG(PA_ARCH_CPU_ARM64) && defined(HAS_HW_CAPS)
#include <asm/hwcap.h>

@ -1,3 +1,15 @@
diff -up chromium-127.0.6533.72/build/rust/rust_bindgen.gni.me chromium-127.0.6533.72/build/rust/rust_bindgen.gni
--- chromium-127.0.6533.72/build/rust/rust_bindgen.gni.me 2024-07-25 16:11:18.754551595 +0200
+++ chromium-127.0.6533.72/build/rust/rust_bindgen.gni 2024-07-25 16:11:33.997837660 +0200
@@ -22,7 +22,7 @@ _libclang_path = rust_bindgen_root
if (host_os == "win") {
_libclang_path += "/bin"
} else {
- _libclang_path += "/lib"
+ _libclang_path += "/lib64"
}
# Template to build Rust/C bindings with bindgen.
diff -up chromium-121.0.6167.57/build/config/clang/BUILD.gn.rust-clang_lib chromium-121.0.6167.57/build/config/clang/BUILD.gn diff -up chromium-121.0.6167.57/build/config/clang/BUILD.gn.rust-clang_lib chromium-121.0.6167.57/build/config/clang/BUILD.gn
--- chromium-121.0.6167.57/build/config/clang/BUILD.gn.rust-clang_lib 2024-01-10 16:43:01.000000000 +0100 --- chromium-121.0.6167.57/build/config/clang/BUILD.gn.rust-clang_lib 2024-01-10 16:43:01.000000000 +0100
+++ chromium-121.0.6167.57/build/config/clang/BUILD.gn 2024-01-20 19:51:38.481992799 +0100 +++ chromium-121.0.6167.57/build/config/clang/BUILD.gn 2024-01-20 19:51:38.481992799 +0100

@ -315,7 +315,11 @@ if __name__ == '__main__':
nacl_versions(chromium_version) nacl_versions(chromium_version)
if (args.cleansources): if (args.cleansources):
junk_dirs = ['build/linux/debian_bullseye_amd64-sysroot', 'build/linux/debian_bullseye_i386-sysroot'] junk_dirs = ['build/linux/debian_bullseye_amd64-sysroot',
'build/linux/debian_bullseye_i386-sysroot',
'third_party/node/linux/node-linux-x64',
'third_party/rust-toolchain',
'third_party/rust-src']
# First, the dirs: # First, the dirs:
for directory in junk_dirs: for directory in junk_dirs:

@ -236,6 +236,7 @@ manual_files=" libavcodec/aarch64/h264pred_neon.S \
libavcodec/aarch64/hpeldsp_neon.S \ libavcodec/aarch64/hpeldsp_neon.S \
libavcodec/aarch64/neon.S \ libavcodec/aarch64/neon.S \
libavcodec/aarch64/vorbisdsp_neon.S \ libavcodec/aarch64/vorbisdsp_neon.S \
libavcodec/aarch64/autorename_libavcodec_aarch64_vorbisdsp_neon.S \
libavcodec/aarch64/vorbisdsp_init.c \ libavcodec/aarch64/vorbisdsp_init.c \
libavcodec/aarch64/vp8dsp_neon.S \ libavcodec/aarch64/vp8dsp_neon.S \
libavcodec/x86/hpeldsp.asm \ libavcodec/x86/hpeldsp.asm \
@ -273,6 +274,8 @@ manual_files=" libavcodec/aarch64/h264pred_neon.S \
libavutil/aarch64/cpu.c \ libavutil/aarch64/cpu.c \
libavutil/aarch64/float_dsp_init.c \ libavutil/aarch64/float_dsp_init.c \
libavutil/aarch64/float_dsp_neon.S \ libavutil/aarch64/float_dsp_neon.S \
libavutil/aarch64/autorename_libavutil_aarch64_float_dsp_neon.S \
libavutil/aarch64/tx_float_neon.S \
libavutil/aarch64/timer.h \ libavutil/aarch64/timer.h \
libavutil/cpu.c \ libavutil/cpu.c \
libavutil/fixed_dsp.c \ libavutil/fixed_dsp.c \
@ -285,6 +288,7 @@ manual_files=" libavcodec/aarch64/h264pred_neon.S \
libavutil/x86/cpu.c \ libavutil/x86/cpu.c \
libavutil/x86/float_dsp_init.c \ libavutil/x86/float_dsp_init.c \
libavutil/x86/tx_float_init.c \ libavutil/x86/tx_float_init.c \
libavutil/aarch64/tx_float_init.c \
libavutil/x86/x86inc.asm \ libavutil/x86/x86inc.asm \
libavutil/x86/x86util.asm " libavutil/x86/x86util.asm "

@ -1,8 +1,8 @@
Index: chromium-121.0.6167.75/build/toolchain/gcc_toolchain.gni Index: chromium-127.0.6533.72/build/toolchain/gcc_toolchain.gni
=================================================================== ===================================================================
--- chromium-121.0.6167.75.orig/build/toolchain/gcc_toolchain.gni --- chromium-127.0.6533.72.orig/build/toolchain/gcc_toolchain.gni
+++ chromium-121.0.6167.75/build/toolchain/gcc_toolchain.gni +++ chromium-127.0.6533.72/build/toolchain/gcc_toolchain.gni
@@ -464,7 +464,13 @@ template("single_gcc_toolchain") { @@ -439,7 +439,13 @@ template("single_gcc_toolchain") {
# -soname flag is not available on aix ld # -soname flag is not available on aix ld
soname_flag = "-Wl,-soname=\"$soname\"" soname_flag = "-Wl,-soname=\"$soname\""
} }
@ -17,7 +17,7 @@ Index: chromium-121.0.6167.75/build/toolchain/gcc_toolchain.gni
# Generate a map file to be used for binary size analysis. # Generate a map file to be used for binary size analysis.
# Map file adds ~10% to the link time on a z620. # Map file adds ~10% to the link time on a z620.
@@ -576,7 +582,13 @@ template("single_gcc_toolchain") { @@ -551,7 +557,13 @@ template("single_gcc_toolchain") {
whole_archive_flag = "-Wl,--whole-archive" whole_archive_flag = "-Wl,--whole-archive"
no_whole_archive_flag = "-Wl,--no-whole-archive" no_whole_archive_flag = "-Wl,--no-whole-archive"
} }
@ -32,18 +32,3 @@ Index: chromium-121.0.6167.75/build/toolchain/gcc_toolchain.gni
if (defined(invoker.strip)) { if (defined(invoker.strip)) {
strip_command = "${invoker.strip} -o \"$sofile\" \"$unstripped_sofile\"" strip_command = "${invoker.strip} -o \"$sofile\" \"$unstripped_sofile\""
@@ -636,7 +648,13 @@ template("single_gcc_toolchain") {
start_group_flag = "-Wl,--start-group"
end_group_flag = "-Wl,--end-group "
}
- link_command = "$ld {{ldflags}}${extra_ldflags} -o \"$unstripped_outfile\" $start_group_flag @\"$rspfile\" {{solibs}} $end_group_flag {{libs}} {{rlibs}}"
+ if (target_cpu == "ppc64") {
+ # Work around linker failures due to Rust libraries and the use of whole-archive
+ link_command = "$ld -Wl,--start-group {{ldflags}}${extra_ldflags} -o \"$unstripped_outfile\" @\"$rspfile\" {{solibs}} {{libs}} {{rlibs}} -Wl,--end-group"
+ }
+ else {
+ link_command = "$ld {{ldflags}}${extra_ldflags} -o \"$unstripped_outfile\" $start_group_flag @\"$rspfile\" {{solibs}} $end_group_flag {{libs}} {{rlibs}}"
+ }
# Generate a map file to be used for binary size analysis.
# Map file adds ~10% to the link time on a z620.

@ -1,10 +1,12 @@
--- a/base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h Index: chromium-127.0.6533.72/base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h ===================================================================
--- chromium-127.0.6533.72.orig/base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h
+++ chromium-127.0.6533.72/base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h
@@ -176,7 +176,11 @@ SystemPageBaseMask() { @@ -176,7 +176,11 @@ SystemPageBaseMask() {
return ~SystemPageOffsetMask(); return ~SystemPageOffsetMask();
} }
+#if defined(ARCH_CPU_PPC64) +#if PA_BUILDFLAG(PA_ARCH_CPU_PPC64_FAMILY)
+constexpr size_t kPageMetadataShift = 6; // 64 bytes per partition page. +constexpr size_t kPageMetadataShift = 6; // 64 bytes per partition page.
+#else +#else
constexpr size_t kPageMetadataShift = 5; // 32 bytes per partition page. constexpr size_t kPageMetadataShift = 5; // 32 bytes per partition page.
@ -12,13 +14,15 @@
constexpr size_t kPageMetadataSize = 1 << kPageMetadataShift; constexpr size_t kPageMetadataSize = 1 << kPageMetadataShift;
} // namespace internal } // namespace internal
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_page.h Index: chromium-127.0.6533.72/base/allocator/partition_allocator/src/partition_alloc/partition_page.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_page.h ===================================================================
@@ -86,7 +86,11 @@ struct SlotSpanMetadata { --- chromium-127.0.6533.72.orig/base/allocator/partition_allocator/src/partition_alloc/partition_page.h
+++ chromium-127.0.6533.72/base/allocator/partition_allocator/src/partition_alloc/partition_page.h
@@ -87,7 +87,11 @@ struct SlotSpanMetadata {
// CHECK()ed in AllocNewSlotSpan(). // CHECK()ed in AllocNewSlotSpan().
// The maximum number of bits needed to cover all currently supported OSes. // The maximum number of bits needed to cover all currently supported OSes.
+#if defined(ARCH_CPU_PPC64) +#if PA_BUILDFLAG(PA_ARCH_CPU_PPC64_FAMILY)
+ static constexpr size_t kMaxSlotsPerSlotSpanBits = 15; + static constexpr size_t kMaxSlotsPerSlotSpanBits = 15;
+#else +#else
static constexpr size_t kMaxSlotsPerSlotSpanBits = 13; static constexpr size_t kMaxSlotsPerSlotSpanBits = 13;
@ -26,11 +30,11 @@
static_assert(kMaxSlotsPerSlotSpan < (1 << kMaxSlotsPerSlotSpanBits), ""); static_assert(kMaxSlotsPerSlotSpan < (1 << kMaxSlotsPerSlotSpanBits), "");
// |marked_full| isn't equivalent to being full. Slot span is marked as full // |marked_full| isn't equivalent to being full. Slot span is marked as full
@@ -100,7 +104,11 @@ struct SlotSpanMetadata { @@ -101,7 +105,11 @@ struct SlotSpanMetadata {
private: private:
const uint32_t can_store_raw_size_ : 1; const uint32_t can_store_raw_size_ : 1;
uint32_t freelist_is_sorted_ : 1; uint32_t freelist_is_sorted_ : 1;
+#if defined(ARCH_CPU_PPC64) +#if PA_BUILDFLAG(PA_ARCH_CPU_PPC64_FAMILY)
+ uint32_t unused1_ : (64 - 1 - 2 * kMaxSlotsPerSlotSpanBits - 1 - 1); + uint32_t unused1_ : (64 - 1 - 2 * kMaxSlotsPerSlotSpanBits - 1 - 1);
+#else +#else
uint32_t unused1_ : (32 - 1 - 2 * kMaxSlotsPerSlotSpanBits - 1 - 1); uint32_t unused1_ : (32 - 1 - 2 * kMaxSlotsPerSlotSpanBits - 1 - 1);
@ -38,16 +42,15 @@
// If |in_empty_cache_|==1, |empty_cache_index| is undefined and mustn't be // If |in_empty_cache_|==1, |empty_cache_index| is undefined and mustn't be
// used. // used.
uint16_t in_empty_cache_ : 1; uint16_t in_empty_cache_ : 1;
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h Index: chromium-127.0.6533.72/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h ===================================================================
@@ -21,6 +21,11 @@ static constexpr size_t kMaxSlotsPerSlot --- chromium-127.0.6533.72.orig/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h
+++ chromium-127.0.6533.72/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h
@@ -20,7 +20,7 @@
// System page size can be 4, 16, or 64 kiB on Linux on arm64. 64 kiB is
// currently (kMaxSlotsPerSlotSpanBits == 13) not supported by the code, // currently (kMaxSlotsPerSlotSpanBits == 13) not supported by the code,
// so we use the 16 kiB maximum (64 kiB will crash). // so we use the 16 kiB maximum (64 kiB will crash).
static constexpr size_t kMaxSlotsPerSlotSpan = 4 * (1 << 14) / kSmallestBucket; -static constexpr size_t kMaxSlotsPerSlotSpan = 4 * (1 << 14) / kSmallestBucket;
+#elif BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_PPC64)
+// System page size is not a constant on OpenPOWER systems, but is either 4kiB
+// or 64kiB (1 << 12 or 1 << 16)
+// And PartitionPageSize() is 4 times the OS page size.
+static constexpr size_t kMaxSlotsPerSlotSpan = 4 * (1 << 16) / kSmallestBucket; +static constexpr size_t kMaxSlotsPerSlotSpan = 4 * (1 << 16) / kSmallestBucket;
#else #else
// A slot span can "span" multiple PartitionPages, but then its slot size is // A slot span can "span" multiple PartitionPages, but then its slot size is

@ -226,8 +226,22 @@
%global bundlelibaom 1 %global bundlelibaom 1
%global bundlelibavif 1 %global bundlelibavif 1
%global bundlesnappy 1 %global bundlesnappy 1
%global bundlezstd 1
%global bundleicu 1 %global bundleicu 1
%global bundledav1d 1 %global bundledav1d 1
%global bundlebrotli 1
%global bundlelibwebp 1
%global bundlecrc32c 1
%global bundleharfbuzz 1
%global bundlelibpng 1
%global bundlelibjpeg 1
%global bundlefreetype 1
%global bundlelibdrm 1
%global bundlefontconfig 1
%global bundleffmpegfree 1
%global bundlelibopenjpeg2 1
%global bundlelibtiff 1
%global bundlelibxml 1
%global bundlepylibs 0 %global bundlepylibs 0
%global bundlelibxslt 0 %global bundlelibxslt 0
%global bundleflac 0 %global bundleflac 0
@ -240,7 +254,11 @@
%global bundleopus 0 %global bundleopus 0
%global bundlelcms2 0 %global bundlelcms2 0
# RHEL 7.9 dropped minizip. # workaround for build error on aarch64
%ifarch aarch64
%global bundlehighway 1
%endif
# enable bundleminizip for Fedora > 39 due to switch to minizip-ng # enable bundleminizip for Fedora > 39 due to switch to minizip-ng
# which breaks the build # which breaks the build
%global bundleminizip 0 %global bundleminizip 0
@ -251,44 +269,29 @@
# Always build with internal ffmpeg # Always build with internal ffmpeg
%global bundleffmpegfree 0 %global bundleffmpegfree 0
%if 0%{?rhel} == 8 %if 0%{?fedora} || 0%{?rhel} >= 9
%global bundleharfbuzz 1 %global bundlezstd 0
%global bundlelibwebp 1 %global bundlefontconfig 0
%global bundlelibpng 1 %global bundledav1d 0
%global bundlelibjpeg 1
%global bundlefreetype 1
%global bundlelibdrm 1
%global bundlefontconfig 1
%global bundlebrotli 1
%global bundlelibopenjpeg2 1
%global bundlelibtiff 1
%global bundlecrc32c 1
%global bundlelibxml 1
%global bundledav1d 1
%else
%if 0%{?fedora} > 38 || 0%{?rhel} > 9
%global bundlebrotli 0
%global bundlelibwebp 0
%else
%global bundlebrotli 1
%global bundlelibwebp 1
%endif
%global bundlelibpng 0 %global bundlelibpng 0
%global bundlelibjpeg 0 %global bundlelibjpeg 0
%global bundlelibdrm 0 %global bundlelibdrm 0
%global bundlefontconfig 0
%global bundleffmpegfree 0 %global bundleffmpegfree 0
%global bundlefreetype 0 %global bundlefreetype 0
%global bundlelibopenjpeg2 0 %global bundlelibopenjpeg2 0
%global bundlelibtiff 0 %global bundlelibtiff 0
%global bundlelibxml 0
%if 0%{?rhel} == 9 %if 0%{?rhel} == 9
%global bundlecrc32c 1 %global bundlecrc32c 1
%global bundleharfbuzz 1 %global bundleharfbuzz 1
%global bundlebrotli 1
%global bundlelibwebp 1
%else %else
%global bundlecrc32c 0 %global bundlecrc32c 0
%global bundleharfbuzz 0 %global bundleharfbuzz 0
%global bundlebrotli 0
%global bundlelibwebp 0
%endif %endif
%global bundlelibxml 0
%endif %endif
%if %{with gost} %if %{with gost}
@ -335,7 +338,7 @@
Name: chromium%{chromium_channel} Name: chromium%{chromium_channel}
Version: 127.0.6533.72 Version: 127.0.6533.72
Release: 1%{?dist}.inferit Release: 1%{?dist}.inferit.1
Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
Url: http://www.chromium.org/Home Url: http://www.chromium.org/Home
License: BSD-3-Clause AND LGPL-2.1-or-later AND Apache-2.0 AND IJG AND MIT AND GPL-2.0-or-later AND ISC AND OpenSSL AND (MPL-1.1 OR GPL-2.0-only OR LGPL-2.0-only) License: BSD-3-Clause AND LGPL-2.1-or-later AND Apache-2.0 AND IJG AND MIT AND GPL-2.0-or-later AND ISC AND OpenSSL AND (MPL-1.1 OR GPL-2.0-only OR LGPL-2.0-only)
@ -411,9 +414,7 @@ Patch150: chromium-124-qt6.patch
# disable memory tagging (epel8 on aarch64) due to new feature IFUNC-Resolver # disable memory tagging (epel8 on aarch64) due to new feature IFUNC-Resolver
# it is not supported in old glibc < 2.30, error: fatal error: 'sys/ifunc.h' file not found # it is not supported in old glibc < 2.30, error: fatal error: 'sys/ifunc.h' file not found
Patch305: chromium-124-el8-arm64-memory_tagging.patch Patch305: chromium-124-el8-arm64-memory_tagging.patch
Patch306: chromium-126-el8-ifunc-header.patch Patch306: chromium-127-el8-ifunc-header.patch
# build error: unknown architectural extension on aarch64 (epel8)
Patch307: chromium-124-el8-libdav1d-aarch64.patch
# 64kpage support on aarch64 (el8) # 64kpage support on aarch64 (el8)
Patch308: chromium-124-el8-support-64kpage.patch Patch308: chromium-124-el8-support-64kpage.patch
# enable fstack-protector-strong # enable fstack-protector-strong
@ -434,7 +435,7 @@ Patch354: chromium-126-split-threshold-for-reg-with-hint.patch
Patch355: chromium-126-system-libstdc++.patch Patch355: chromium-126-system-libstdc++.patch
# set clang_lib path # set clang_lib path
Patch358: chromium-124-rust-clang_lib.patch Patch358: chromium-127-rust-clanglib.patch
# PowerPC64 LE support # PowerPC64 LE support
# Timothy Pearson's patchset # Timothy Pearson's patchset
@ -514,6 +515,7 @@ Patch501: chromium-127-ninja-1.21.1-deps-part0.patch
Patch502: chromium-127-ninja-1.21.1-deps-part1.patch Patch502: chromium-127-ninja-1.21.1-deps-part1.patch
Patch503: chromium-127-ninja-1.21.1-deps-part2.patch Patch503: chromium-127-ninja-1.21.1-deps-part2.patch
Patch504: chromium-127-ninja-1.21.1-deps-part3.patch Patch504: chromium-127-ninja-1.21.1-deps-part3.patch
Patch505: chromium-127-crabbyavif.patch
# Old Yandex patch # Old Yandex patch
Patch600: 0001-Yandex-as-default-search-engine.patch Patch600: 0001-Yandex-as-default-search-engine.patch
@ -557,6 +559,10 @@ Source14: https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-%{esbuild_ve
Source15: https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-%{esbuild_version}.tgz Source15: https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-%{esbuild_version}.tgz
%endif %endif
# bindgen for epel8
Source16: https://than.fedorapeople.org/epel8/bindgen-cli-aarch64.tar.xz
Source17: https://than.fedorapeople.org/epel8/bindgen-cli-x86_64.tar.xz
# esbuild binary from fedora # esbuild binary from fedora
%if 0%{?fedora} %if 0%{?fedora}
BuildRequires: golang-github-evanw-esbuild BuildRequires: golang-github-evanw-esbuild
@ -594,6 +600,17 @@ BuildRequires: binutils
BuildRequires: rustc BuildRequires: rustc
%if 0%{?rhel} == 8
# need to build bindgen on el8
BuildRequires: cargo
%else
BuildRequires: bindgen-cli
%endif
%if ! %{bundlezstd}
BuildRequires: libzstd-devel
%endif
# We do not need to do this with internal build of libffmpeg.so # We do not need to do this with internal build of libffmpeg.so
# build with system ffmpeg-free # build with system ffmpeg-free
#%%if ! %%{bundleffmpegfree} #%%if ! %%{bundleffmpegfree}
@ -902,13 +919,6 @@ ExclusiveArch: x86_64 aarch64 ppc64le
ExclusiveArch: x86_64 aarch64 ExclusiveArch: x86_64 aarch64
%endif %endif
# FIXME
%if "%{_lib}" == "lib64"
Provides: libffmpeg.so()(64bit)
%else
Provides: libffmpeg.so
%endif
# Bundled bits (I'm sure I've missed some) # Bundled bits (I'm sure I've missed some)
Provides: bundled(angle) = 2422 Provides: bundled(angle) = 2422
Provides: bundled(bintrees) = 1.0.1 Provides: bundled(bintrees) = 1.0.1
@ -1039,6 +1049,9 @@ Provides: bundled(xdg-user-dirs)
Requires(post): /usr/sbin/semanage Requires(post): /usr/sbin/semanage
Requires(post): /usr/sbin/restorecon Requires(post): /usr/sbin/restorecon
# Package with libffmpeg.so
Requires: %{name}-ffmpeg%{_isa} = %{version}-%{release}
%description %description
Chromium is an open-source web browser, powered by WebKit (Blink). Chromium is an open-source web browser, powered by WebKit (Blink).
%if %{with gost} %if %{with gost}
@ -1111,6 +1124,19 @@ Requires: chromium%{chromium_channel}%{_isa} = %{version}-%{release}
%description qt6-ui %description qt6-ui
Qt6 UI for chromium. Qt6 UI for chromium.
%package ffmpeg
Summary: Library libffmpeg.so
# FIXME
%if "%{_lib}" == "lib64"
Provides: libffmpeg.so()(64bit)
%else
Provides: libffmpeg.so
%endif
Conflicts: %{name} < %{version}-%{release}
%description ffmpeg
Library libffmpeg.so for Chromium based browsers.
%prep %prep
%setup -q -n chromium-%{version} %setup -q -n chromium-%{version}
@ -1219,7 +1245,6 @@ sed -i 's/std::string data_dir_basename = "chromium"/std::string data_dir_basena
%ifarch aarch64 %ifarch aarch64
%patch -P305 -p1 -b .el8-memory_tagging %patch -P305 -p1 -b .el8-memory_tagging
%patch -P306 -p1 -b .el8-ifunc-header %patch -P306 -p1 -b .el8-ifunc-header
%patch -P307 -p1 -b .el8-libdav1d-aarch64
%patch -P308 -p1 -b .el8-support-64kpage.patch %patch -P308 -p1 -b .el8-support-64kpage.patch
%endif %endif
%endif %endif
@ -1300,7 +1325,7 @@ sed -i 's/std::string data_dir_basename = "chromium"/std::string data_dir_basena
%patch -P407 -p1 -b .fix-ppc64-linux-syscalls-headers %patch -P407 -p1 -b .fix-ppc64-linux-syscalls-headers
%patch -P408 -p1 -b .use-sysconf-page-size-on-ppc64 %patch -P408 -p1 -b .use-sysconf-page-size-on-ppc64
%patch -P409 -p1 -b .partition-alloc-4k-detect #%%patch -P409 -p1 -b .partition-alloc-4k-detect
%patch -P410 -p1 -b .dawn-fix-typos %patch -P410 -p1 -b .dawn-fix-typos
%patch -P411 -p1 -b .dawn-fix-ppc64le-detection %patch -P411 -p1 -b .dawn-fix-ppc64le-detection
@ -1316,6 +1341,8 @@ sed -i 's/std::string data_dir_basename = "chromium"/std::string data_dir_basena
%patch -P504 -p1 -b .ninja-1.21.1-deps %patch -P504 -p1 -b .ninja-1.21.1-deps
%endif %endif
%patch -P505 -p1 -b .crabbyavif
%patch -P601 -p1 -b .Added-Russian-description-and-summary-for-gnome-soft %patch -P601 -p1 -b .Added-Russian-description-and-summary-for-gnome-soft
%if ! %{with gost} %if ! %{with gost}
%patch -P602 -p1 -b .Yandex-as-default-search-engine %patch -P602 -p1 -b .Yandex-as-default-search-engine
@ -1338,6 +1365,20 @@ install -m0644 %{SOURCE50} ./chrome/browser/resources/new_tab_page/icons/google_
# See `man find` for how the `-exec command {} +` syntax works # See `man find` for how the `-exec command {} +` syntax works
find -type f \( -iname "*.py" \) -exec sed -i '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{chromium_pybin}=' {} + find -type f \( -iname "*.py" \) -exec sed -i '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{chromium_pybin}=' {} +
# workaround for missing bindgen on el8
%if 0%{?rhel} == 8
%ifarch aarch64
tar -Jxf %{SOURCE16}
%endif
%ifarch x86_64
tar -Jxf %{SOURCE17}
%endif
mkdir -p usr/%{_lib}
pushd usr/%{_lib}
ln -fs %{_libdir}/libclang* .
popd
%endif
# Add correct path for nodejs binary # Add correct path for nodejs binary
%if ! %{system_nodejs} %if ! %{system_nodejs}
pushd third_party/node/linux pushd third_party/node/linux
@ -1458,6 +1499,12 @@ export RUSTC_BOOTSTRAP=1
# set rustc version # set rustc version
rustc_version="$(rustc --version)" rustc_version="$(rustc --version)"
# set rust bindgen root
%if 0%{?rhel} == 8
rust_bindgen_root="$PWD%{_prefix}"
%else
rust_bindgen_root="%{_prefix}"
%endif
# set clang version # set clang version
clang_version="$(clang --version | sed -n 's/clang version //p' | cut -d. -f1)" clang_version="$(clang --version | sed -n 's/clang version //p' | cut -d. -f1)"
@ -1507,6 +1554,7 @@ CHROMIUM_CORE_GN_DEFINES+=' use_lld=false'
# enable system rust # enable system rust
CHROMIUM_CORE_GN_DEFINES+=' rust_sysroot_absolute="%{_prefix}"' CHROMIUM_CORE_GN_DEFINES+=' rust_sysroot_absolute="%{_prefix}"'
CHROMIUM_CORE_GN_DEFINES+=" rust_bindgen_root=\"$rust_bindgen_root\""
CHROMIUM_CORE_GN_DEFINES+=" rustc_version=\"$rustc_version\"" CHROMIUM_CORE_GN_DEFINES+=" rustc_version=\"$rustc_version\""
CHROMIUM_CORE_GN_DEFINES+=' use_sysroot=false' CHROMIUM_CORE_GN_DEFINES+=' use_sysroot=false'
@ -1706,6 +1754,9 @@ system_libs=()
%if ! %{bundleflac} %if ! %{bundleflac}
system_libs+=(flac) system_libs+=(flac)
%endif %endif
%if ! %{bundlezstd}
system_libs+=(zstd)
%endif
%if 0%{?noopenh264} %if 0%{?noopenh264}
system_libs+=(openh264) system_libs+=(openh264)
%endif %endif
@ -2007,7 +2058,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chrome_*.pak %{chromium_path}/chrome_*.pak
%{chromium_path}/chrome_crashpad_handler %{chromium_path}/chrome_crashpad_handler
%{chromium_path}/resources.pak %{chromium_path}/resources.pak
%{chromium_path}/libffmpeg.so
%{chromium_path}/%{chromium_browser_channel} %{chromium_path}/%{chromium_browser_channel}
%{chromium_path}/%{chromium_browser_channel}.sh %{chromium_path}/%{chromium_browser_channel}.sh
%attr(4755, root, root) %{chromium_path}/chrome-sandbox %attr(4755, root, root) %{chromium_path}/chrome-sandbox
@ -2027,6 +2077,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/libqt6_shim.so %{chromium_path}/libqt6_shim.so
%endif %endif
%files ffmpeg
%{chromium_path}/libffmpeg.so
%files common %files common
%if %{build_clear_key_cdm} %if %{build_clear_key_cdm}
%{chromium_path}/libclearkeycdm.so %{chromium_path}/libclearkeycdm.so
@ -2141,6 +2194,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%endif %endif
%changelog %changelog
* Sat Jul 27 2024 Arkady L. Shane <tigro@msvsphere-os.ru> - 127.0.6533.72-1.inferit.1
- Added chromium-ffmpeg package
* Thu Jul 25 2024 Arkady L. Shane <tigro@msvsphere-os.ru> - 127.0.6533.72-1.inferit * Thu Jul 25 2024 Arkady L. Shane <tigro@msvsphere-os.ru> - 127.0.6533.72-1.inferit
- update to 127.0.6533.72 - update to 127.0.6533.72
* CVE-2024-6988: Use after free in Downloads * CVE-2024-6988: Use after free in Downloads

Loading…
Cancel
Save