diff --git a/www-client/ungoogled-chromium/Manifest b/www-client/ungoogled-chromium/Manifest deleted file mode 100644 index 5248252..0000000 --- a/www-client/ungoogled-chromium/Manifest +++ /dev/null @@ -1,3 +0,0 @@ -DIST chromium-96-patchset-4.tar.xz 4812 BLAKE2B 5d82d212b8ec1689be6f4a7a0646256311d06c17e74ee0e5b2035c32125a5235e4b6b7605cefffa367cc53e651be17b75f5e339149b4c80dca50cd959b1623f1 SHA512 a72c1bb2c58e9e2912a641093c153f01ad7239dc971c7c96481ba4164204afe41741f3253e8af03070dab8276179784dc6a11761b39ad7902ed2553016778282 -DIST chromium-96.0.4664.110.tar.xz 1209944416 BLAKE2B 1cec11b248b9225e47caf6bf8ec243e301bb63df2b0a070fb55b829b712e513b2510944f72306cebde3715704cae5b2c6be83847e91b358cb5135b56d55255b3 SHA512 7db962dc7016f531c33e915408303f06f429b53d1c5a69b281e64f6204d4bdb413fd281c3d891bb696d846f80f6182289c10f4b19b3b4c2c8b7fd72070de3f02 -DIST ungoogled-chromium-96.0.4664.110-1.tar.gz 716247 BLAKE2B 8c5e9298fd5c1aba367e92208e720b5a4249a60f831f6d87e1ff848094266bf7d7cc9cc06d30b9e37b80df32ebb2e61b6b47af581583b1e15222e2d53a5d5a33 SHA512 c29c2723df6c984c4102144561f96073250f2a3d228faeb1901ad8a8002dee291471ffdd02891f7b31672f1f6353c93664563c0c39d295dc5f06368b45e2a5d3 diff --git a/www-client/ungoogled-chromium/files/chromium-93-InkDropHost-crash.patch b/www-client/ungoogled-chromium/files/chromium-93-InkDropHost-crash.patch deleted file mode 100644 index 54d16db..0000000 --- a/www-client/ungoogled-chromium/files/chromium-93-InkDropHost-crash.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/ui/views/animation/ink_drop_host_view.h b/ui/views/animation/ink_drop_host_view.h -index bd0975b..e5df288 100644 ---- a/ui/views/animation/ink_drop_host_view.h -+++ b/ui/views/animation/ink_drop_host_view.h -@@ -238,6 +238,11 @@ class VIEWS_EXPORT InkDropHost { - // Used to observe View and inform the InkDrop of host-transform changes. - ViewLayerTransformObserver host_view_transform_observer_; - -+ // Declared before |ink_drop_|, because InkDropImpl may call -+ // RemoveInkDropLayer on partly destructed InkDropHost. In -+ // that case |ink_drop_mask_| must be still valid. -+ std::unique_ptr ink_drop_mask_; -+ - // Should not be accessed directly. Use GetInkDrop() instead. - std::unique_ptr ink_drop_; - -@@ -261,8 +266,6 @@ class VIEWS_EXPORT InkDropHost { - int ink_drop_small_corner_radius_ = 2; - int ink_drop_large_corner_radius_ = 4; - -- std::unique_ptr ink_drop_mask_; -- - base::RepeatingCallback()> create_ink_drop_callback_; - base::RepeatingCallback()> - create_ink_drop_ripple_callback_; diff --git a/www-client/ungoogled-chromium/files/chromium-93-ffmpeg-4.4.patch b/www-client/ungoogled-chromium/files/chromium-93-ffmpeg-4.4.patch deleted file mode 100644 index 5dbf541..0000000 --- a/www-client/ungoogled-chromium/files/chromium-93-ffmpeg-4.4.patch +++ /dev/null @@ -1,60 +0,0 @@ ---- chromium-93.0.4577.63/media/filters/ffmpeg_demuxer.cc.orig 2021-09-07 08:38:33.765397601 +0200 -+++ chromium-93.0.4577.63/media/filters/ffmpeg_demuxer.cc 2021-09-07 09:03:32.575927180 +0200 -@@ -427,11 +427,19 @@ - scoped_refptr buffer; - - if (type() == DemuxerStream::TEXT) { -+#if defined FF_API_BUFFER_SIZE_T && ! FF_API_BUFFER_SIZE_T - size_t id_size = 0; -+#else -+ int id_size = 0; -+#endif - uint8_t* id_data = av_packet_get_side_data( - packet.get(), AV_PKT_DATA_WEBVTT_IDENTIFIER, &id_size); - -+#if defined FF_API_BUFFER_SIZE_T && ! FF_API_BUFFER_SIZE_T - size_t settings_size = 0; -+#else -+ int settings_size = 0; -+#endif - uint8_t* settings_data = av_packet_get_side_data( - packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size); - -@@ -443,7 +451,11 @@ - buffer = DecoderBuffer::CopyFrom(packet->data, packet->size, - side_data.data(), side_data.size()); - } else { -+#if defined FF_API_BUFFER_SIZE_T && ! FF_API_BUFFER_SIZE_T - size_t side_data_size = 0; -+#else -+ int side_data_size = 0; -+#endif - uint8_t* side_data = av_packet_get_side_data( - packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size); - -@@ -504,7 +516,11 @@ - packet->size - data_offset); - } - -+#if defined FF_API_BUFFER_SIZE_T && ! FF_API_BUFFER_SIZE_T - size_t skip_samples_size = 0; -+#else -+ int skip_samples_size = 0; -+#endif - const uint32_t* skip_samples_ptr = - reinterpret_cast(av_packet_get_side_data( - packet.get(), AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size)); ---- chromium-93.0.4577.63/media/filters/audio_decoder_unittest.cc.orig 2021-09-01 03:39:39.000000000 +0200 -+++ chromium-93.0.4577.63/media/filters/audio_decoder_unittest.cc 2021-09-07 09:00:33.311446755 +0200 -@@ -109,7 +109,11 @@ - } - - // If the timestamp is positive, try to use FFmpeg's discard data. -+#if defined FF_API_BUFFER_SIZE_T && ! FF_API_BUFFER_SIZE_T - size_t skip_samples_size = 0; -+#else -+ int skip_samples_size = 0; -+#endif - const uint32_t* skip_samples_ptr = - reinterpret_cast(av_packet_get_side_data( - packet, AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size)); diff --git a/www-client/ungoogled-chromium/files/chromium-94-ffmpeg-roll.patch b/www-client/ungoogled-chromium/files/chromium-94-ffmpeg-roll.patch deleted file mode 100644 index 68f2636..0000000 --- a/www-client/ungoogled-chromium/files/chromium-94-ffmpeg-roll.patch +++ /dev/null @@ -1,49 +0,0 @@ -From b94755e4633045be96ab5e0bdde0db7e16a804bd Mon Sep 17 00:00:00 2001 -From: "liberato@chromium.org" -Date: Fri, 6 Aug 2021 04:25:31 +0000 -Subject: [PATCH] FFmpeg M94 roll. - -Contains DEPS update + chromium-side fixes. - -Bug: 1227259 -Change-Id: I61c5eaa789ea12c17d0cbcbf837435b9cf32479b -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3011889 -Reviewed-by: Thomas Guilbert -Commit-Queue: Frank Liberato -Cr-Commit-Position: refs/heads/master@{#909174} ---- - media/ffmpeg/ffmpeg_common.h | 1 + - media/filters/ffmpeg_demuxer.cc | 4 ++-- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/media/ffmpeg/ffmpeg_common.h b/media/ffmpeg/ffmpeg_common.h -index cede8ac5a7..97d6307e28 100644 ---- a/media/ffmpeg/ffmpeg_common.h -+++ b/media/ffmpeg/ffmpeg_common.h -@@ -29,6 +29,7 @@ extern "C" { - #include - #include - #include -+#include - #include - #include - #include -diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc -index ac4713b072..605001d935 100644 ---- a/media/filters/ffmpeg_demuxer.cc -+++ b/media/filters/ffmpeg_demuxer.cc -@@ -106,12 +106,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; - } diff --git a/www-client/ungoogled-chromium/files/chromium-96-EnumTable-crash.patch b/www-client/ungoogled-chromium/files/chromium-96-EnumTable-crash.patch deleted file mode 100644 index 9736739..0000000 --- a/www-client/ungoogled-chromium/files/chromium-96-EnumTable-crash.patch +++ /dev/null @@ -1,76 +0,0 @@ -diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h -index aad9e08..2f3fcad 100644 ---- a/components/cast_channel/enum_table.h -+++ b/components/cast_channel/enum_table.h -@@ -8,6 +8,7 @@ - #include - #include - #include -+#include - - #include "base/check_op.h" - #include "base/macros.h" -@@ -188,7 +189,6 @@ class - inline constexpr GenericEnumTableEntry(int32_t value); - inline constexpr GenericEnumTableEntry(int32_t value, base::StringPiece str); - -- GenericEnumTableEntry(const GenericEnumTableEntry&) = delete; - GenericEnumTableEntry& operator=(const GenericEnumTableEntry&) = delete; - - private: -@@ -254,7 +254,6 @@ class EnumTable { - constexpr Entry(E value, base::StringPiece str) - : GenericEnumTableEntry(static_cast(value), str) {} - -- Entry(const Entry&) = delete; - Entry& operator=(const Entry&) = delete; - }; - -@@ -313,15 +312,14 @@ class EnumTable { - if (is_sorted_) { - const std::size_t index = static_cast(value); - if (ANALYZER_ASSUME_TRUE(index < data_.size())) { -- const auto& entry = data_.begin()[index]; -+ const auto& entry = data_[index]; - if (ANALYZER_ASSUME_TRUE(entry.has_str())) - return entry.str(); - } - return absl::nullopt; - } - return GenericEnumTableEntry::FindByValue( -- reinterpret_cast(data_.begin()), -- data_.size(), static_cast(value)); -+ &data_[0], data_.size(), static_cast(value)); - } - - // This overload of GetString is designed for cases where the argument is a -@@ -349,8 +347,7 @@ class EnumTable { - // enum value directly. - absl::optional GetEnum(base::StringPiece str) const { - auto* entry = GenericEnumTableEntry::FindByString( -- reinterpret_cast(data_.begin()), -- data_.size(), str); -+ &data_[0], data_.size(), str); - return entry ? static_cast(entry->value) : absl::optional(); - } - -@@ -365,7 +362,7 @@ class EnumTable { - // Align the data on a cache line boundary. - alignas(64) - #endif -- std::initializer_list data_; -+ const std::vector data_; - bool is_sorted_; - - constexpr EnumTable(std::initializer_list data, bool is_sorted) -@@ -377,8 +374,8 @@ class EnumTable { - - for (std::size_t i = 0; i < data.size(); i++) { - for (std::size_t j = i + 1; j < data.size(); j++) { -- const Entry& ei = data.begin()[i]; -- const Entry& ej = data.begin()[j]; -+ const Entry& ei = data[i]; -+ const Entry& ej = data[j]; - DCHECK(ei.value != ej.value) - << "Found duplicate enum values at indices " << i << " and " << j; - DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str())) diff --git a/www-client/ungoogled-chromium/files/chromium-96-freetype-unbundle.patch b/www-client/ungoogled-chromium/files/chromium-96-freetype-unbundle.patch deleted file mode 100644 index 6ef5ff6..0000000 --- a/www-client/ungoogled-chromium/files/chromium-96-freetype-unbundle.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/build/linux/BUILD.gn -+++ b/build/linux/BUILD.gn -@@ -23,6 +23,7 @@ - # the system, use with caution,for details see build/config/freetype/BUILD.gn. - pkg_config("freetype_from_pkgconfig") { - visibility = [ -+ "//build/config/freetype:freetype", - "//third_party:freetype_harfbuzz", - "//third_party/harfbuzz-ng:harfbuzz_source", - ] diff --git a/www-client/ungoogled-chromium/files/chromium-browser.xml b/www-client/ungoogled-chromium/files/chromium-browser.xml deleted file mode 100644 index 2c95a55..0000000 --- a/www-client/ungoogled-chromium/files/chromium-browser.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - Chromium - chromium-browser - chromium-browser %s - chromium-browser - false - - - diff --git a/www-client/ungoogled-chromium/files/chromium-glibc-2.34.patch b/www-client/ungoogled-chromium/files/chromium-glibc-2.34.patch deleted file mode 100644 index 64c03a6..0000000 --- a/www-client/ungoogled-chromium/files/chromium-glibc-2.34.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 600d63c2c59a9892dbc5423d7d8bb1565a9f91e7 Mon Sep 17 00:00:00 2001 -From: Michel Salim -Date: Thu, 04 Nov 2021 14:22:40 -0700 -Subject: [PATCH] Handle long SIGSTKSZ in glibc > 2.33 - -`SIGSTKSZ` is no longer constant in glibc > 2.33 but a function -returning a long. Cast before taking `max`. - -See https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS;h=85e84fe53699fe9e392edffa993612ce08b2954a;hb=HEAD - -Signed-off-by: Michel Salim -Change-Id: I197f8ff3053eede80d6aed096be4f0113dd43241 -(relocated to chromium repo, removed static) ---- - -diff --git a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc -index ca353c4..5cdabcf 100644 ---- a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc -+++ b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc -@@ -138,7 +138,7 @@ - // SIGSTKSZ may be too small to prevent the signal handlers from overrunning - // the alternative stack. Ensure that the size of the alternative stack is - // large enough. -- static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ); -+ const unsigned kSigStackSize = std::max(16384U, (unsigned)SIGSTKSZ); - - // Only set an alternative stack if there isn't already one, or if the current - // one is too small. -diff --git a/sandbox/linux/services/credentials.cc b/sandbox/linux/services/credentials.cc -index ca6b595..1c1ee42 100644 ---- a/sandbox/linux/services/credentials.cc -+++ b/sandbox/linux/services/credentials.cc -@@ -11,6 +11,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -100,7 +101,8 @@ bool ChrootToSafeEmptyDir() { - // TODO(crbug.com/1247458) Broken in MSan builds after LLVM f1bb30a4956f. - clone_flags |= CLONE_VM | CLONE_VFORK | CLONE_SETTLS; - -- char tls_buf[PTHREAD_STACK_MIN] = {0}; -+ char tls_buf[PTHREAD_STACK_MIN]; -+ memset(tls_buf, 0, PTHREAD_STACK_MIN); - tls = tls_buf; - #endif - diff --git a/www-client/ungoogled-chromium/files/chromium-launcher-r7.sh b/www-client/ungoogled-chromium/files/chromium-launcher-r7.sh deleted file mode 100644 index 1163ff3..0000000 --- a/www-client/ungoogled-chromium/files/chromium-launcher-r7.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash - -# Allow the user to override command-line flags, bug #357629. -# This is based on Debian's chromium-browser package, and is intended -# to be consistent with Debian. -for f in /etc/chromium/*; do - [[ -f ${f} ]] && source "${f}" -done - -# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system -# default CHROMIUM_FLAGS (from /etc/chromium/default). -CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"} - -# Let the wrapped binary know that it has been run through the wrapper -export CHROME_WRAPPER=$(readlink -f "$0") - -PROGDIR=${CHROME_WRAPPER%/*} - -case ":$PATH:" in - *:$PROGDIR:*) - # $PATH already contains $PROGDIR - ;; - *) - # Append $PROGDIR to $PATH - export PATH="$PATH:$PROGDIR" - ;; -esac - -if [[ ${EUID} == 0 && -O ${XDG_CONFIG_HOME:-${HOME}} ]]; then - # Running as root with HOME owned by root. - # Pass --user-data-dir to work around upstream failsafe. - CHROMIUM_FLAGS="--user-data-dir=${XDG_CONFIG_HOME:-${HOME}/.config}/chromium - ${CHROMIUM_FLAGS}" -fi - -# Select session type and platform -if @@OZONE_AUTO_SESSION@@; then - platform= - if [[ ${XDG_SESSION_TYPE} == x11 ]]; then - platform=x11 - elif [[ ${XDG_SESSION_TYPE} == wayland ]]; then - platform=wayland - else - if [[ -n ${WAYLAND_DISPLAY} ]]; then - platform=wayland - else - platform=x11 - fi - fi - if ${DISABLE_OZONE_PLATFORM:-false}; then - platform=x11 - fi - CHROMIUM_FLAGS="--ozone-platform=${platform} ${CHROMIUM_FLAGS}" -fi - -# Set the .desktop file name -export CHROME_DESKTOP="chromium-browser-chromium.desktop" - -exec -a "chromium-browser" "$PROGDIR/chrome" --extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@" diff --git a/www-client/ungoogled-chromium/files/chromium-shim_headers.patch b/www-client/ungoogled-chromium/files/chromium-shim_headers.patch deleted file mode 100644 index 9372632..0000000 --- a/www-client/ungoogled-chromium/files/chromium-shim_headers.patch +++ /dev/null @@ -1,48 +0,0 @@ -From e273172bbafedca36984fc40f4aa6c44b79ac2ef Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann -Date: Fri, 25 Dec 2020 09:10:32 +0000 -Subject: [PATCH] shim_headers: fix outputs generation - ---- - build/shim_headers.gni | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - -diff --git a/build/shim_headers.gni b/build/shim_headers.gni -index 0900cba..5138647 100644 ---- a/build/shim_headers.gni -+++ b/build/shim_headers.gni -@@ -6,6 +6,8 @@ template("shim_headers") { - action_name = "gen_${target_name}" - config_name = "${target_name}_config" - shim_headers_path = "${root_gen_dir}/shim_headers/${target_name}" -+ shim_root_path = rebase_path(invoker.root_path) -+ shim_rel_path = rebase_path("${shim_root_path}", rebase_path("//")) - - config(config_name) { - include_dirs = [ shim_headers_path ] -@@ -16,7 +18,7 @@ template("shim_headers") { - args = [ - "--generate", - "--headers-root", -- rebase_path(invoker.root_path), -+ "${shim_root_path}", - "--output-directory", - rebase_path(shim_headers_path), - ] -@@ -27,9 +29,10 @@ template("shim_headers") { - ] - } - args += invoker.headers -- -- outputs = process_file_template(invoker.headers, -- "${shim_headers_path}/{{source_file_part}}") -+ outputs = [] -+ foreach(shim_header, invoker.headers) { -+ outputs += [ "${shim_headers_path}/${shim_rel_path}/" + shim_header ] -+ } - } - - group(target_name) { --- -2.26.2 - diff --git a/www-client/ungoogled-chromium/files/chromium-system-jsoncpp-r2.patch b/www-client/ungoogled-chromium/files/chromium-system-jsoncpp-r2.patch deleted file mode 100644 index d21a43f..0000000 --- a/www-client/ungoogled-chromium/files/chromium-system-jsoncpp-r2.patch +++ /dev/null @@ -1,56 +0,0 @@ ---- a/third_party/jsoncpp/BUILD.gn -+++ b/third_party/jsoncpp/BUILD.gn -@@ -3,49 +3,15 @@ - # found in the LICENSE file. - - import("//testing/libfuzzer/fuzzer_test.gni") -+import("//build/config/linux/pkg_config.gni") - --config("jsoncpp_config") { -- include_dirs = [ "source/include" ] -- -- # TODO(crbug.com/983223): Update JsonCpp BUILD.gn to remove deprecated -- # declaration flag. -- # This temporary flag allowing clients to update to the new version, and then -- # update to the new StreamWriter and CharReader classes. -- if (!is_win || is_clang) { -- cflags_cc = [ "-Wno-deprecated-declarations" ] -- } -+pkg_config("jsoncpp_config") { -+ packages = [ "jsoncpp" ] - } - --source_set("jsoncpp") { -- sources = [ -- "source/include/json/allocator.h", -- "source/include/json/assertions.h", -- "source/include/json/config.h", -- "source/include/json/forwards.h", -- "source/include/json/json.h", -- "source/include/json/json_features.h", -- "source/include/json/reader.h", -- "source/include/json/value.h", -- "source/include/json/version.h", -- "source/include/json/writer.h", -- "source/src/lib_json/json_reader.cpp", -- "source/src/lib_json/json_tool.h", -- "source/src/lib_json/json_value.cpp", -- "source/src/lib_json/json_writer.cpp", -- ] -- -+group("jsoncpp") { - public_configs = [ ":jsoncpp_config" ] - -- defines = [ -- "JSON_USE_EXCEPTION=0", -- "JSON_USE_NULLREF=0", -- ] -- -- include_dirs = [ "source/src/lib_json" ] -- -- if (!is_win || is_clang) { -- cflags_cc = [ "-Wno-implicit-fallthrough" ] -- } - } - - if (build_with_chromium) { diff --git a/www-client/ungoogled-chromium/files/chromium-system-openjpeg-r2.patch b/www-client/ungoogled-chromium/files/chromium-system-openjpeg-r2.patch deleted file mode 100644 index ab8e027..0000000 --- a/www-client/ungoogled-chromium/files/chromium-system-openjpeg-r2.patch +++ /dev/null @@ -1,26 +0,0 @@ -description: build using system openjpeg -author: Michael Gilbert - ---- a/third_party/pdfium/core/fpdfapi/render/BUILD.gn -+++ b/third_party/pdfium/core/fpdfapi/render/BUILD.gn -@@ -43,6 +43,7 @@ jumbo_source_set("render") { - ] - configs += [ "../../../:pdfium_core_config" ] - deps = [ -+ "../../../third_party:libopenjpeg2", - "../../../constants", - "../../fxcodec", - "../../fxcrt", ---- a/third_party/pdfium/core/fxcodec/jpx/cjpx_decoder.h -+++ b/third_party/pdfium/core/fxcodec/jpx/cjpx_decoder.h -@@ -13,8 +13,8 @@ - #include "core/fxcrt/unowned_ptr.h" - #include "third_party/base/span.h" - --#if defined(USE_SYSTEM_LIBOPENJPEG2) --#include -+#if 1 -+#include - #else - #include "third_party/libopenjpeg20/openjpeg.h" - #endif diff --git a/www-client/ungoogled-chromium/files/chromium-ucf-dict-utility.patch b/www-client/ungoogled-chromium/files/chromium-ucf-dict-utility.patch deleted file mode 100644 index 4c8abf3..0000000 --- a/www-client/ungoogled-chromium/files/chromium-ucf-dict-utility.patch +++ /dev/null @@ -1,111 +0,0 @@ -Taken from -https://github.com/qvint/ungoogled-chromium-fedora/commit/a68fdd679566da5134d916776f14e00c8e6a8042 - ---- a/chrome/tools/convert_dict/convert_dict.cc -+++ b/chrome/tools/convert_dict/convert_dict.cc -@@ -24,6 +24,7 @@ - #include "build/build_config.h" - #include "chrome/tools/convert_dict/aff_reader.h" - #include "chrome/tools/convert_dict/dic_reader.h" -+#include "components/spellcheck/common/spellcheck_common.h" - #include "third_party/hunspell/google/bdict_reader.h" - #include "third_party/hunspell/google/bdict_writer.h" - -@@ -76,13 +77,32 @@ bool VerifyWords(const convert_dict::Dic - } - - int PrintHelp() { -- printf("Usage: convert_dict \n\n"); -- printf("Example:\n"); -- printf(" convert_dict en-US\nwill read en-US.dic, en-US.dic_delta, and " -- "en-US.aff from the current directory and generate en-US.bdic\n\n"); -+ printf( -+ "Usage:\n" -+ " dict-utility list\n" -+ " dict-utility convert \n"); - return 1; - } - -+int PrintList() { -+ base::FilePath root("/"); -+ std::vector languages = spellcheck::SpellCheckLanguages(); -+ -+ for (auto &language : languages) { -+ std::string language_region = -+ spellcheck::GetSpellCheckLanguageRegion(language); -+ base::FilePath language_bdic_path = -+ spellcheck::GetVersionedFileName(language, root).BaseName(); -+ -+ printf("%s\t%s\t%s\n", -+ language.c_str(), -+ language_region.c_str(), -+ language_bdic_path.value().c_str()); -+ } -+ -+ return 0; -+} -+ - } // namespace - - #if defined(OS_WIN) -@@ -91,16 +111,15 @@ int wmain(int argc, wchar_t* argv[]) { - int main(int argc, char* argv[]) { - #endif - base::EnableTerminationOnHeapCorruption(); -- if (argc != 2) -+ if (argc == 2 && strcmp(argv[1], "list") == 0) -+ return PrintList(); -+ if (argc != 5 || strcmp(argv[1], "convert") != 0) - return PrintHelp(); - - base::AtExitManager exit_manager; - base::i18n::InitializeICU(); - -- base::FilePath file_base = base::FilePath(argv[1]); -- -- base::FilePath aff_path = -- file_base.ReplaceExtension(FILE_PATH_LITERAL(".aff")); -+ base::FilePath aff_path = base::FilePath(argv[2]); - printf("Reading %" PRFilePath " ...\n", aff_path.value().c_str()); - convert_dict::AffReader aff_reader(aff_path); - if (!aff_reader.Read()) { -@@ -108,8 +127,7 @@ int main(int argc, char* argv[]) { - return 1; - } - -- base::FilePath dic_path = -- file_base.ReplaceExtension(FILE_PATH_LITERAL(".dic")); -+ base::FilePath dic_path = base::FilePath(argv[3]); - printf("Reading %" PRFilePath " ...\n", dic_path.value().c_str()); - // DicReader will also read the .dic_delta file. - convert_dict::DicReader dic_reader(dic_path); -@@ -135,8 +153,7 @@ int main(int argc, char* argv[]) { - return 1; - } - -- base::FilePath out_path = -- file_base.ReplaceExtension(FILE_PATH_LITERAL(".bdic")); -+ base::FilePath out_path = base::FilePath(argv[4]); - printf("Writing %" PRFilePath " ...\n", out_path.value().c_str()); - FILE* out_file = base::OpenFile(out_path, "wb"); - if (!out_file) { ---- a/chrome/tools/convert_dict/BUILD.gn -+++ b/chrome/tools/convert_dict/BUILD.gn -@@ -34,6 +34,7 @@ executable("convert_dict") { - "//base", - "//base:i18n", - "//build/win:default_exe_manifest", -+ "//components/spellcheck/common", - "//third_party/hunspell", - ] - } ---- a/components/spellcheck/common/spellcheck_common.h -+++ b/components/spellcheck/common/spellcheck_common.h -@@ -30,6 +30,8 @@ static const size_t kMaxSyncableDictiona - // chrome/browser/resources/settings/languages_page/edit_dictionary_page.js - static const size_t kMaxCustomDictionaryWordBytes = 99; - -+std::string GetSpellCheckLanguageRegion(base::StringPiece input_language); -+ - base::FilePath GetVersionedFileName(base::StringPiece input_language, - const base::FilePath& dict_dir); diff --git a/www-client/ungoogled-chromium/files/chromium-use-oauth2-client-switches-as-default.patch b/www-client/ungoogled-chromium/files/chromium-use-oauth2-client-switches-as-default.patch deleted file mode 100644 index 9d9c57b..0000000 --- a/www-client/ungoogled-chromium/files/chromium-use-oauth2-client-switches-as-default.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -upr chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc chromium-89.0.4389.58/google_apis/google_api_keys.cc ---- chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc 2021-02-24 22:37:18.494007649 +0000 -+++ chromium-89.0.4389.58/google_apis/google_api_keys.cc 2021-02-24 22:35:00.865777600 +0000 -@@ -154,11 +154,11 @@ class APIKeyCache { - - std::string default_client_id = CalculateKeyValue( - GOOGLE_DEFAULT_CLIENT_ID, -- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), nullptr, -+ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), ::switches::kOAuth2ClientID, - std::string(), environment.get(), command_line, gaia_config); - std::string default_client_secret = CalculateKeyValue( - GOOGLE_DEFAULT_CLIENT_SECRET, -- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), nullptr, -+ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), ::switches::kOAuth2ClientSecret, - std::string(), environment.get(), command_line, gaia_config); - - // We currently only allow overriding the baked-in values for the diff --git a/www-client/ungoogled-chromium/files/chromium.default b/www-client/ungoogled-chromium/files/chromium.default deleted file mode 100644 index 32a1d58..0000000 --- a/www-client/ungoogled-chromium/files/chromium.default +++ /dev/null @@ -1,10 +0,0 @@ -# Default settings for ungoogled-chromium. This file is sourced by /bin/bash -# from the chromium launcher. - -# Uncomment this to spoof timezone to UTC -#export TZ='Etc/UTC' - -# Options to pass to ungoogled-chromium. -# See https://github.com/Eloston/ungoogled-chromium#features for additional -# command-line switches. -#CHROMIUM_FLAGS="" diff --git a/www-client/ungoogled-chromium/files/sql-VirtualCursor-standard-layout.patch b/www-client/ungoogled-chromium/files/sql-VirtualCursor-standard-layout.patch deleted file mode 100644 index a4864ba..0000000 --- a/www-client/ungoogled-chromium/files/sql-VirtualCursor-standard-layout.patch +++ /dev/null @@ -1,231 +0,0 @@ -From 80368f8ba7a8bab13440463a254888311efe3986 Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann -Date: Tue, 04 May 2021 15:00:19 +0000 -Subject: [PATCH] sql: make VirtualCursor standard layout type - -sql::recover::VirtualCursor needs to be a standard layout type, but -has members of type std::unique_ptr. However, std::unique_ptr is not -guaranteed to be standard layout. Compiling with clang combined with -gcc-11 libstdc++ fails because of this. Replace std::unique_ptr with -raw pointers. - -Bug: 1189788 -Change-Id: Ia6dc388cc5ef1c0f2afc75f8ca45b9f12687ca9c ---- - -diff --git a/sql/recover_module/btree.cc b/sql/recover_module/btree.cc -index 9ecaafe..839318a 100644 ---- a/sql/recover_module/btree.cc -+++ b/sql/recover_module/btree.cc -@@ -135,16 +135,25 @@ - "Move the destructor to the .cc file if it's non-trival"); - #endif // !DCHECK_IS_ON() - --LeafPageDecoder::LeafPageDecoder(DatabasePageReader* db_reader) noexcept -- : page_id_(db_reader->page_id()), -- db_reader_(db_reader), -- cell_count_(ComputeCellCount(db_reader)), -- next_read_index_(0), -- last_record_size_(0) { -+void LeafPageDecoder::Initialize(DatabasePageReader* db_reader) { -+ DCHECK(db_reader); - DCHECK(IsOnValidPage(db_reader)); -+ page_id_ = db_reader->page_id(); -+ db_reader_ = db_reader; -+ cell_count_ = ComputeCellCount(db_reader); -+ next_read_index_ = 0; -+ last_record_size_ = 0; - DCHECK(DatabasePageReader::IsValidPageId(page_id_)); - } - -+void LeafPageDecoder::Reset() { -+ db_reader_ = nullptr; -+ page_id_ = 0; -+ cell_count_ = 0; -+ next_read_index_ = 0; -+ last_record_size_ = 0; -+} -+ - bool LeafPageDecoder::TryAdvance() { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - DCHECK(CanAdvance()); -diff --git a/sql/recover_module/btree.h b/sql/recover_module/btree.h -index d76d076..33114b0 100644 ---- a/sql/recover_module/btree.h -+++ b/sql/recover_module/btree.h -@@ -102,7 +102,7 @@ - // - // |db_reader| must have been used to read an inner page of a table B-tree. - // |db_reader| must outlive this instance. -- explicit LeafPageDecoder(DatabasePageReader* db_reader) noexcept; -+ explicit LeafPageDecoder() noexcept = default; - ~LeafPageDecoder() noexcept = default; - - LeafPageDecoder(const LeafPageDecoder&) = delete; -@@ -150,6 +150,15 @@ - // read as long as CanAdvance() returns true. - bool TryAdvance(); - -+ // Initialize with DatabasePageReader -+ void Initialize(DatabasePageReader* db_reader); -+ -+ // Reset internal DatabasePageReader -+ void Reset(); -+ -+ // True if DatabasePageReader is valid -+ bool IsValid() { return (db_reader_ != nullptr); } -+ - // True if the given reader may point to an inner page in a table B-tree. - // - // The last ReadPage() call on |db_reader| must have succeeded. -@@ -163,14 +172,14 @@ - static int ComputeCellCount(DatabasePageReader* db_reader); - - // The number of the B-tree page this reader is reading. -- const int64_t page_id_; -+ int64_t page_id_; - // Used to read the tree page. - // - // Raw pointer usage is acceptable because this instance's owner is expected - // to ensure that the DatabasePageReader outlives this. -- DatabasePageReader* const db_reader_; -+ DatabasePageReader* db_reader_; - // Caches the ComputeCellCount() value for this reader's page. -- const int cell_count_ = ComputeCellCount(db_reader_); -+ int cell_count_; - - // The reader's cursor state. - // -diff --git a/sql/recover_module/cursor.cc b/sql/recover_module/cursor.cc -index 0029ff9..42548bc 100644 ---- a/sql/recover_module/cursor.cc -+++ b/sql/recover_module/cursor.cc -@@ -26,7 +26,7 @@ - int VirtualCursor::First() { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - inner_decoders_.clear(); -- leaf_decoder_ = nullptr; -+ leaf_decoder_.Reset(); - - AppendPageDecoder(table_->root_page_id()); - return Next(); -@@ -36,18 +36,18 @@ - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - record_reader_.Reset(); - -- while (!inner_decoders_.empty() || leaf_decoder_.get()) { -- if (leaf_decoder_.get()) { -- if (!leaf_decoder_->CanAdvance()) { -+ while (!inner_decoders_.empty() || leaf_decoder_.IsValid()) { -+ if (leaf_decoder_.IsValid()) { -+ if (!leaf_decoder_.CanAdvance()) { - // The leaf has been exhausted. Remove it from the DFS stack. -- leaf_decoder_ = nullptr; -+ leaf_decoder_.Reset(); - continue; - } -- if (!leaf_decoder_->TryAdvance()) -+ if (!leaf_decoder_.TryAdvance()) - continue; - -- if (!payload_reader_.Initialize(leaf_decoder_->last_record_size(), -- leaf_decoder_->last_record_offset())) { -+ if (!payload_reader_.Initialize(leaf_decoder_.last_record_size(), -+ leaf_decoder_.last_record_offset())) { - continue; - } - if (!record_reader_.Initialize()) -@@ -99,13 +99,13 @@ - int64_t VirtualCursor::RowId() { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - DCHECK(record_reader_.IsInitialized()); -- DCHECK(leaf_decoder_.get()); -- return leaf_decoder_->last_record_rowid(); -+ DCHECK(leaf_decoder_.IsValid()); -+ return leaf_decoder_.last_record_rowid(); - } - - void VirtualCursor::AppendPageDecoder(int page_id) { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -- DCHECK(leaf_decoder_.get() == nullptr) -+ DCHECK(!leaf_decoder_.IsValid()) - << __func__ - << " must only be called when the current path has no leaf decoder"; - -@@ -113,7 +113,7 @@ - return; - - if (LeafPageDecoder::IsOnValidPage(&db_reader_)) { -- leaf_decoder_ = std::make_unique(&db_reader_); -+ leaf_decoder_.Initialize(&db_reader_); - return; - } - -diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h -index afcd690..b15c31d 100644 ---- a/sql/recover_module/cursor.h -+++ b/sql/recover_module/cursor.h -@@ -129,7 +129,7 @@ - std::vector> inner_decoders_; - - // Decodes the leaf page containing records. -- std::unique_ptr leaf_decoder_; -+ LeafPageDecoder leaf_decoder_; - - SEQUENCE_CHECKER(sequence_checker_); - }; -diff --git a/sql/recover_module/pager.cc b/sql/recover_module/pager.cc -index 58e75de..5fe9620 100644 ---- a/sql/recover_module/pager.cc -+++ b/sql/recover_module/pager.cc -@@ -23,8 +23,7 @@ - "ints are not appropriate for representing page IDs"); - - DatabasePageReader::DatabasePageReader(VirtualTable* table) -- : page_data_(std::make_unique(table->page_size())), -- table_(table) { -+ : page_data_(), table_(table) { - DCHECK(table != nullptr); - DCHECK(IsValidPageSize(table->page_size())); - } -@@ -57,8 +56,8 @@ - std::numeric_limits::max(), - "The |read_offset| computation above may overflow"); - -- int sqlite_status = -- RawRead(sqlite_file, read_size, read_offset, page_data_.get()); -+ int sqlite_status = RawRead(sqlite_file, read_size, read_offset, -+ const_cast(page_data_.data())); - - // |page_id_| needs to be set to kInvalidPageId if the read failed. - // Otherwise, future ReadPage() calls with the previous |page_id_| value -diff --git a/sql/recover_module/pager.h b/sql/recover_module/pager.h -index 0e388ddc..99314e3 100644 ---- a/sql/recover_module/pager.h -+++ b/sql/recover_module/pager.h -@@ -5,6 +5,7 @@ - #ifndef SQL_RECOVER_MODULE_PAGER_H_ - #define SQL_RECOVER_MODULE_PAGER_H_ - -+#include - #include - #include - -@@ -70,7 +71,7 @@ - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - DCHECK_NE(page_id_, kInvalidPageId) - << "Successful ReadPage() required before accessing pager state"; -- return page_data_.get(); -+ return page_data_.data(); - } - - // The number of bytes in the page read by the last ReadPage() call. -@@ -137,7 +138,7 @@ - int page_id_ = kInvalidPageId; - // Stores the bytes of the last page successfully read by ReadPage(). - // The content is undefined if the last call to ReadPage() did not succeed. -- const std::unique_ptr page_data_; -+ const std::array page_data_; - // Raw pointer usage is acceptable because this instance's owner is expected - // to ensure that the VirtualTable outlives this. - VirtualTable* const table_; diff --git a/www-client/ungoogled-chromium/files/update-dicts.sh b/www-client/ungoogled-chromium/files/update-dicts.sh deleted file mode 100644 index c5d600e..0000000 --- a/www-client/ungoogled-chromium/files/update-dicts.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env bash - -# Taken from -# https://github.com/qvint/ungoogled-chromium-fedora/commit/a68fdd679566da5134d916776f14e00c8e6a8042 - -self="$(readlink -f "${0}")" -self_dir="$(dirname "${self}")" -dict_utility="${self_dir}/convert_dict" - -# Defaults. -hunspell_dicts_dir="/usr/share/myspell" -user_data_dir="${HOME}/.config/chromium" - -# Parse command-line arguments. -while [[ $# -gt 0 ]]; do - arg_name="${1}" - - case "${arg_name}" in - "--hunspell-dicts-dir") - hunspell_dicts_dir="${2}" - shift; shift - ;; - "--user-data-dir") - user_data_dir="${2}" - shift; shift - ;; - *) - echo -n "Usage: ungoogled-chromium-update-dicts " - echo "[--hunspell-dicts-dir DIR] [--user-data-dir DIR]" - exit 1 - esac -done - -# List all chromium language entries. -chromium_language_entries="$("${dict_utility}" list)" - -# Iterate through chromium language entries and make *.bdic files. -chromium_dicts_dir="${user_data_dir}/Dictionaries" -mkdir -p "${chromium_dicts_dir}" -while read -r chromium_language_entry; do - while read \ - chromium_language \ - chromium_language_region \ - chromium_bdic_basename; do - - hunspell_language_region="${chromium_language_region//-/_}" - aff_path="${hunspell_dicts_dir}/${hunspell_language_region}.aff" - dic_path="${hunspell_dicts_dir}/${hunspell_language_region}.dic" - bdic_path="${chromium_dicts_dir}/${chromium_bdic_basename}" - - if \ - [[ -f "${aff_path}" ]] && \ - [[ -f "${dic_path}" ]] && \ - [[ ! -f "${bdic_path}" ]]; then - "${dict_utility}" convert "${aff_path}" "${dic_path}" "${bdic_path}" - fi - done <<< "${chromium_language_entry}" -done <<< "${chromium_language_entries}" \ No newline at end of file diff --git a/www-client/ungoogled-chromium/files/vdpau-support-r4.patch b/www-client/ungoogled-chromium/files/vdpau-support-r4.patch deleted file mode 100644 index 2469a85..0000000 --- a/www-client/ungoogled-chromium/files/vdpau-support-r4.patch +++ /dev/null @@ -1,56 +0,0 @@ ---- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc -+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc -@@ -705,7 +705,7 @@ - // implementation we get from |vaapi_picture_factory_| requires the video - // processing pipeline for downloading the decoded frame from the internal - // surface, we need to create a |vpp_vaapi_wrapper_|. -- if (requires_vpp && buffer_allocation_mode_ != BufferAllocationMode::kNone) { -+ if (requires_vpp && buffer_allocation_mode_ != BufferAllocationMode::kWrapVdpau) { - if (!vpp_vaapi_wrapper_) { - vpp_vaapi_wrapper_ = VaapiWrapper::Create( - VaapiWrapper::kVideoProcess, VAProfileNone, -@@ -1209,6 +1209,11 @@ - - VaapiVideoDecodeAccelerator::BufferAllocationMode - VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() { -+ // NVIDIA blobs use VDPAU -+ if (VaapiWrapper::GetImplementationType() == VAImplementation::kNVIDIAVDPAU) { -+ LOG(INFO) << "VA-API driver on VDPAU backend"; -+ return BufferAllocationMode::kWrapVdpau; -+ } - #if BUILDFLAG(USE_VAAPI_X11) - // The IMPORT mode is used for Android on Chrome OS, so this doesn't apply - // here. - ---- a/media/gpu/vaapi/vaapi_video_decode_accelerator.h -+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.h -@@ -204,6 +204,7 @@ class MEDIA_GPU_EXPORT VaapiVideoDecodeAccelerator - // Using |client_|s provided PictureBuffers and as many internally - // allocated. - kNormal, -+ kWrapVdpau, - }; - - // Decides the concrete buffer allocation mode, depending on the hardware ---- a/media/gpu/vaapi/vaapi_wrapper.cc -+++ b/media/gpu/vaapi/vaapi_wrapper.cc -@@ -131,6 +131,9 @@ media::VAImplementation VendorStringToImplementationType( - } else if (base::StartsWith(va_vendor_string, "Intel iHD driver", - base::CompareCase::SENSITIVE)) { - return media::VAImplementation::kIntelIHD; -+ } else if (base::StartsWith(va_vendor_string, "Splitted-Desktop Systems VDPAU", -+ base::CompareCase::SENSITIVE)) { -+ return media::VAImplementation::kNVIDIAVDPAU; - } - return media::VAImplementation::kOther; - } ---- a/media/gpu/vaapi/vaapi_wrapper.h -+++ b/media/gpu/vaapi/vaapi_wrapper.h -@@ -79,6 +79,7 @@ enum class VAImplementation { - kIntelIHD, - kOther, - kInvalid, -+ kNVIDIAVDPAU, - }; - - // This class handles VA-API calls and ensures proper locking of VA-API calls diff --git a/www-client/ungoogled-chromium/metadata.xml b/www-client/ungoogled-chromium/metadata.xml deleted file mode 100644 index bc84597..0000000 --- a/www-client/ungoogled-chromium/metadata.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - PF4Public@users.noreply.github.com - - - Eloston/ungoogled-chromium - https://github.com/Eloston/ungoogled-chromium/issues - https://ungoogled-software.github.io/ungoogled-chromium-wiki/ - - - ungoogled-chromium is Google Chromium, sans integration with Google. - It also features some tweaks to enhance privacy, control, and - transparency (almost all of which require manual activation or enabling). - - ungoogled-chromium retains the default Chromium experience as closely as - possible. Unlike other Chromium forks that have their own visions of a - web browser, ungoogled-chromium is essentially a drop-in replacement for - Chromium. - - - Build with CFI (Control Flow Integrity) enabled. It requires "-stdlib=libc++", see #40 for more details. - Use Clang compiler instead of GCC - Patch and build the convert_dict utility. The script will be installed into /usr/lib64/chromium-browser/update-dicts.sh. More info here: https://github.com/Eloston/ungoogled-chromium/issues/188#issuecomment-444752907 - Enable DCHECK feature with severity configurable at runtime. Mostly intended for debugging and development, NOT RECOMMENDED for general use. - Build chromedriver - Enable support for Google Hangouts features such as screen sharing - Build Ozone only with headless backend, NOT RECOMMENDED for general uses - Enable JavaScript type-checking for Chrome's web technology-based UI. Requires Java. - Enable Official build instead of Developer build. - Whether to enable ThinLTO optimizations. Turning ThinLTO optimizations on can substantially increase link time and binary size, but they generally also make binaries a fair bit faster. - Optimize parts of Chromium's UI written with web technologies (HTML/CSS/JS) for runtime performance purposes. This does more work at compile time for speed benefits at runtime. - Use PartitionAlloc explicitly - Enable PGO. Requires clang and bundled binary profile data in sources tree. - Enable proprietary codecs like H.264, MP3 - Enable support for remote desktop and screen cast using media-video/pipewire - Build the SUID sandbox, which is only needed on CONFIG_USER_NS=n kernels - Use the system media-video/ffmpeg instead of the bundled one - Use the system media-libs/harfbuzz instead of the bundled one - Use the system dev-libs/icu instead of the bundled one - Use the system dev-libs/jsoncpp instead of the bundled one - Use the system dev-libs/libevent instead of the bundled one - Use the system media-libs/libvpx instead of the bundled one - Use the system media-libs/openh264 instead of the bundled one. If disabled, it will restrict USE=bindist. - Use the system-wide media-libs/openjpeg instead of the bundled one. OpenJPEG use are exclusively for Chromium's PDF viewer. - Use the system-wide dev-libs/re2 instead of the bundled one - Use tcmalloc explicitly - Build with ThinLTO support. LTO (Link Time Optimization) achieves better runtime performance through whole-program analysis and cross-module optimization (highly recommended). - Unsupported closed-source DRM capability (required by Netflix VOD) - - diff --git a/www-client/ungoogled-chromium/ungoogled-chromium-96.0.4664.110-r2.ebuild b/www-client/ungoogled-chromium/ungoogled-chromium-96.0.4664.110-r2.ebuild deleted file mode 100644 index 7adc2bd..0000000 --- a/www-client/ungoogled-chromium/ungoogled-chromium-96.0.4664.110-r2.ebuild +++ /dev/null @@ -1,1183 +0,0 @@ -# Copyright 2009-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 -PYTHON_COMPAT=( python3_{8..10} ) -PYTHON_REQ_USE="xml" - -CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he - hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr - sv sw ta te th tr uk vi zh-CN zh-TW" - -inherit check-reqs chromium-2 desktop flag-o-matic ninja-utils pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils - -UGC_PVR="${PVR/r}" -UGC_PF="${PN}-${UGC_PVR}" -UGC_URL="https://github.com/Eloston/${PN}/archive/" -#UGC_COMMIT_ID="14ddda72b1b44f743153f1d394759e149c1b1f0d" - -# Use following environment variables to customise the build -# EXTRA_GN — pass extra options to gn -# NINJAOPTS="-k0 -j8" useful to populate ccache even if ebuild is still failing -# UGC_SKIP_PATCHES — space-separated list of patches to skip -# UGC_KEEP_BINARIES — space-separated list of binaries to keep -# UGC_SKIP_SUBSTITUTION — space-separated list of files to skip domain substitution - -if [ -z "$UGC_COMMIT_ID" ] -then - UGC_URL="${UGC_URL}${UGC_PVR}.tar.gz -> ${UGC_PF}.tar.gz" - UGC_WD="${WORKDIR}/${UGC_PF}" -else - UGC_URL="${UGC_URL}${UGC_COMMIT_ID}.tar.gz -> ${PN}-${UGC_COMMIT_ID}.tar.gz" - UGC_WD="${WORKDIR}/ungoogled-chromium-${UGC_COMMIT_ID}" -fi - -DESCRIPTION="Modifications to Chromium for removing Google integration and enhancing privacy" -HOMEPAGE="https://github.com/Eloston/ungoogled-chromium" -PATCHSET="4" -PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}" -SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${PV}.tar.xz - https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz - ${UGC_URL}" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="amd64 ~arm64 ~x86" -IUSE="cfi +clang convert-dict cups custom-cflags debug enable-driver hangouts headless js-type-check kerberos +official optimize-thinlto optimize-webui +partition pgo +proprietary-codecs pulseaudio screencast selinux suid +system-ffmpeg +system-harfbuzz +system-icu +system-jsoncpp +system-libevent system-libvpx +system-openh264 system-openjpeg +system-re2 tcmalloc thinlto vaapi vdpau wayland widevine" -RESTRICT=" - !system-ffmpeg? ( proprietary-codecs? ( bindist ) ) - !system-openh264? ( bindist ) -" -REQUIRED_USE=" - thinlto? ( clang ) - optimize-thinlto? ( thinlto ) - cfi? ( thinlto ) - pgo? ( clang ) - x86? ( !thinlto !widevine ) - screencast? ( wayland ) -" - -COMMON_X_DEPEND=" - media-libs/mesa:=[gbm(+)] - x11-libs/libX11:= - x11-libs/libXcomposite:= - x11-libs/libXcursor:= - x11-libs/libXdamage:= - x11-libs/libXext:= - x11-libs/libXfixes:= - >=x11-libs/libXi-1.6.0:= - x11-libs/libXrandr:= - x11-libs/libXrender:= - x11-libs/libXtst:= - x11-libs/libxcb:= - x11-libs/libxshmfence:= - vaapi? ( >=x11-libs/libva-2.7:=[X,drm] ) -" - -COMMON_DEPEND=" - app-arch/bzip2:= - cups? ( >=net-print/cups-1.3.11:= ) - dev-libs/expat:= - dev-libs/glib:2 - >=dev-libs/libxml2-2.9.4-r3:=[icu] - dev-libs/nspr:= - >=dev-libs/nss-3.26:= - >=media-libs/alsa-lib-1.0.19:= - media-libs/fontconfig:= - >=media-libs/freetype-2.11.0-r1:= - system-harfbuzz? ( >=media-libs/harfbuzz-2.9.0:0=[icu(-)] ) - media-libs/libjpeg-turbo:= - media-libs/libpng:= - system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc] ) - pulseaudio? ( - || ( - media-sound/pulseaudio - >=media-sound/apulse-0.1.9 - ) - ) - system-ffmpeg? ( - >=media-video/ffmpeg-4.3:= - || ( - media-video/ffmpeg[-samba] - >=net-fs/samba-4.5.10-r1[-debug(-)] - ) - >=media-libs/opus-1.3.1:= - ) - net-misc/curl[ssl] - sys-apps/dbus:= - sys-apps/pciutils:= - virtual/udev - x11-libs/cairo:= - x11-libs/gdk-pixbuf:2 - x11-libs/libxkbcommon:= - x11-libs/pango:= - media-libs/flac:= - >=media-libs/libwebp-0.4.0:= - sys-libs/zlib:=[minizip] - kerberos? ( virtual/krb5 ) - !headless? ( - ${COMMON_X_DEPEND} - >=app-accessibility/at-spi2-atk-2.26:2 - >=app-accessibility/at-spi2-core-2.26:2 - >=dev-libs/atk-2.26 - x11-libs/gtk+:3[X] - wayland? ( - dev-libs/wayland:= - screencast? ( media-video/pipewire:0/0.4 ) - x11-libs/gtk+:3[wayland,X] - x11-libs/libdrm:= - ) - ) - media-libs/lcms:= - system-jsoncpp? ( dev-libs/jsoncpp ) - system-libevent? ( dev-libs/libevent ) - system-openjpeg? ( media-libs/openjpeg:2= ) - app-arch/snappy:= - dev-libs/libxslt:= - system-re2? ( dev-libs/re2:= ) - >=media-libs/openh264-1.6.0:= - system-icu? ( >=dev-libs/icu-67.1:= ) -" -RDEPEND="${COMMON_DEPEND} - x11-misc/xdg-utils - virtual/opengl - virtual/ttf-fonts - selinux? ( sec-policy/selinux-chromium ) - !www-client/chromium - !www-client/chromium-bin - !www-client/ungoogled-chromium-bin -" -DEPEND="${COMMON_DEPEND} -" -# dev-vcs/git - https://bugs.gentoo.org/593476 -BDEPEND=" - ${PYTHON_DEPS} - $(python_gen_any_dep ' - dev-python/setuptools[${PYTHON_USEDEP}] - ') - >=app-arch/gzip-1.7 - dev-lang/perl - >=dev-util/gn-0.1807 - dev-vcs/git - >=dev-util/gperf-3.0.3 - >=dev-util/ninja-1.7.2 - >=net-libs/nodejs-7.6.0[inspector] - >=sys-devel/bison-2.4.3 - sys-devel/flex - virtual/pkgconfig - js-type-check? ( virtual/jre ) - clang? ( sys-devel/clang sys-devel/lld ) - cfi? ( sys-devel/clang-runtime[sanitize] ) -" - -if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then - EBUILD_DEATH_HOOKS+=" chromium_pkg_die"; -fi - -DISABLE_AUTOFORMATTING="yes" -DOC_CONTENTS=" -Some web pages may require additional fonts to display properly. -Try installing some of the following packages if some characters -are not displayed properly: -- media-fonts/arphicfonts -- media-fonts/droid -- media-fonts/ipamonafont -- media-fonts/noto -- media-fonts/ja-ipafonts -- media-fonts/takao-fonts -- media-fonts/wqy-microhei -- media-fonts/wqy-zenhei - -To fix broken icons on the Downloads page, you should install an icon -theme that covers the appropriate MIME types, and configure this as your -GTK+ icon theme. - -For native file dialogs in KDE, install kde-apps/kdialog. - -To make password storage work with your desktop environment you may -have install one of the supported credentials management applications: -- app-crypt/libsecret (GNOME) -- kde-frameworks/kwallet (KDE) -If you have one of above packages installed, but don't want to use -them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS -in /etc/chromium/default. -" - -S="${WORKDIR}/chromium-${PV}" - -python_check_deps() { - has_version -b "dev-python/setuptools[${PYTHON_USEDEP}]" -} - -pre_build_checks() { - if [[ ${MERGE_TYPE} != binary ]]; then - local -x CPP="$(tc-getCXX) -E" - if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then - [[ -z "${NODIE}" ]] && die "At least gcc 9.2 is required" - fi - if use clang; then - CPP="${CHOST}-clang++ -E" - if ! ver_test "$(clang-major-version)" -ge 12; then - [[ -z "${NODIE}" ]] && die "At least clang 12 is required" - fi - fi - fi - - # Check build requirements, bug #541816 and bug #471810 . - CHECKREQS_MEMORY="4G" - CHECKREQS_DISK_BUILD="9G" - if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then - CHECKREQS_DISK_BUILD="16G" - fi - check-reqs_pkg_setup -} - -pkg_pretend() { - if has_version "sys-libs/libcxx"; then - ewarn - ewarn "You have sys-libs/libcxx, please be aware that system-*" - ewarn "and some other c++ dependencies need to be compiled" - ewarn "with the same library as ungoogled-chromium itself" - ewarn "dev-libs/jsoncpp is most problematic, see #58 #49 #119 for details" - ewarn - fi - if use cfi; then - ewarn - ewarn "Building with cfi is only possible if building with -stdlib=libc++" - ewarn "Make sure all dependencies are also built this way, see #40" - ewarn - fi - if use system-libvpx && use vaapi; then - ewarn - ewarn "New vaapi code depends heavily on libvpx-1.9, see #43" - ewarn "Consider disabling system-libvpx USE flag if using vaapi" - ewarn "A patch to make vaapi compatible with system libvpx-1.9 is welcome" - ewarn - [[ -z "${NODIE}" ]] && die "The build will fail!" - fi - pre_build_checks -} - -pkg_setup() { - pre_build_checks - - chromium_suid_sandbox_check_kernel_config - - # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams - if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then - ewarn "Proprietary nVidia driver does not work with Wayland. You can disable" - ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default." - fi -} - -src_prepare() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - if ! use custom-cflags; then #See #25 #92 - sed -i '/default_stack_frames/Q' "${WORKDIR}/patches/chromium-$(ver_cut 1)-compiler.patch" || die - fi - - local PATCHES=( - "${WORKDIR}/patches" - "${FILESDIR}/chromium-93-InkDropHost-crash.patch" - "${FILESDIR}/chromium-96-EnumTable-crash.patch" - "${FILESDIR}/chromium-96-freetype-unbundle.patch" - "${FILESDIR}/chromium-glibc-2.34.patch" - "${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch" - "${FILESDIR}/chromium-shim_headers.patch" - "${FILESDIR}/sql-VirtualCursor-standard-layout.patch" - ) - - default - - mkdir -p third_party/node/linux/node-linux-x64/bin || die - ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die - - # adjust python interpreter version - sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die - - use convert-dict && eapply "${FILESDIR}/chromium-ucf-dict-utility.patch" - - if use system-ffmpeg; then - eapply "${FILESDIR}/chromium-93-ffmpeg-4.4.patch" - eapply -R "${FILESDIR}/chromium-94-ffmpeg-roll.patch" - fi - - if use system-jsoncpp; then - eapply "${FILESDIR}/chromium-system-jsoncpp-r2.patch" - sed -i '/^#include "third_party\/jsoncpp.*$/{s//#include /;h};${x;/./{x;q0};x;q1}' components/mirroring/service/receiver_response.h || die - sed -i '/^.*json\/reader.h"$/{s//#include /;h};${x;/./{x;q0};x;q1}' components/mirroring/service/receiver_response.cc || die - sed -i '/^.*json\/writer.h"$/{s//#include /;h};${x;/./{x;q0};x;q1}' components/mirroring/service/receiver_response.cc || die - fi - - use system-openjpeg && eapply "${FILESDIR}/chromium-system-openjpeg-r2.patch" - - use vdpau && eapply "${FILESDIR}/vdpau-support-r4.patch" - - # From here we adapt ungoogled-chromium's patches to our needs - local ugc_pruning_list="${UGC_WD}/pruning.list" - local ugc_patch_series="${UGC_WD}/patches/series" - local ugc_substitution_list="${UGC_WD}/domain_substitution.list" - - local ugc_unneeded=( - # GN bootstrap - extra/debian/gn/parallel - ) - - local ugc_p ugc_dir - for p in "${ugc_unneeded[@]}"; do - einfo "Removing ${p}.patch" - sed -i "\!${p}.patch!d" "${ugc_patch_series}" || die - done - - if use js-type-check; then - ewarn "Keeping binary compiler.jar in source tree for js-type-check" - sed -i '\!third_party/closure_compiler/compiler/compiler.jar!d' "${ugc_pruning_list}" || die - fi - - if use pgo || [ ! -z "$UGC_COMMIT_ID" ]; then - ewarn "Keeping binary profile data in source tree for pgo" - sed -i '\!chrome/build/pgo_profiles/.*!d' "${ugc_pruning_list}" || die - fi - - if [ ! -z "${UGC_SKIP_PATCHES}" ]; then - for p in ${UGC_SKIP_PATCHES}; do - ewarn "Removing ${p}" - sed -i "\!${p}!d" "${ugc_patch_series}" || die - done - fi - - if [ ! -z "${UGC_KEEP_BINARIES}" ]; then - for p in ${UGC_KEEP_BINARIES}; do - ewarn "Keeping binary ${p}" - sed -i "\!${p}!d" "${ugc_pruning_list}" || die - done - fi - - if [ ! -z "${UGC_SKIP_SUBSTITUTION}" ]; then - for p in ${UGC_SKIP_SUBSTITUTION}; do - ewarn "No substitutions in ${p}" - sed -i "\!${p}!d" "${ugc_substitution_list}" || die - done - fi - - ebegin "Pruning binaries" - "${UGC_WD}/utils/prune_binaries.py" -q . "${UGC_WD}/pruning.list" - eend $? || die - - ebegin "Applying ungoogled-chromium patches" - "${UGC_WD}/utils/patches.py" -q apply . "${UGC_WD}/patches" - eend $? || die - - ebegin "Applying domain substitution" - "${UGC_WD}/utils/domain_substitution.py" -q apply -r "${UGC_WD}/domain_regex.list" -f "${UGC_WD}/domain_substitution.list" -c build/domsubcache.tar.gz . - eend $? || die - - local keeplibs=( - base/third_party/cityhash - base/third_party/double_conversion - base/third_party/dynamic_annotations - base/third_party/icu - base/third_party/nspr - base/third_party/superfasthash - base/third_party/symbolize - base/third_party/valgrind - base/third_party/xdg_mime - base/third_party/xdg_user_dirs - buildtools/third_party/libc++ - buildtools/third_party/libc++abi - chrome/third_party/mozilla_security_manager - courgette/third_party - net/third_party/mozilla_security_manager - net/third_party/nss - net/third_party/quic - net/third_party/uri_template - third_party/abseil-cpp - third_party/angle - third_party/angle/src/common/third_party/base - third_party/angle/src/common/third_party/smhasher - third_party/angle/src/common/third_party/xxhash - third_party/angle/src/third_party/libXNVCtrl - third_party/angle/src/third_party/trace_event - third_party/angle/src/third_party/volk - third_party/apple_apsl - third_party/axe-core - third_party/blink - third_party/boringssl - third_party/boringssl/src/third_party/fiat - third_party/breakpad - third_party/breakpad/breakpad/src/third_party/curl - third_party/brotli - third_party/catapult - third_party/catapult/common/py_vulcanize/third_party/rcssmin - third_party/catapult/common/py_vulcanize/third_party/rjsmin - third_party/catapult/third_party/beautifulsoup4-4.9.3 - third_party/catapult/third_party/html5lib-1.1 - third_party/catapult/third_party/polymer - third_party/catapult/third_party/six - third_party/catapult/tracing/third_party/d3 - third_party/catapult/tracing/third_party/gl-matrix - third_party/catapult/tracing/third_party/jpeg-js - third_party/catapult/tracing/third_party/jszip - third_party/catapult/tracing/third_party/mannwhitneyu - third_party/catapult/tracing/third_party/oboe - third_party/catapult/tracing/third_party/pako - third_party/ced - third_party/cld_3 - third_party/closure_compiler - third_party/crashpad - third_party/crashpad/crashpad/third_party/lss - third_party/crashpad/crashpad/third_party/zlib - third_party/crc32c - third_party/cros_system_api - third_party/dav1d - third_party/dawn - third_party/dawn/third_party/khronos - third_party/dawn/third_party/tint - third_party/depot_tools - third_party/devscripts - third_party/devtools-frontend - third_party/devtools-frontend/src/front_end/third_party/acorn - third_party/devtools-frontend/src/front_end/third_party/axe-core - third_party/devtools-frontend/src/front_end/third_party/chromium - third_party/devtools-frontend/src/front_end/third_party/codemirror - third_party/devtools-frontend/src/front_end/third_party/diff - third_party/devtools-frontend/src/front_end/third_party/i18n - third_party/devtools-frontend/src/front_end/third_party/intl-messageformat - third_party/devtools-frontend/src/front_end/third_party/lighthouse - third_party/devtools-frontend/src/front_end/third_party/lit-html - third_party/devtools-frontend/src/front_end/third_party/lodash-isequal - third_party/devtools-frontend/src/front_end/third_party/marked - third_party/devtools-frontend/src/front_end/third_party/puppeteer - third_party/devtools-frontend/src/front_end/third_party/wasmparser - third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n - third_party/devtools-frontend/src/third_party - third_party/distributed_point_functions - third_party/dom_distiller_js - third_party/eigen3 - third_party/emoji-segmenter - third_party/farmhash - third_party/fdlibm - third_party/fft2d - third_party/flatbuffers - third_party/freetype - third_party/fusejs - third_party/highway - third_party/libgifcodec - third_party/liburlpattern - third_party/libzip - third_party/gemmlowp - third_party/google_input_tools - third_party/google_input_tools/third_party/closure_library - third_party/google_input_tools/third_party/closure_library/third_party/closure - third_party/googletest - third_party/hunspell - third_party/iccjpeg - third_party/inspector_protocol - third_party/jinja2 - ) - use system-jsoncpp || keeplibs+=( - third_party/jsoncpp - ) - keeplibs+=( - third_party/jstemplate - third_party/khronos - third_party/leveldatabase - third_party/libXNVCtrl - third_party/libaddressinput - third_party/libaom - third_party/libaom/source/libaom/third_party/fastfeat - third_party/libaom/source/libaom/third_party/vector - third_party/libaom/source/libaom/third_party/x86inc - third_party/libavif - third_party/libgav1 - third_party/libjingle - third_party/libjxl - third_party/libphonenumber - third_party/libsecret - third_party/libsrtp - third_party/libsync - third_party/libudev - third_party/libva_protected_content - ) - use system-libvpx || keeplibs+=( - third_party/libvpx - third_party/libvpx/source/libvpx/third_party/x86inc - ) - keeplibs+=( - third_party/libwebm - third_party/libx11 - third_party/libxcb-keysyms - third_party/libxml/chromium - third_party/libyuv - third_party/llvm - third_party/lottie - third_party/lss - third_party/lzma_sdk - third_party/mako - third_party/maldoca - third_party/maldoca/src/third_party/tensorflow_protos - third_party/maldoca/src/third_party/zlibwrapper - third_party/markupsafe - third_party/mesa - third_party/metrics_proto - third_party/minigbm - third_party/modp_b64 - third_party/nasm - third_party/nearby - third_party/neon_2_sse - third_party/node - third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2 - third_party/one_euro_filter - third_party/opencv - third_party/openscreen - third_party/openscreen/src/third_party/mozilla - third_party/openscreen/src/third_party/tinycbor/src/src - third_party/ots - third_party/pdfium - third_party/pdfium/third_party/agg23 - third_party/pdfium/third_party/base - third_party/pdfium/third_party/bigint - third_party/pdfium/third_party/freetype - third_party/pdfium/third_party/lcms - ) - use system-openjpeg || keeplibs+=( - third_party/pdfium/third_party/libopenjpeg20 - ) - keeplibs+=( - third_party/pdfium/third_party/libpng16 - third_party/pdfium/third_party/libtiff - third_party/pdfium/third_party/skia_shared - third_party/perfetto - third_party/perfetto/protos/third_party/chromium - third_party/pffft - third_party/ply - third_party/polymer - third_party/private-join-and-compute - third_party/private_membership - third_party/protobuf - third_party/protobuf/third_party/six - third_party/pyjson5 - third_party/qcms - ) - keeplibs+=( - third_party/rnnoise - third_party/s2cellid - third_party/securemessage - third_party/shell-encryption - third_party/simplejson - third_party/skia - third_party/skia/include/third_party/skcms - third_party/skia/include/third_party/vulkan - third_party/skia/third_party/skcms - third_party/skia/third_party/vulkan - third_party/smhasher - third_party/snappy - third_party/sqlite - third_party/swiftshader - third_party/swiftshader/third_party/astc-encoder - third_party/swiftshader/third_party/llvm-subzero - third_party/swiftshader/third_party/marl - third_party/swiftshader/third_party/subzero - third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1 - third_party/tcmalloc - third_party/tensorflow-text - third_party/tflite - third_party/tflite/src/third_party/eigen3 - third_party/tflite/src/third_party/fft2d - third_party/ruy - third_party/six - third_party/ukey2 - third_party/usrsctp - third_party/utf - third_party/vulkan - third_party/web-animations-js - third_party/webdriver - third_party/webgpu-cts - third_party/webrtc - third_party/webrtc/common_audio/third_party/ooura - third_party/webrtc/common_audio/third_party/spl_sqrt_floor - third_party/webrtc/modules/third_party/fft - third_party/webrtc/modules/third_party/g711 - third_party/webrtc/modules/third_party/g722 - third_party/webrtc/rtc_base/third_party/base64 - third_party/webrtc/rtc_base/third_party/sigslot - third_party/widevine - third_party/woff2 - third_party/wuffs - third_party/x11proto - third_party/xcbproto - third_party/zxcvbn-cpp - third_party/zlib/google - url/third_party/mozilla - v8/src/third_party/siphash - v8/src/third_party/valgrind - v8/src/third_party/utf8-decoder - v8/third_party/inspector_protocol - v8/third_party/v8 - ) - use system-libevent || keeplibs+=( - base/third_party/libevent - ) - keeplibs+=( - third_party/speech-dispatcher - third_party/usb_ids - third_party/xdg-utils - ) - if ! use system-ffmpeg; then - keeplibs+=( third_party/ffmpeg third_party/opus ) - fi - if ! use system-icu; then - keeplibs+=( third_party/icu ) - fi - if use system-harfbuzz; then - keeplibs+=( third_party/harfbuzz-ng/utils ) - else - keeplibs+=( third_party/harfbuzz-ng ) - fi - if use wayland && ! use headless ; then - keeplibs+=( third_party/wayland ) - fi - if ! use system-openh264; then - keeplibs+=( third_party/openh264 ) - fi - if ! use system-re2; then - keeplibs+=( third_party/re2 ) - fi - if use arm64 || use ppc64 ; then - keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 ) - fi - # we need to generate ppc64 stuff because upstream does not ship it yet - # it has to be done before unbundling. - if use ppc64; then - pushd third_party/libvpx >/dev/null || die - mkdir -p source/config/linux/ppc64 || die - ./generate_gni.sh || die - popd >/dev/null || die - fi - - # Remove most bundled libraries. Some are still needed. - build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die - - if use js-type-check; then - ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die - fi - - # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries - mkdir -p buildtools/third_party/eu-strip/bin || die - ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die -} - -src_configure() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - local myconf_gn="" - - # Make sure the build system will use the right tools, bug #340795. - tc-export AR CC CXX NM - - if use clang && ! tc-is-clang ; then - einfo "Enforcing the use of clang due to USE=clang ..." - CC=${CHOST}-clang - CXX=${CHOST}-clang++ - AR=llvm-ar #thinlto fails otherwise - strip-unsupported-flags - elif ! use clang && ! tc-is-gcc ; then - einfo "Enforcing the use of gcc due to USE=-clang ..." - CC=${CHOST}-gcc - CXX=${CHOST}-g++ - AR=gcc-ar #just in case - strip-unsupported-flags - fi - - if tc-is-clang; then - myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" - else - myconf_gn+=" is_clang=false" - fi - - # Define a custom toolchain for GN - myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" - - if tc-is-cross-compiler; then - tc-export BUILD_{AR,CC,CXX,NM} - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\"" - else - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" - fi - - # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. - myconf_gn+=" is_debug=false" - - # enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138. - # DCHECK is fatal by default, make it configurable at runtime, #bug 807881. - myconf_gn+=" dcheck_always_on=$(usex debug true false)" - myconf_gn+=" dcheck_is_configurable=$(usex debug true false)" - - if use tcmalloc; then - myconf_gn+=" use_allocator=\"tcmalloc\"" - fi - - if use partition; then - myconf_gn+=" use_allocator=\"partition\"" - fi - - # Disable nacl, we can't build without pnacl (http://crbug.com/269560). - myconf_gn+=" enable_nacl=false" - - local gn_system_libraries=( - flac - fontconfig - freetype - libdrm - libjpeg - libpng - libwebp - libxml - libxslt - ) - use system-openh264 && gn_system_libraries+=( - openh264 - ) - use system-re2 && gn_system_libraries+=( - re2 - ) - gn_system_libraries+=( - snappy - zlib - ) - if use system-ffmpeg; then - gn_system_libraries+=( ffmpeg opus ) - fi - if use system-icu; then - gn_system_libraries+=( icu ) - fi - if use system-libvpx; then - gn_system_libraries+=( libvpx ) - fi - if use system-libevent; then - gn_system_libraries+=( libevent ) - fi - build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die - - # See dependency logic in third_party/BUILD.gn - myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)" - - # Disable deprecated libgnome-keyring dependency, bug #713012 - myconf_gn+=" use_gnome_keyring=false" - - # Optional dependencies. - myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)" - myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" - myconf_gn+=" enable_widevine=$(usex widevine true false)" - myconf_gn+=" use_cups=$(usex cups true false)" - myconf_gn+=" use_kerberos=$(usex kerberos true false)" - myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" - myconf_gn+=" use_vaapi=$(usex vaapi true false)" - myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)" - - # TODO: link_pulseaudio=true for GN. - - myconf_gn+=" disable_fieldtrial_testing_config=true" - - myconf_gn+=" is_cfi=$(usex cfi true false)" - - if use cfi; then - myconf_gn+=" use_cfi_icall=true" - myconf_gn+=" use_cfi_cast=true" - fi - - if use pgo; then - myconf_gn+=" chrome_pgo_phase=2" - else - myconf_gn+=" chrome_pgo_phase=0" - fi - - myconf_gn+=" use_thin_lto=$(usex thinlto true false)" - myconf_gn+=" thin_lto_enable_optimizations=$(usex optimize-thinlto true false)" - myconf_gn+=" optimize_webui=$(usex optimize-webui true false)" - myconf_gn+=" use_system_freetype=$(usex system-harfbuzz true false)" - myconf_gn+=" use_system_libopenjpeg2=$(usex system-openjpeg true false)" - myconf_gn+=" enable_pdf=true" - myconf_gn+=" use_system_lcms2=true" - myconf_gn+=" enable_print_preview=true" - - # Ungoogled flags - myconf_gn+=" enable_mdns=false" - myconf_gn+=" enable_mse_mpeg2ts_stream_parser=true" - myconf_gn+=" enable_nacl_nonsfi=false" - myconf_gn+=" enable_one_click_signin=false" - myconf_gn+=" enable_reading_list=false" - myconf_gn+=" enable_remoting=false" - myconf_gn+=" enable_reporting=false" - myconf_gn+=" enable_service_discovery=false" - myconf_gn+=" exclude_unwind_tables=true" - myconf_gn+=" use_official_google_api_keys=false" - myconf_gn+=" google_api_key=\"\"" - myconf_gn+=" google_default_client_id=\"\"" - myconf_gn+=" google_default_client_secret=\"\"" - myconf_gn+=" safe_browsing_mode=0" - myconf_gn+=" use_unofficial_version_number=false" - myconf_gn+=" blink_symbol_level=0" - myconf_gn+=" symbol_level=0" - myconf_gn+=" enable_iterator_debugging=false" - myconf_gn+=" enable_swiftshader=false" - myconf_gn+=" build_with_tflite_lib=false" - - # Additional flags - myconf_gn+=" use_system_libjpeg=true" - myconf_gn+=" use_system_zlib=true" - myconf_gn+=" rtc_build_examples=false" - - # Never use bundled gold binary. Disable gold linker flags for now. - # Do not use bundled clang. - # Trying to use gold results in linker crash. - myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false" - - if use clang; then - myconf_gn+=" use_lld=true" #x86 fails with gnu ld - else - # Disable forced lld, bug 641556 - myconf_gn+=" use_lld=false" - fi - - # Disable pseudolocales, only used for testing - myconf_gn+=" enable_pseudolocales=false" - - # Disable code formating of generated files - myconf_gn+=" blink_enable_generated_code_formatting=false" - - ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)" - myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)" - myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\"" - - local myarch="$(tc-arch)" - - # Avoid CFLAGS problems, bug #352457, bug #390147. - if ! use custom-cflags; then - filter-flags "-O*" "-Wl,-O*" #See #25 - strip-flags - - # Prevent linker from running out of address space, bug #471810 . - if use x86; then - filter-flags "-g*" - fi - - # Prevent libvpx build failures. Bug 530248, 544702, 546984. - if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then - filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 - fi - fi - - if [[ $myarch = amd64 ]] ; then - myconf_gn+=" target_cpu=\"x64\"" - ffmpeg_target_arch=x64 - elif [[ $myarch = x86 ]] ; then - myconf_gn+=" target_cpu=\"x86\"" - ffmpeg_target_arch=ia32 - - # This is normally defined by compiler_cpu_abi in - # build/config/compiler/BUILD.gn, but we patch that part out. - append-flags -msse2 -mfpmath=sse -mmmx - elif [[ $myarch = arm64 ]] ; then - myconf_gn+=" target_cpu=\"arm64\"" - ffmpeg_target_arch=arm64 - elif [[ $myarch = arm ]] ; then - myconf_gn+=" target_cpu=\"arm\"" - ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm) - elif [[ $myarch = ppc64 ]] ; then - myconf_gn+=" target_cpu=\"ppc64\"" - ffmpeg_target_arch=ppc64 - else - die "Failed to determine target arch, got '$myarch'." - fi - - if use thinlto; then - # We need to change the default value of import-instr-limit in - # LLVM to limit the text size increase. The default value is - # 100, and we change it to 30 to reduce the text size increase - # from 25% to 10%. The performance number of page_cycler is the - # same on two of the thinLTO configurations, we got 1% slowdown - # on speedometer when changing import-instr-limit from 100 to 30. - #append-ldflags "-Wl,-plugin-opt,-import-instr-limit=30" - - append-ldflags "-Wl,--thinlto-jobs=$(makeopts_jobs)" - myconf_gn+=" use_lld=true" - fi - - # Make sure that -Werror doesn't get added to CFLAGS by the build system. - # Depending on GCC version the warnings are different and we don't want - # the build to fail because of that. - myconf_gn+=" treat_warnings_as_errors=false" - - # Disable fatal linker warnings, bug 506268. - myconf_gn+=" fatal_linker_warnings=false" - - # Bug 491582. - export TMPDIR="${WORKDIR}/temp" - mkdir -p -m 755 "${TMPDIR}" || die - - # https://bugs.gentoo.org/654216 - addpredict /dev/dri/ #nowarn - - #if ! use system-ffmpeg; then - if false; then - local build_ffmpeg_args="" - if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then - build_ffmpeg_args+=" --disable-asm" - fi - - # Re-configure bundled ffmpeg. See bug #491378 for example reasons. - einfo "Configuring bundled ffmpeg..." - pushd third_party/ffmpeg > /dev/null || die - chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \ - --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die - chromium/scripts/copy_config.sh || die - chromium/scripts/generate_gn.py || die - popd > /dev/null || die - fi - - # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470 - append-cxxflags $(test-flags-CXX -flax-vector-conversions=all) - - # Disable unknown warning message from clang. - tc-is-clang && append-flags -Wno-unknown-warning-option - - # Explicitly disable ICU data file support for system-icu builds. - if use system-icu; then - myconf_gn+=" icu_use_data_file=false" - fi - - # Enable ozone wayland and/or headless support - myconf_gn+=" use_ozone=true ozone_auto_platforms=false" - myconf_gn+=" ozone_platform_headless=true" - myconf_gn+=" ozone_platform_x11=$(usex headless false true)" - if use wayland || use headless; then - if use headless; then - myconf_gn+=" ozone_platform=\"headless\"" - myconf_gn+=" use_x11=false" - else - myconf_gn+=" ozone_platform_wayland=true" - myconf_gn+=" use_system_libdrm=true" - myconf_gn+=" use_system_minigbm=true" - myconf_gn+=" use_xkbcommon=true" - myconf_gn+=" ozone_platform=\"wayland\"" - fi - else - myconf_gn+=" ozone_platform=\"x11\"" - fi - - # Enable official builds - myconf_gn+=" is_official_build=$(usex official true false)" - if use official; then - # Allow building against system libraries in official builds - sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ - tools/generate_shim_headers/generate_shim_headers.py || die - fi - - # Facilitate deterministic builds (taken from build/config/compiler/BUILD.gn) - append-cflags -Wno-builtin-macro-redefined - append-cxxflags -Wno-builtin-macro-redefined - append-cppflags "-D__DATE__= -D__TIME__= -D__TIMESTAMP__=" - - local flags - einfo "Building with the following compiler settings:" - for flags in C{C,XX} AR NM RANLIB {C,CXX,CPP,LD}FLAGS \ - EXTRA_GN UGC_{SKIP_{PATCHES,SUBSTITUTION},KEEP_BINARIES} ; do - einfo " ${flags} = \"${!flags}\"" - done - - einfo "Configuring Chromium..." - set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release - echo "$@" - "$@" || die - - # The "if" below should not be executed unless testing - if [ ! -z "${NODIE}" ]; then - # List all args - # gn args --list out/Release - - # Quick compiler check - eninja -C out/Release protoc torque - fi -} - -src_compile() { - # Final link uses lots of file descriptors. - ulimit -n 2048 - - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - # Don't inherit PYTHONPATH from environment, bug #789021, #812689 - local -x PYTHONPATH= - - #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die - - use convert-dict && eninja -C out/Release convert_dict - - # Build mksnapshot and pax-mark it. - local x - for x in mksnapshot v8_context_snapshot_generator; do - if tc-is-cross-compiler; then - eninja -C out/Release "host/${x}" - pax-mark m "out/Release/host/${x}" - else - eninja -C out/Release "${x}" - pax-mark m "out/Release/${x}" - fi - done - - # Even though ninja autodetects number of CPUs, we respect - # user's options, for debugging with -j 1 or any other reason. - eninja -C out/Release chrome - - use enable-driver && eninja -C out/Release chromedriver - use suid && eninja -C out/Release chrome_sandbox - - pax-mark m out/Release/chrome - - use enable-driver && mv out/Release/chromedriver{.unstripped,} - - # Build manpage; bug #684550 - sed -e 's|@@PACKAGE@@|chromium-browser|g; - s|@@MENUNAME@@|Chromium|g;' \ - chrome/app/resources/manpage.1.in > \ - out/Release/chromium-browser.1 || die - - # Build desktop file; bug #706786 - sed -e 's|@@MENUNAME@@|Chromium|g; - s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g; - s|@@PACKAGE@@|chromium-browser|g; - s|\(^Exec=\)/usr/bin/|\1|g;' \ - chrome/installer/linux/common/desktop.template > \ - out/Release/chromium-browser-chromium.desktop || die -} - -src_install() { - local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser" - exeinto "${CHROMIUM_HOME}" - doexe out/Release/chrome - - if use convert-dict; then - newexe "${FILESDIR}/update-dicts.sh" update-dicts.sh - doexe out/Release/convert_dict - fi - - if use suid; then - newexe out/Release/chrome_sandbox chrome-sandbox - fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox" - fi - - use enable-driver && doexe out/Release/chromedriver - - ozone_auto_session () { - use wayland && ! use headless && echo true || echo false - } - local sedargs=( -e - "s:/usr/lib/:/usr/$(get_libdir)/:g; - s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g" - ) - sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die - if has_version ">=media-sound/apulse-0.1.9" ; then - sed -i 's/exec -a "chromium-browser"/exec -a "chromium-browser" apulse/' chromium-launcher.sh || die - fi - doexe chromium-launcher.sh - - # It is important that we name the target "chromium-browser", - # xdg-utils expect it; bug #355517. - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser - # keep the old symlink around for consistency - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium - - use enable-driver && dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver - - # Allow users to override command-line options, bug #357629. - insinto /etc/chromium - newins "${FILESDIR}/chromium.default" "default" - - pushd out/Release/locales > /dev/null || die - chromium_remove_language_paks - popd - - insinto "${CHROMIUM_HOME}" - doins out/Release/*.bin - doins out/Release/*.pak - ( - shopt -s nullglob - local files=(out/Release/*.so out/Release/*.so.[0-9]) - [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}" - ) - - if ! use system-icu; then - doins out/Release/icudtl.dat - fi - - doins -r out/Release/locales - doins -r out/Release/resources - #doins -r out/Release/MEIPreload - - # Install vk_swiftshader_icd.json; bug #827861 - #doins out/Release/vk_swiftshader_icd.json - - #if [[ -d out/Release/swiftshader ]]; then - # insinto "${CHROMIUM_HOME}/swiftshader" - # doins out/Release/swiftshader/*.so - #fi - - use widevine && dosym WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so /usr/$(get_libdir)/chromium-browser/libwidevinecdm.so - - # Install icons - local branding size - for size in 16 24 32 48 64 128 256 ; do - case ${size} in - 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;; - *) branding="chrome/app/theme/chromium" ;; - esac - newicon -s ${size} "${branding}/product_logo_${size}.png" \ - chromium-browser.png - done - - # Install desktop entry - domenu out/Release/chromium-browser-chromium.desktop - - # Install GNOME default application entry (bug #303100). - insinto /usr/share/gnome-control-center/default-apps - newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml - - # Install manpage; bug #684550 - doman out/Release/chromium-browser.1 - dosym chromium-browser.1 /usr/share/man/man1/chromium.1 - - readme.gentoo_create_doc -} - -pkg_postrm() { - xdg_icon_cache_update - xdg_desktop_database_update -} - -pkg_postinst() { - xdg_icon_cache_update - xdg_desktop_database_update - readme.gentoo_print_elog - - if use vaapi; then - elog "VA-API is disabled by default at runtime. You have to enable it" - elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS" - elog "in /etc/chromium/default." - fi - if use screencast; then - elog "Screencast is disabled by default at runtime. Either enable it" - elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer" - elog "inside Chromium or add --enable-webrtc-pipewire-capturer" - elog "to CHROMIUM_FLAGS in /etc/chromium/default." - fi - if use widevine; then - elog "widevine requires binary plugins, which are distributed separately" - elog "Make sure you have www-plugins/chrome-binary-plugins installed" - fi -}