Closed YakoYakoYokuYoku closed 1 year ago
I'll throw this at a beefy machine and see if it has anything for us tomorrow ;-)
Not so much luck, it looks like a patch is out of date somewhere:
<truncated>
Apply Chromium patches...
patching file google_apis/google_api_keys.cc
Hunk #1 succeeded at 170 (offset 16 lines).
patching file chrome/test/chromedriver/chrome/web_view_impl.cc
patching file src/System/LRUCache.hpp
patching file src/dawn/native/stream/ByteVectorSink.h
patching file base/debug/profiler.h
patching file base/strings/string_piece.h
patching file device/base/synchronization/one_writer_seqlock.h
patching file pdf/document_attachment_info.h
patching file chrome/browser/privacy_budget/encountered_surface_tracker.h
patching file ui/base/prediction/kalman_filter.h
patching file ui/events/types/scroll_types.h
patching file ui/gfx/geometry/linear_gradient.h
patching file AUTHORS
patching file discovery/dnssd/public/dns_sd_txt_record.h
patching file util/base64.h
patching file constants/annotation_flags.h
patching file chrome/services/file_util/public/mojom/BUILD.gn
patching file chrome/services/file_util/safe_archive_analyzer.h
patching file cc/trees/target_property.cc
patching file components/metrics/psi_memory_parser.h
patching file components/services/app_service/public/cpp/capability_access.h
patching file components/soda/constants.h
patching file device/base/synchronization/one_writer_seqlock.h
patching file device/bluetooth/public/cpp/bluetooth_uuid.h
patching file extensions/common/constants.h
patching file extensions/renderer/bindings/api_invocation_errors.h
patching file net/base/parse_number.h
patching file net/cookies/cookie_inclusion_status.h
patching file sandbox/linux/syscall_broker/broker_file_permission.h
patching file third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h
Hunk #1 succeeded at 6 with fuzz 1 (offset -2 lines).
patching file third_party/blink/public/common/origin_trials/origin_trial_public_key.h
patching file ui/gfx/geometry/linear_gradient.h
patching file gpu/config/gpu_feature_info.h
patching file components/autofill/core/browser/autofill_ablation_study.h
patching file components/crash/core/app/crash_reporter_client.h
patching file components/feature_engagement/internal/event_storage_validator.h
patching file components/omnibox/browser/on_device_head_model.h
patching file components/password_manager/core/browser/generation/password_generator.h
patching file components/payments/content/utility/fingerprint_parser.h
patching file components/viz/common/view_transition_element_resource_id.h
patching file net/cert/pki/string_util.h
patching file net/cookies/cookie_inclusion_status.h
patching file third_party/s2cellid/README.chromium
patching file third_party/s2cellid/src/s2/util/math/vector.h
patching file chrome/browser/media/router/media_router_feature.cc
Hunk #1 succeeded at 68 with fuzz 2 (offset 14 lines).
patching file chrome/browser/download/bubble/download_bubble_update_service.cc
Hunk #2 succeeded at 789 (offset 133 lines).
patching file chrome/browser/download/bubble/download_bubble_update_service.h
Hunk #1 succeeded at 208 (offset 29 lines).
patching file chrome/browser/webauthn/authenticator_request_dialog_model.h
patching file gin/time_clamper.h
patching file third_party/maldoca/src/maldoca/ole/header.h
patching file third_party/ruy/src/ruy/profiler/instrumentation.h
patching file third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.cc
patching file third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
patching file third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
Add patches for Brave custom build
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- a/brave/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution.cc
|+++ b/brave/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution.cc
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
==> ERROR: A failure occurred in prepare().
Aborting...
==> ERROR: Build failed, check /var/lib/archbuild/extra-x86_64/alerque/build
I've forgot to cleanup the patches, now all of them should apply.
Thanks for the update. I just sent this off to build...
With 303ae7b I got stuck on the same patch...
Add patches for Brave custom build
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- a/brave/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution.cc
|+++ b/brave/vendor/bat-native-ledger/src/bat/ledger/internal/contribution/contribution.cc
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
I think that you should prune those patches in $srcdir
too. I'm thinking to do something like core/kernel
WRT those patches.
Oh yuck, we need to change the wildcard line picking patches to expand from the ${source}
array not from the file system. I can't ship this off to Arch's beefy build servers like this because it caches sources (for good reason)!
@alerque I think as of now everything can be prepared cleanly, please let me know if otherwise.
I tried building this a few times but it's been hiding in a queue behind Electron builds. We've had lots more trouble with Google's Chromium repository, so some of our builds are switching to a mirror. Even though the repository is the same so you can share a backend data store for both, the PKGBUILD system doesn't like having different remotes, so we've renamed the GitHub mirror so that multiple builds can share it while still having access to the canonical one. I've switched this to the mirror. You can avoid re-downloading the sources if you want by manually renaming the directory and changing the remote URL in your pkgsrc cache if you are interested.
The build I ran did not finish. I am not sure if this is a function of something not being initialized right in the sources before hand or something to do with Rust being fresh (1.70.0) and llvm being 15 not 17.
building native redirect_cc...
-------------------------------
/build/brave/src/brave-browser/src
> gn gen /build/brave/src/brave-browser/src/out/redirect_cc --args="import(\"//brave/tools/redirect_cc/args.gni\") use_goma=false goma_dir=\"/build/brave/src/brave-browser/src/brave/vendor/depot_tools/.cipd_bin\" real_gomacc=\"/build/brave/src/brave-browser/src/brave/vendor/depot_tools/.cipd_bin/gomacc\" "
ERROR at //build/config/rust.gni:143:22: Script returned non-zero exit code.
rustc_revision = exec_script("//tools/rust/update_rust.py",
^----------
Current dir: /build/brave/src/brave-browser/src/out/redirect_cc/
Command: python3 /build/brave/src/brave-browser/src/tools/rust/update_rust.py --print-package-version
Returned 1 and printed out:
The expected Rust version is 17c11672167827b0dd92c88ef69f24346d1286dd-1-llvmorg-17-init-8029-g27f27d15-3 (or fallback 17c11672167827b0dd92c88ef69f24346d1286dd-1-llvmorg-17-init-8029-g27f27d15-1 but the actual version is None
Did you run "gclient sync"?
See //BUILD.gn:17:1: whence it was imported.
import("//build/config/rust.gni")
^-------------------------------
null
null
If that error tells you anything useful let me know.
If that error tells you anything useful let me know.
Seems that Chromium tries to use an intree built rustc
, but here in the AUR we have a finite time to do things, so we shouldn't take that way. This package will continue to rely upon system's rustc
.
Thanks for the updates. I pulled them in and shipped it off for building. It got farther but still eventually tripped up on something Rust releated:
<truncated>
[2085/2091] STAMP obj/third_party/perfetto/src/trace_processor/storage_minimal.stamp
[2086/2091] STAMP obj/third_party/perfetto/src/trace_processor/export_json.stamp
[2087/2091] STAMP obj/third_party/perfetto/libperfetto.stamp
[2088/2091] AR obj/base/libbase.a
[2089/2091] LINK ./redirect_cc
[2090/2091] LINK ./gomacc
[2091/2091] STAMP obj/brave/tools/redirect_cc/redirect_cc.stamp
generating ninja files...
Widevine cdm host verification is disabled
-------------------------------
/build/brave/src/brave-browser/src
> gn gen /build/brave/src/brave-browser/src/out/Release --args="sardine_client_id=\"7ca8433c-7e61-4e25-b76e-25aa2da68df1\" sardine_client_secret=\"7ca8433c-7e61-4e25-b76e-25aa2da68df1\" is_asan=false enable_full_stack_frames_for_profiling=false v8_enable_verify_heap=false disable_fieldtrial_testing_config=true safe_browsing_mode=1 brave_services_key=\"qjVKcxtUybh8WpKNoQ7EbgbkJTMu7omjDHKk=VrPApb8PwJyPE9eqchxedTsMEWg\" root_extra_deps=[\"//brave\"] is_component_build=false is_universal_binary=false proprietary_codecs=true ffmpeg_branding=\"Chrome\" branding_path_component=\"brave\" branding_path_product=\"brave\" enable_nacl=false enable_widevine=true target_cpu=\"x64\" is_official_build=true is_debug=false dcheck_always_on=false brave_channel=\"\" brave_google_api_key=\"AIzaSyAREPLACEWITHYOUROWNGOOGLEAPIKEY2Q\" brave_google_api_endpoint=\"https://www.googleapis.com/geolocation/v1/geolocate?key=\" google_default_client_id=\"\" google_default_client_secret=\"\" brave_infura_project_id=\"\" brave_zero_ex_api_key=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\" bitflyer_client_id=\"\" bitflyer_client_secret=\"\" bitflyer_staging_client_id=\"\" bitflyer_staging_client_secret=\"\" bitflyer_staging_url=\"\" gemini_api_url=\"https://api.gemini.com/v1\" gemini_api_staging_url=\"\" gemini_oauth_url=\"https://api.gemini.com/v1/oauth\" gemini_oauth_staging_url=\"\" gemini_wallet_client_id=\"6d8d9473ed20be627f71ed46e207f40c004c5b1a\" gemini_wallet_client_secret=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\" gemini_wallet_staging_client_id=\"\" gemini_wallet_staging_client_secret=\"\" uphold_client_id=\"6d8d9473ed20be627f71ed46e207f40c004c5b1a\" uphold_client_secret=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\" uphold_staging_client_id=\"4c2b665ca060d912fec5c735c734859a06118cc8\" uphold_staging_client_secret=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\" brave_version_major=\"1\" brave_version_minor=\"52\" brave_version_build=\"122\" chrome_version_string=\"114.0.5735.110\" brave_sync_endpoint=\"https://sync-v2.brave.com/v2\" safebrowsing_api_endpoint=\"\" brave_variations_server_url=\"https://variations.brave.com/seed\" updater_prod_endpoint=\"https://go-updater.brave.com/extensions\" updater_dev_endpoint=\"https://go-updater-dev.bravesoftware.com/extensions\" webcompat_report_api_endpoint=\"https://webcompat.brave.com/1/webcompat\" rewards_grant_dev_endpoint=\"https://grant.rewards.brave.com\" rewards_grant_staging_endpoint=\"https://grant.rewards.brave.com\" rewards_grant_prod_endpoint=\"https://grant.rewards.brave.com\" brave_stats_api_key=\"fe033168-0ff8-4af6-9a7f-95e2cbfc9f4f\" brave_stats_updater_url=\"https://laptop-updates.brave.com\" p3a_json_upload_url=\"https://example.com\" p3a_creative_upload_url=\"https://example.com\" p2a_json_upload_url=\"https://example.com\" p3a_constellation_upload_url=\"https://example.com\" star_randomness_host=\"https://example.com\" enable_hangout_services_extension=true enable_cdm_host_verification=false enable_pseudolocales=false skip_signing=true sparkle_dsa_private_key_file=\"\" sparkle_eddsa_private_key=\"\" sparkle_eddsa_public_key=\"\" use_goma=false use_libfuzzer=false enable_updater=true enable_update_notifications=true rustc_version=\"rustc 1.70.0 (90c541806 2023-05-31) (Arch Linux rust 1:1.70.0-1)\" custom_toolchain=\"//build/toolchain/linux/unbundle:default\" host_toolchain=\"//build/toolchain/linux/unbundle:default\" clang_base_path=\"/usr\" clang_use_chrome_plugins=false rust_sysroot_absolute=\"/usr\" symbol_level=0 chrome_pgo_phase=0 treat_warnings_as_errors=false blink_enable_generated_code_formatting=false rtc_use_pipewire=true link_pulseaudio=true use_gnome_keyring=false use_sysroot=false use_system_libffi=true use_custom_libcxx=false use_chromium_rust_toolchain=false icu_use_data_file=false cc_wrapper=\"/build/brave/src/brave-browser/src/out/redirect_cc/redirect_cc\" use_vaapi=true is_lsan=false enable_brave_page_graph=true enable_brave_page_graph_webapi_probes=true "
WARNING at the command-line "--args":1:3552: Build argument has no effect.
sardine_client_id="7ca8433c-7e61-4e25-b76e-25aa2da68df1" sardine_client_secret="7ca8433c-7e61-4e25-b76e-25aa2da68df1" is_asan=false enable_full_stack_frames_for_profiling=false v8_enable_verify_heap=false disable_fieldtrial_testing_config=true safe_browsing_mode=1 brave_services_key="qjVKcxtUybh8WpKNoQ7EbgbkJTMu7omjDHKk=VrPApb8PwJyPE9eqchxedTsMEWg" root_extra_deps=["//brave"] is_component_build=false is_universal_binary=false proprietary_codecs=true ffmpeg_branding="Chrome" branding_path_component="brave" branding_path_product="brave" enable_nacl=false enable_widevine=true target_cpu="x64" is_official_build=true is_debug=false dcheck_always_on=false brave_channel="" brave_google_api_key="AIzaSyAREPLACEWITHYOUROWNGOOGLEAPIKEY2Q" brave_google_api_endpoint="https://www.googleapis.com/geolocation/v1/geolocate?key=" google_default_client_id="" google_default_client_secret="" brave_infura_project_id="" brave_zero_ex_api_key="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" bitflyer_client_id="" bitflyer_client_secret="" bitflyer_staging_client_id="" bitflyer_staging_client_secret="" bitflyer_staging_url="" gemini_api_url="https://api.gemini.com/v1" gemini_api_staging_url="" gemini_oauth_url="https://api.gemini.com/v1/oauth" gemini_oauth_staging_url="" gemini_wallet_client_id="6d8d9473ed20be627f71ed46e207f40c004c5b1a" gemini_wallet_client_secret="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" gemini_wallet_staging_client_id="" gemini_wallet_staging_client_secret="" uphold_client_id="6d8d9473ed20be627f71ed46e207f40c004c5b1a" uphold_client_secret="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" uphold_staging_client_id="4c2b665ca060d912fec5c735c734859a06118cc8" uphold_staging_client_secret="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" brave_version_major="1" brave_version_minor="52" brave_version_build="122" chrome_version_string="114.0.5735.110" brave_sync_endpoint="https://sync-v2.brave.com/v2" safebrowsing_api_endpoint="" brave_variations_server_url="https://variations.brave.com/seed" updater_prod_endpoint="https://go-updater.brave.com/extensions" updater_dev_endpoint="https://go-updater-dev.bravesoftware.com/extensions" webcompat_report_api_endpoint="https://webcompat.brave.com/1/webcompat" rewards_grant_dev_endpoint="https://grant.rewards.brave.com" rewards_grant_staging_endpoint="https://grant.rewards.brave.com" rewards_grant_prod_endpoint="https://grant.rewards.brave.com" brave_stats_api_key="fe033168-0ff8-4af6-9a7f-95e2cbfc9f4f" brave_stats_updater_url="https://laptop-updates.brave.com" p3a_json_upload_url="https://example.com" p3a_creative_upload_url="https://example.com" p2a_json_upload_url="https://example.com" p3a_constellation_upload_url="https://example.com" star_randomness_host="https://example.com" enable_hangout_services_extension=true enable_cdm_host_verification=false enable_pseudolocales=false skip_signing=true sparkle_dsa_private_key_file="" sparkle_eddsa_private_key="" sparkle_eddsa_public_key="" use_goma=false use_libfuzzer=false enable_updater=true enable_update_notifications=true rustc_version="rustc 1.70.0 (90c541806 2023-05-31) (Arch Linux rust 1:1.70.0-1)" custom_toolchain="//build/toolchain/linux/unbundle:default" host_toolchain="//build/toolchain/linux/unbundle:default" clang_base_path="/usr" clang_use_chrome_plugins=false rust_sysroot_absolute="/usr" symbol_level=0 chrome_pgo_phase=0 treat_warnings_as_errors=false blink_enable_generated_code_formatting=false rtc_use_pipewire=true link_pulseaudio=true use_gnome_keyring=false use_sysroot=false use_system_libffi=true use_custom_libcxx=false use_chromium_rust_toolchain=false icu_use_data_file=false cc_wrapper="/build/brave/src/brave-browser/src/out/redirect_cc/redirect_cc" use_vaapi=true is_lsan=false enable_brave_page_graph=true enable_brave_page_graph_webapi_probes=true
^----
The variable "use_chromium_rust_toolchain" was set as a build argument
but never appeared in a declare_args() block in any buildfile.
To view all possible args, run "gn args --list <out_dir>"
The build continued as if that argument was unspecified.
Done. Made 19205 targets from 3642 files in 5992ms
building brave (id=c89754b7-0930-4faf-a649-61a1257b8529) ...
-------------------------------
/build/brave/src/brave-browser/src
> autoninja -C /build/brave/src/brave-browser/src/out/Release brave -k 1 --offline
ninja: Entering directory `/build/brave/src/brave-browser/src/out/Release'
ninja: error: '../../brave/build/rustup/1.67.1/bin/cargo', needed by 'brave_rust/out/x64/x86_64-unknown-linux-gnu/release/libbrave_rust.a', missing and no known rule to make it
null
null
Note this is in a clean chroot builder using the current core and extra repositories to supply dependencies built using the same scripts official packages are built with on the same servers we use for offloading builds for official packages.
Seemingly, Brave uses another rustup
configuration for its Rust modules too, what a pain in the foot.
New failure paint:
<truncated>
[18390/57972] CXX obj/third_party/webrtc/media/stream_params/stream_params.o
[18391/57972] CXX obj/third_party/webrtc/logging/rtc_event_log_impl_encoder/rtc_event_log_encoder_v3.o
[18392/57972] ACTION //third_party/devtools-frontend/src/front_end/models/issues_manager:issues_manager-typescript(//build/toolchain/linux/unbundle:default)
[18393/57972] ACTION //third_party/devtools-frontend/src/front_end/entrypoints/lighthouse_worker:lighthouse_worker-typescript(//build/toolchain/linux/unbundle:default)
[18394/57972] CXX obj/third_party/webrtc/modules/audio_coding/ana_config_proto/config.pb.o
[18395/57972] ACTION //third_party/devtools-frontend/src/front_end/ui/legacy:devtools_entrypoint-bundle-bundle(//build/toolchain/linux/unbundle:default)
[18396/57972] CXX obj/third_party/tflite_support/tflite_support/image_classifier.o
[18397/57972] CXX obj/third_party/webrtc/logging/rtc_event_log_impl_encoder/rtc_event_log_encoder_legacy.o
[18398/57972] CXX obj/third_party/webrtc/media/media_channel_impl/media_channel_impl.o
In file included from ../../third_party/webrtc/media/base/media_channel_impl.cc:11:
In file included from ../../third_party/webrtc/media/base/media_channel_impl.h:30:
In file included from ../../third_party/webrtc/api/frame_transformer_interface.h:18:
In file included from ../../third_party/webrtc/api/video/encoded_frame.h:19:
In file included from ../../third_party/webrtc/modules/video_coding/encoded_frame.h:18:
../../third_party/webrtc/modules/video_coding/include/video_codec_interface.h:54:20: warning: 'is_pod<webrtc::CodecSpecificInfoVP8>' is deprecated: use 'is_standard_layout && is_trivial' instead [-Wdeprecated-declarations]
static_assert(std::is_pod<CodecSpecificInfoVP8>::value, "");
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.1.1/../../../../include/c++/13.1.1/type_traits:818:5: note: 'is_pod<webrtc::CodecSpecificInfoVP8>' has been explicitly marked deprecated here
_GLIBCXX20_DEPRECATED_SUGGEST("is_standard_layout && is_trivial")
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.1.1/../../../../include/c++/13.1.1/x86_64-pc-linux-gnu/bits/c++config.h:130:45: note: expanded from macro '_GLIBCXX20_DEPRECATED_SUGGEST'
# define _GLIBCXX20_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.1.1/../../../../include/c++/13.1.1/x86_64-pc-linux-gnu/bits/c++config.h:98:19: note: expanded from macro '_GLIBCXX_DEPRECATED_SUGGEST'
__attribute__ ((__deprecated__ ("use '" ALT "' instead")))
^
In file included from ../../third_party/webrtc/media/base/media_channel_impl.cc:11:
In file included from ../../third_party/webrtc/media/base/media_channel_impl.h:30:
In file included from ../../third_party/webrtc/api/frame_transformer_interface.h:18:
In file included from ../../third_party/webrtc/api/video/encoded_frame.h:19:
In file included from ../../third_party/webrtc/modules/video_coding/encoded_frame.h:18:
../../third_party/webrtc/modules/video_coding/include/video_codec_interface.h:85:20: warning: 'is_pod<webrtc::CodecSpecificInfoVP9>' is deprecated: use 'is_standard_layout && is_trivial' instead [-Wdeprecated-declarations]
static_assert(std::is_pod<CodecSpecificInfoVP9>::value, "");
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.1.1/../../../../include/c++/13.1.1/type_traits:818:5: note: 'is_pod<webrtc::CodecSpecificInfoVP9>' has been explicitly marked deprecated here
_GLIBCXX20_DEPRECATED_SUGGEST("is_standard_layout && is_trivial")
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.1.1/../../../../include/c++/13.1.1/x86_64-pc-linux-gnu/bits/c++config.h:130:45: note: expanded from macro '_GLIBCXX20_DEPRECATED_SUGGEST'
# define _GLIBCXX20_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.1.1/../../../../include/c++/13.1.1/x86_64-pc-linux-gnu/bits/c++config.h:98:19: note: expanded from macro '_GLIBCXX_DEPRECATED_SUGGEST'
__attribute__ ((__deprecated__ ("use '" ALT "' instead")))
^
In file included from ../../third_party/webrtc/media/base/media_channel_impl.cc:11:
In file included from ../../third_party/webrtc/media/base/media_channel_impl.h:30:
In file included from ../../third_party/webrtc/api/frame_transformer_interface.h:18:
In file included from ../../third_party/webrtc/api/video/encoded_frame.h:19:
In file included from ../../third_party/webrtc/modules/video_coding/encoded_frame.h:18:
../../third_party/webrtc/modules/video_coding/include/video_codec_interface.h:94:20: warning: 'is_pod<webrtc::CodecSpecificInfoH264>' is deprecated: use 'is_standard_layout && is_trivial' instead [-Wdeprecated-declarations]
static_assert(std::is_pod<CodecSpecificInfoH264>::value, "");
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.1.1/../../../../include/c++/13.1.1/type_traits:818:5: note: 'is_pod<webrtc::CodecSpecificInfoH264>' has been explicitly marked deprecated here
_GLIBCXX20_DEPRECATED_SUGGEST("is_standard_layout && is_trivial")
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.1.1/../../../../include/c++/13.1.1/x86_64-pc-linux-gnu/bits/c++config.h:130:45: note: expanded from macro '_GLIBCXX20_DEPRECATED_SUGGEST'
# define _GLIBCXX20_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.1.1/../../../../include/c++/13.1.1/x86_64-pc-linux-gnu/bits/c++config.h:98:19: note: expanded from macro '_GLIBCXX_DEPRECATED_SUGGEST'
__attribute__ ((__deprecated__ ("use '" ALT "' instead")))
^
In file included from ../../third_party/webrtc/media/base/media_channel_impl.cc:11:
In file included from ../../third_party/webrtc/media/base/media_channel_impl.h:30:
In file included from ../../third_party/webrtc/api/frame_transformer_interface.h:18:
In file included from ../../third_party/webrtc/api/video/encoded_frame.h:19:
In file included from ../../third_party/webrtc/modules/video_coding/encoded_frame.h:18:
../../third_party/webrtc/modules/video_coding/include/video_codec_interface.h:101:20: warning: 'is_pod<webrtc::CodecSpecificInfoUnion>' is deprecated: use 'is_standard_layout && is_trivial' instead [-Wdeprecated-declarations]
static_assert(std::is_pod<CodecSpecificInfoUnion>::value, "");
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.1.1/../../../../include/c++/13.1.1/type_traits:818:5: note: 'is_pod<webrtc::CodecSpecificInfoUnion>' has been explicitly marked deprecated here
_GLIBCXX20_DEPRECATED_SUGGEST("is_standard_layout && is_trivial")
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.1.1/../../../../include/c++/13.1.1/x86_64-pc-linux-gnu/bits/c++config.h:130:45: note: expanded from macro '_GLIBCXX20_DEPRECATED_SUGGEST'
# define _GLIBCXX20_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.1.1/../../../../include/c++/13.1.1/x86_64-pc-linux-gnu/bits/c++config.h:98:19: note: expanded from macro '_GLIBCXX_DEPRECATED_SUGGEST'
__attribute__ ((__deprecated__ ("use '" ALT "' instead")))
^
4 warnings generated.
[18399/57972] CXX obj/third_party/webrtc/logging/rtc_event_log_impl_encoder/rtc_event_log_encoder_new_format.o
ninja: build stopped: subcommand failed.
null
null
Those seem to be warnings only, the error must be on that truncated part.
You are correct, sorry I kind of skimmed over that. It turns out the error is way farther up in the build sequence:
<truncated>
[18327/57972] STAMP obj/chrome/browser/unexpire_flags.stamp
[18328/57972] STAMP obj/chrome/browser/enterprise/connectors/analysis/features.stamp
[18329/57972] STAMP obj/chrome/browser/enterprise/connectors/device_trust/features.stamp
[18330/57972] STAMP obj/chrome/browser/enterprise/connectors/device_trust/common/common.stamp
[18331/57972] STAMP obj/chrome/browser/enterprise/connectors/device_trust/signals/signals.stamp
[18332/57972] STAMP obj/chrome/browser/enterprise/platform_auth/features.stamp
[18333/57972] ACTION //third_party/devtools-frontend/src/front_end/models/logs:devtools_entrypoint-meta-bundle(//build/toolchain/linux/unbundle:default)
[18334/57972] AR obj/brave/third_party/bitcoin-core/libbitcoin-core.a
FAILED: obj/brave/third_party/bitcoin-core/libbitcoin-core.a
rm -f obj/brave/third_party/bitcoin-core/libbitcoin-core.a && "llvm-ar" -T -r -c -s -D obj/brave/third_party/bitcoin-core/libbitcoin-core.a @"obj/brave/third_party/bitcoin-core/libbitcoin-core.a.rsp"
llvm-ar: error: obj/brave/third_party/bitcoin-core/bitcoin-core/base58.o: No such file or directory
[18335/57972] ACTION //chrome/app/vector_icons:chrome_vector_icons(//build/toolchain/linux/unbundle:default)
[18336/57972] AR obj/brave/components/skus/browser/rs/cxx/libcxx.a
[18337/57972] AR obj/chrome/browser/image_editor/libimage_editor_component_util.a
[18338/57972] STAMP obj/chrome/browser/signin/identity_manager_provider.stamp
[18339/57972] STAMP obj/brave/browser/browser_process.stamp
[18340/57972] STAMP obj/chrome/common/ini_parser.stamp
[18341/57972] STAMP obj/brave/components/vector_icons/brave_components_vector_icons.stamp
[18342/57972] AR obj/chrome/common/libnon_code_constants.a
[18343/57972] AR obj/chrome/common/apps/platform_apps/api/libgenerated_api_json_strings.a
<truncated>
bitcoin-core?
[18469/57972] ACTION //third_party/devtools-frontend/src/front_end/panels/accessibility:devtools_entrypoint-legacy-bundle(//build/toolchain/linux/unbundle:default)
[18470/57972] ACTION //third_party/devtools-frontend/src/front_end/panels/web_audio:devtools_entrypoint-bundle-bundle(//build/toolchain/linux/unbundle:default)
[18471/57972] CXX obj/third_party/webrtc/api/transport/goog_cc/goog_cc_factory.o
[18472/57972] ACTION //third_party/devtools-frontend/src/front_end/models/persistence:devtools_entrypoint-bundle-tsconfig(//build/toolchain/linux/unbundle:default)
[18473/57972] AR obj/brave/components/brave_sync/libcrypto.a
FAILED: obj/brave/components/brave_sync/libcrypto.a
rm -f obj/brave/components/brave_sync/libcrypto.a && "llvm-ar" -T -r -c -s -D obj/brave/components/brave_sync/libcrypto.a @"obj/brave/components/brave_sync/libcrypto.a.rsp"
llvm-ar: error: obj/brave/components/brave_sync/crypto/crypto.o: No such file or directory
[18474/57972] STAMP obj/printing/native_drawing_context.stamp
[18475/57972] STAMP obj/sandbox/common.stamp
[18476/57972] AR obj/sandbox/linux/libsandbox_services.a
[18477/57972] AR obj/services/audio/public/cpp/libaudio_features.a
I'd try to be more helpful besides just sending this to build and passing errors, but I'm swamped trying to get stupid Electron stuff rebuilt for Arch! What an absolute crazy-pants exercise!
FAILED: obj/brave/components/brave_rewards/core/libbrave_rewards_core.a
rm -f obj/brave/components/brave_rewards/core/libbrave_rewards_core.a && "llvm-ar" -T -r -c -s -D obj/brave/components/brave_rewards/core/libbrave_rewards_core.a @"obj/brave/components/brave_rewards/core/libbrave_rewards_core.a.rsp"
llvm-ar: error: obj/brave/components/brave_rewards/core/ledger/request_util.o: No such file or directory
I feel that I'm closer, but I'll have to admit that I don't know such a way to at least predict which component is going to fail at compile time, wish I could have that hability.
I don't know how close we are either but surely each one we get past must be that much closer! From working on Electron the last few weeks I don't think there is any good way to catch everything in advance, it is a lot of trial and error especially working with gcc patches.
By the way how are you testing this on your end? Is it just a matter of disk space and processor time that means these aren't tested locally? Because you should be hitting exactly the same failures as I am. I'm kind of surprised your fixes have been working if you haven't been testing at all, and if you are testing I'm confused why you don't hit the next problems too. At this point you should be able to almost exactly replicate by builds with Arch's dev tooling, install devtools
then run pkgctl build --repo extra
in the directory with this package. I don't mind firing off builds but if that is not reporting the same errors then something else fishy is up and it would be nice to know what.
By the way how are you testing this on your end? Is it just a matter of disk space and processor time that means these aren't tested locally? Because you should be hitting exactly the same failures as I am. I'm kind of surprised your fixes have been working if you haven't been testing at all, and if you are testing I'm confused why you don't hit the next problems too. At this point you should be able to almost exactly replicate by builds with Arch's dev tooling, install
devtools
then runpkgctl build
in the directory with this package. I don't mind firing off builds but if that is not reporting the same errors then something else fishy is up and it would be nice to know what.
I've been testing the build by running makepkg
directly instead of under a chrooted environment, I haven't yet figured out an efficient way to do caching. Also I'm constrained with both an HDD and low RAM, 16GB for 16 threads, so it chokes really bad in parts like blink
or v8
. As of the testing of those failures I patch the sources and I build the target directly in PKGBUILD
with npm run build -- --target obj/brave/component/libfoo.a
while skipping prepare()
. I initially thought that they've sorted many of the issues upstream but I was wrong. So when I have the time to properly test this I think I'll split the npm run build
into smaller pieces, so I avoid thrashing my machine in one run, and then I'll submit those changes properly. Sorry for the inconveniences I've done from my side.
FAILED: obj/brave/components/playlist/browser/libbrowser.a
rm -f obj/brave/components/playlist/browser/libbrowser.a && "llvm-ar" -T -r -c -s -D obj/brave/components/playlist/browser/libbrowser.a @"obj/brave/components/playlist/browser/libbrowser.a.rsp"
llvm-ar: error: obj/brave/components/playlist/browser/browser/playlist_download_request_manager.o: No such file or directory
I have now built the monster, fully patched, and it works. For future reference I left a list of targets to build in certain order so it doesn't choke at least my machine. Hope it's helpful for someone else.
npm run build ${_build_type} -- --target obj/base/libbase.a "${npm_args[@]}"
npm run build ${_build_type} -- --target obj/ui/display/libdisplay.a "${npm_args[@]}"
npm run build ${_build_type} -- --target obj/net/libnet.a "${npm_args[@]}"
npm run build ${_build_type} -- --target obj/mojo/public/cpp/base/libmojo_base_lib.a "${npm_args[@]}"
npm run build ${_build_type} -- --target obj/third_party/angle/angle.stamp "${npm_args[@]}"
npm run build ${_build_type} -- --target obj/v8/v8.stamp --ninja j:8 "${npm_args[@]}"
npm run build ${_build_type} -- --target obj/ui/views/libviews.a "${npm_args[@]}"
npm run build ${_build_type} -- --target obj/third_party/blink/public/common/common.stamp --ninja j:8 "${npm_args[@]}"
npm run build ${_build_type} -- --target obj/content/browser/browser.stamp --ninja j:8 "${npm_args[@]}"
npm run build ${_build_type} -- --target obj/extensions/browser/browser.stamp --ninja j:8 "${npm_args[@]}"
npm run build ${_build_type} -- --target obj/content/renderer/librenderer.a --ninja j:8 "${npm_args[@]}"
npm run build ${_build_type} -- --target obj/chrome/renderer/librenderer.a --ninja j:8 "${npm_args[@]}"
npm run build ${_build_type} -- "${npm_args[@]}"
Another thing that I've recently discovered is that we can pass blink_symbol_level
and v8_symbol_level
(?) with the rest of GN args, although I haven't tested it yet, might help for building other Chromium-based projects.
This PR is merged, thanks again for all the effort. The package I generated is also hosted in my user repository.
Another thing that I've recently discovered is that we can pass
blink_symbol_level
andv8_symbol_level
(?) with the rest of GN args, although I haven't tested it yet, might help for building other Chromium-based projects.
I'm happy to facilitate any useful changes applied to the Arch Chromium and Electron packages, but I don't know what those flags do. Do you have a link to where they are document or can you comment on how they would help?
This PR is merged, thanks again for all the effort. The package I generated is also hosted in my user repository.
You are welcome too.
I'm happy to facilitate any useful changes applied to the Arch Chromium and Electron packages, but I don't know what those flags do. Do you have a link to where they are document or can you comment on how they would help?
Those configs are pretty similar to GCC's/Clang's -g
flag and both blink
and v8
have symbol levels on their own, although the latter uses symbol_level
by default.
This PR updates
brave
to1.52.122
.Changes:
extra/chromium
at114.0.5735.110
.extra/chromium
GitLab repo.build()
to use fewer LOCs.TODOs:
makepkg -o
).(I may require a more powerful machine to compile things faster)see comment down below.