[COPY] --- T2-COPYRIGHT-BEGIN --- [COPY] t2/package/*/chromium/chromium.desc [COPY] Copyright (C) 2023 - 2026 The T2 SDE Project [COPY] SPDX-License-Identifier: GPL-2.0 [COPY] --- T2-COPYRIGHT-END --- [I] Google's opensource web browser [T] Google's opensource web browser. [U] https://www.chromium.org/Home/ [A] Google Inc [M] René Rebe [C] extra/office [F] CUSTOM-LTO [E] add lld nodejs [L] BSD [V] 148.0.7778.167 [CV-URL] https://chromium.googlesource.com/chromium/src/+refs [D] 209f25c37ea9cb1a7d2de62b06b60c40a301b0c818c75b145bac701b chromium-148.0.7778.167-linux.tar.xz https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/download/148.0.7778.167/ [D] c1ce8e0652ba9056354544ead5706383790ac476cc042205c6994e10 copium-148.1.tar.gz !https://codeberg.org/selfisekai/copium/archive/148.1.tar.gz [D] 688fcf4e2919ddf7d4e94c416fca658a2b3018a7952a8f72d13028dc wasm-node-4.22.4.tgz https://registry.npmjs.org/@rollup/wasm-node/-/ runmake=0 prefix=opt/chromium var_append copium_patches ' ' cr138-node-version-check.patch var_append copium_patches ' ' cr146-sanitize-ignore-for-ubsan-feature.patch var_append copium_patches ' ' cr148-rust-1.95-bytemuck.patch var_append copium_patches ' ' cr148-rust-toolchain-var.patch var_append copium_patches ' ' cr148-v8-no-san-trap.patch copium_patches() { tar $taropt `match_source_file -p copium` -C ./.. for p in $copium_patches; do var_append patchfiles ' ' $builddir/copium/$p done } hook_add prepatch 5 copium_patches [ "$SDECFG_DEFAULT_CC" == "gcc" ] && CC=${CC/gcc/clang} [ "$SDECFG_DEFAULT_CXX" == "gcc" ] && CXX=${CXX/g++/clang++} CLANG_VERSION=$($CC --version | sed -n 's/.*version \([0-9]\+\)\..*/\1/p') CLANG_INCLUDE_PATH="-I$(pkgprefix libdir clang)/clang/${CLANG_VERSION}/include" var_append GCC_WRAPPER_APPEND ' ' -I$(pkgprefix includedir libx11) [ "$arch" = arm64 ] && var_remove GCC_WRAPPER_REMOVE ' ' "-march*" export RUSTC_BOOTSTRAP=1 chromium_flags=" blink_enable_generated_code_formatting=false build_dawn_tests=false chrome_pgo_phase=0 clang_base_path=\"/$(pkgprefix clang)\" clang_use_chrome_plugins=false clang_version=\"${CLANG_VERSION}\" custom_toolchain=\"//build/toolchain/linux/unbundle:default\" disable_fieldtrial_testing_config=true enable_freetype=true enable_nocompile_tests=false enable_pseudolocales=false enable_remoting=false enable_reporting=false enable_rust=true enable_vr=false enable_widevine=false ffmpeg_branding=\"Chrome\" host_toolchain=\"//build/toolchain/linux/unbundle:default\" icu_use_data_file=false is_asan=false is_component_build=false is_cfi=false is_debug=false is_official_build=true link_pulseaudio=true media_use_ffmpeg=true media_use_libvpx=true media_use_openh264=true node_version_check=false proprietary_codecs=true rtc_build_json=false rtc_build_libsrtp=true rtc_build_libvpx=true rtc_build_opus=false rtc_build_ssl=true rtc_link_pipewire=false rtc_use_h264=false rtc_use_pipewire=false rust_bindgen_root=\"/$(pkgprefix rust-bindgen)\" rust_sysroot_absolute=\"/$(pkgprefix rustc)\" rustc_version=\"T2\" safe_browsing_use_unrar=false symbol_level=0 treat_warnings_as_errors=false use_clang_modules=false use_custom_libcxx=true use_lld=true use_official_google_api_keys=false use_pulseaudio=true use_qt5=false use_sysroot=false use_system_libffi=true use_thin_lto=false use_unofficial_version_number=false use_vaapi=true " pkginstalled qt6base && var_append chromium_flags ' ' "use_qt6=true" pkginstalled qt6base && var_append chromium_flags ' ' "moc_qt6_path=\"$root/$(pkgprefix qt6base)/libexec/qt6\"" [ "$SDECFG_LTO" = 1 ] && var_append chromium_flags ' ' "use_thin_lto=true thin_lto_enable_optimizations=true" system_libs="" pkginstalled brotli && var_append system_libs ' ' brotli pkginstalled dav1d && var_append system_libs ' ' dav1d pkginstalled flac && var_append system_libs ' ' flac pkginstalled fontconfig && var_append system_libs ' ' fontconfig pkginstalled freetype && var_append system_libs ' ' freetype pkginstalled libdrm && var_append system_libs ' ' libdrm pkginstalled libjpeg && var_append system_libs ' ' libjpeg pkginstalled libopus && var_append system_libs ' ' opus pkginstalled libopus && var_append patchfiles ' ' $confdir/hotfix-system-opus.diff pkginstalled libpng && var_append system_libs ' ' libpng pkginstalled libsecret && var_append system_libs ' ' libsecret pkginstalled libusb && var_append system_libs ' ' libusb pkginstalled libwebp && var_append system_libs ' ' libwebp pkginstalled libxml && var_append system_libs ' ' libxml pkginstalled libxslt && var_append system_libs ' ' libxslt pkginstalled openh264 && var_append system_libs ' ' openh264 pkginstalled unrar && var_append system_libs ' ' unrar pkginstalled zstd && var_append system_libs ' ' zstd chromium_premake() { for x in $system_libs; do echo "Removing buildscripts for system provided $x" x="${x/swiftshader-/swiftshader/third_party/}" find . -type f -path "*third_party/$x/*" \ \! -path "*third_party/$x/chromium/*" \ \! -path "*third_party/$x/google/*" \ \! -path './base/third_party/icu/*' \ \! -path './third_party/libxml/*' \ \! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \ \! -path './third_party/harfbuzz-ng/utils/hb_scoped.h' \ \! -path './third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h' \ \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ -delete done echo "Replacing gn files" var_remove system_libs ' ' unrar build/linux/unbundle/replace_gn_files.py --system-libraries $system_libs # use system nodejs mkdir -p third_party/node/linux/node-linux-x64/bin ln -sf /usr/bin/node third_party/node/linux/node-linux-x64/bin/ # rollup wasm rm -rv third_party/devtools-frontend/src/node_modules/rollup mkdir third_party/devtools-frontend/src/node_modules/rollup tar xf `match_source_file -p wasm-node` --strip-components=1 -C third_party/devtools-frontend/src/node_modules/rollup # system esbuild rm -vf third_party/devtools-frontend/src/third_party/esbuild/esbuild ln -sv $(pkgprefix bindir esbuild)/esbuild third_party/devtools-frontend/src/third_party/esbuild/esbuild rm -rv third_party/devtools-frontend/src/node_modules/esbuild ln -sv $(pkgprefix libdir esbuild)/node_modules/esbuild third_party/devtools-frontend/src/node_modules/esbuild # system gperf rm -rv third_party/gperf/cipd/bin/gperf ln -sv $(pkgprefix bindir gperf)/gperf third_party/gperf/cipd/bin # allow system libs in official build sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ tools/generate_shim_headers/generate_shim_headers.py sed -i "s|T2_CLANG_INCLUDE_PATH|$CLANG_INCLUDE_PATH|" build/config/compiler/BUILD.gn # hack to force using the shim header files of tensorflow-text rm -Rf ./third_party/tflite/src/tensorflow/core/lib/core echo $arch_target >> build/rust/known-target-triples.txt gn gen out/bld --args="$(echo $chromium_flags)" } hook_add premake 1 chromium_premake chromium_inmake() { ninja -C out/bld chrome } hook_add inmake 1 chromium_inmake chromium_postmake() { cd ./out/bld mkdir -p $root/$prefix/bin mkdir -p $root/$prefix/lib install chrome -t $root/$prefix/lib install chrome_crashpad_handler -t $root/$prefix/lib install v8_context_snapshot.bin -t $root/$prefix/lib install libvulkan.so.1 -t $root/$prefix/lib install libEGL.so -t $root/$prefix/lib install libGLESv2.so -t $root/$prefix/lib pkginstalled qt6base && install libqt6_shim.so -t $root/$prefix/lib for size in 24 48 64 128 256; do install ../../chrome/app/theme/chromium/product_logo_$size.png -t $root/usr/share/icons/hicolor/${size}x$size/apps/chromium.png done for size in 16 32; do install ../../chrome/app/theme/default_100_percent/chromium/product_logo_$size.png -t $root/usr/share/icons/hicolor/${size}x$size/apps/chromium.png done sed -i \ -e 's/@@MENUNAME/Chromium/g' \ -e 's/@@PACKAGE/chromium/g' \ -e 's/@@usr_bin_symlink_name/chromium-browser/g' \ ../../chrome/app/resources/manpage.1.in \ ../../chrome/installer/linux/common/desktop.template install ../../chrome/installer/linux/common/desktop.template -t $root/usr/share/applications/chromium.desktop install ../../chrome/app/resources/manpage.1.in -t $root/usr/share/man/man1/chromium.1 ln -sfv ../lib/chrome $root/$prefix/bin/chromium-browser ln -sfv $root/$prefix/bin/chromium-browser $root/usr/bin/chromium-browser for pak in *.pak; do install "$pak" -t $root/$prefix/lib done mkdir -p $root/$prefix/lib/locales for pak in locales/*.pak; do install "$pak" -t $root/$prefix/lib/locales done for json in *.json; do install "$json" -t $root/$prefix/lib done } hook_add postmake 1 chromium_postmake