# Contributor: Carlo Landmeter # Maintainer: Natanael Copa pkgname=chromium pkgver=102.0.5005.182 pkgrel=0 pkgdesc="Chromium web browser" url="https://www.chromium.org/Home" arch="aarch64 x86_64" # x86: ./v8_context_snapshot_generator segfaults license="BSD-3-Clause" makedepends=" alsa-lib-dev bash bison flex bsd-compat-headers bzip2-dev cairo-dev clang-dev cups-dev curl-dev dbus-glib-dev elfutils elfutils-dev eudev-dev ffmpeg-dev findutils flac-dev freetype-dev gn gperf gtk+3.0-dev gzip harfbuzz-dev hunspell-dev hwids-usb java-jdk jpeg-dev jsoncpp-dev krb5-dev lcms2-dev libbsd-dev libcap-dev libevent-dev libexif-dev libgcrypt-dev libjpeg-turbo-dev libpng-dev libusb-dev libva-dev libwebp-dev libxcomposite-dev libxcursor-dev libxinerama-dev libxml2-dev libxrandr-dev libxscrnsaver-dev libxslt-dev linux-headers lld mesa-dev minizip-dev ninja nodejs nss-dev opus-dev pciutils-dev perl pipewire-dev pulseaudio-dev py3-httplib2 py3-parsing py3-setuptools py3-six python3 re2-dev snappy-dev speex-dev sqlite-dev tar xcb-proto xdg-utils zlib-dev " # explicit depends for --headless # XXX: eudev-libs replaced by so:libudev.so.1 to allow installation with libudev-zero # take care if libudev.so ever updates somajor.. depends="xdg-utils so:libudev.so.1 gtk+3.0 ttf-opensans" options="suid !check" # broken subpackages=" $pkgname-angle $pkgname-chromedriver $pkgname-doc $pkgname-lang $pkgname-swiftshader " source="https://dev.alpinelinux.org/archive/chromium/chromium-$pkgver.tar.xz test_fonts-cd96fc55dc243f6c6f4cb63ad117cad6cd48dceb.tar.gz::https://chromium-fonts.storage.googleapis.com/cd96fc55dc243f6c6f4cb63ad117cad6cd48dceb chromium-launcher.sh chromium.conf google-api.keys default-pthread-stacksize.patch musl-fixes.patch no-getcontext.patch musl-hacks.patch musl-libc++.patch musl-sandbox.patch no-execinfo.patch no-mallinfo.patch resolver.patch musl-stat.patch chromium-use-alpine-target.patch media-base.patch musl-crashpad.patch musl-v8-monotonic-pthread-cont_timedwait.patch nasm.patch elf-arm.patch fix-narrowing-cast.patch fix-unittests-sandbox.patch chromium-revert-drop-of-system-java.patch scoped-file.patch remove-strip_binary.patch gdbinit.patch quiche-arena-size.patch revert-use-ffile-compilation-dir.patch chromium-VirtualCursor-standard-layout.patch credentials-header.patch musl-tid-caching.patch memory-tagging-arm64.patch libxml-unbundle.patch fix-missing-cstdint-include-musl.patch iwyu-add-utility-for-std-exchange.patch roll-src-third_party-ffmpeg.patch remove-no-opaque-pointers-flag.patch chromium-102-fenced_frame_utils-include.patch chromium-102-regex_pattern-array.patch " # secfixes: # 102.0.5005.61-r0: # - CVE-2022-1853 # - CVE-2022-1854 # - CVE-2022-1855 # - CVE-2022-1856 # - CVE-2022-1857 # - CVE-2022-1858 # - CVE-2022-1859 # - CVE-2022-1860 # - CVE-2022-1861 # - CVE-2022-1862 # - CVE-2022-1863 # - CVE-2022-1864 # - CVE-2022-1865 # - CVE-2022-1866 # - CVE-2022-1867 # - CVE-2022-1868 # - CVE-2022-1869 # - CVE-2022-1870 # - CVE-2022-1871 # - CVE-2022-1872 # - CVE-2022-1873 # - CVE-2022-1874 # - CVE-2022-1875 # - CVE-2022-1876 # 101.0.4951.64-r0: # - CVE-2022-1633 # - CVE-2022-1634 # - CVE-2022-1635 # - CVE-2022-1636 # - CVE-2022-1637 # - CVE-2022-1638 # - CVE-2022-1639 # - CVE-2022-1640 # - CVE-2022-1641 # 101.0.4951.54-r0: # - CVE-2022-1477 # - CVE-2022-1478 # - CVE-2022-1479 # - CVE-2022-1481 # - CVE-2022-1482 # - CVE-2022-1483 # - CVE-2022-1484 # - CVE-2022-1485 # - CVE-2022-1486 # - CVE-2022-1487 # - CVE-2022-1488 # - CVE-2022-1489 # - CVE-2022-1490 # - CVE-2022-1491 # - CVE-2022-1492 # - CVE-2022-1493 # - CVE-2022-1494 # - CVE-2022-1495 # - CVE-2022-1496 # - CVE-2022-1497 # - CVE-2022-1498 # - CVE-2022-1499 # - CVE-2022-1500 # - CVE-2022-1501 # 100.0.4896.127-r0: # - CVE-2022-1364 # 99.0.4844.84-r0: # - CVE-2022-1096 # 98.0.4758.102-r0: # - CVE-2022-0452 # - CVE-2022-0453 # - CVE-2022-0454 # - CVE-2022-0455 # - CVE-2022-0456 # - CVE-2022-0457 # - CVE-2022-0458 # - CVE-2022-0459 # - CVE-2022-0460 # - CVE-2022-0461 # - CVE-2022-0462 # - CVE-2022-0463 # - CVE-2022-0464 # - CVE-2022-0465 # - CVE-2022-0466 # - CVE-2022-0467 # - CVE-2022-0468 # - CVE-2022-0469 # - CVE-2022-0470 # - CVE-2022-0603 # - CVE-2022-0604 # - CVE-2022-0605 # - CVE-2022-0606 # - CVE-2022-0607 # - CVE-2022-0608 # - CVE-2022-0609 # - CVE-2022-0610 # 93.0.4577.82-r0: # - CVE-2021-30625 # - CVE-2021-30626 # - CVE-2021-30627 # - CVE-2021-30628 # - CVE-2021-30629 # - CVE-2021-30630 # - CVE-2021-30631 # - CVE-2021-30632 # - CVE-2021-30633 # 93.0.4577.63-r0: # - CVE-2021-30606 # - CVE-2021-30607 # - CVE-2021-30608 # - CVE-2021-30609 # - CVE-2021-30610 # - CVE-2021-30611 # - CVE-2021-30612 # - CVE-2021-30613 # - CVE-2021-30614 # - CVE-2021-30615 # - CVE-2021-30616 # - CVE-2021-30617 # - CVE-2021-30618 # - CVE-2021-30619 # - CVE-2021-30620 # - CVE-2021-30621 # - CVE-2021-30622 # - CVE-2021-30623 # - CVE-2021-30624 # 92.0.4515.159-r0: # - CVE-2021-30598 # - CVE-2021-30599 # - CVE-2021-30600 # - CVE-2021-30601 # - CVE-2021-30602 # - CVE-2021-30603 # - CVE-2021-30604 # - CVE-2021-30590 # - CVE-2021-30591 # - CVE-2021-30592 # - CVE-2021-30593 # - CVE-2021-30594 # - CVE-2021-30596 # - CVE-2021-30597 # 92.0.4515.107-r0: # - CVE-2021-30565 # - CVE-2021-30566 # - CVE-2021-30567 # - CVE-2021-30568 # - CVE-2021-30569 # - CVE-2021-30571 # - CVE-2021-30572 # - CVE-2021-30573 # - CVE-2021-30574 # - CVE-2021-30575 # - CVE-2021-30576 # - CVE-2021-30577 # - CVE-2021-30578 # - CVE-2021-30579 # - CVE-2021-30580 # - CVE-2021-30581 # - CVE-2021-30582 # - CVE-2021-30583 # - CVE-2021-30584 # - CVE-2021-30585 # - CVE-2021-30586 # - CVE-2021-30587 # - CVE-2021-30588 # - CVE-2021-30589 # 91.0.4472.164-r0: # - CVE-2021-30559 # - CVE-2021-30541 # - CVE-2021-30560 # - CVE-2021-30561 # - CVE-2021-30562 # - CVE-2021-30563 # - CVE-2021-30564 # 91.0.4472.114-r0: # - CVE-2021-30554 # - CVE-2021-30555 # - CVE-2021-30556 # - CVE-2021-30557 # 91.0.4472.101-r0: # - CVE-2021-30544 # - CVE-2021-30545 # - CVE-2021-30546 # - CVE-2021-30547 # - CVE-2021-30548 # - CVE-2021-30549 # - CVE-2021-30550 # - CVE-2021-30551 # - CVE-2021-30552 # - CVE-2021-30553 # 91.0.4472.77-r0: # - CVE-2021-30521 # - CVE-2021-30522 # - CVE-2021-30523 # - CVE-2021-30524 # - CVE-2021-30525 # - CVE-2021-30526 # - CVE-2021-30527 # - CVE-2021-30528 # - CVE-2021-30529 # - CVE-2021-30530 # - CVE-2021-30531 # - CVE-2021-30532 # - CVE-2021-30533 # - CVE-2021-30534 # - CVE-2021-30535 # - CVE-2021-30536 # - CVE-2021-30537 # - CVE-2021-30538 # - CVE-2021-30539 # - CVE-2021-30540 # 90.0.4430.72-r0: # - CVE-2021-21201 # - CVE-2021-21202 # - CVE-2021-21203 # - CVE-2021-21204 # - CVE-2021-21205 # - CVE-2021-21221 # - CVE-2021-21207 # - CVE-2021-21208 # - CVE-2021-21209 # - CVE-2021-21210 # - CVE-2021-21211 # - CVE-2021-21212 # - CVE-2021-21213 # - CVE-2021-21214 # - CVE-2021-21215 # - CVE-2021-21216 # - CVE-2021-21217 # - CVE-2021-21218 # - CVE-2021-21219 # 89.0.4389.128-r0: # - CVE-2021-21206 # - CVE-2021-21220 # 89.0.4389.114-r0: # - CVE-2021-21194 # - CVE-2021-21195 # - CVE-2021-21196 # - CVE-2021-21197 # - CVE-2021-21198 # - CVE-2021-21199 # 89.0.4389.90-r0: # - CVE-2021-21191 # - CVE-2021-21192 # - CVE-2021-21193 # 89.0.4389.72-r0: # - CVE-2021-21158 # - CVE-2021-21159 # - CVE-2021-21160 # - CVE-2021-21161 # - CVE-2021-21162 # - CVE-2021-21163 # - CVE-2021-21164 # - CVE-2021-21165 # - CVE-2021-21166 # - CVE-2021-21167 # - CVE-2021-21168 # - CVE-2021-21169 # - CVE-2021-21170 # - CVE-2021-21171 # - CVE-2021-21172 # - CVE-2021-21173 # - CVE-2021-21174 # - CVE-2021-21175 # - CVE-2021-21176 # - CVE-2021-21177 # - CVE-2021-21178 # - CVE-2021-21179 # - CVE-2021-21180 # - CVE-2020-27844 # - CVE-2021-21181 # - CVE-2021-21182 # - CVE-2021-21183 # - CVE-2021-21184 # - CVE-2021-21185 # - CVE-2021-21186 # - CVE-2021-21187 # - CVE-2021-21188 # - CVE-2021-21189 # - CVE-2021-21190 # 83.0.4103.116-r0: # - CVE-2020-6505 # - CVE-2020-6506 # - CVE-2020-6507 # - CVE-2020-6509 # 72.0.3626.121-r0: # - CVE-2019-5786 # chromium does not publish tarballs for non-latest releases, so to support a # non-latest branch, we must make snapshot tarballs ourselves. snapshot() { mkdir -p "$srcdir" cd "$srcdir" export PATH="$PATH:$srcdir/depot_tools" export DEPOT_TOOLS_UPDATE=0 export VPYTHON_BYPASS="manually managed python not supported by chrome operations" local depot_tools_ver=9b9f451addeb3ad230e9385d5e2c20cd1632c491 ( git clone --depth 1 -b main https://chromium.googlesource.com/chromium/tools/depot_tools.git cd depot_tools git fetch --depth 1 origin $depot_tools_ver git checkout $depot_tools_ver ) echo 'solutions = [ { "name": "src", "url": "https://chromium.googlesource.com/chromium/src.git", "managed": False, "custom_deps": {}, "custom_vars": {}, } ]' > .gclient git clone -b $pkgver --depth 1 https://chromium.googlesource.com/chromium/src gclient sync --no-history --nohooks python3 src/build/util/lastchange.py -o src/build/util/LASTCHANGE python3 src/build/util/lastchange.py -m SKIA_COMMIT_HASH \ -s src/third_party/skia --header src/skia/ext/skia_commit_hash.h python3 src/build/util/lastchange.py -m GPU_LISTS_VERSION \ --revision-id-only --header src/gpu/config/gpu_lists_version.h python3 src/tools/update_pgo_profiles.py --target=linux update \ --gs-url-base=chromium-optimization-profiles/pgo_profiles python3 depot_tools/download_from_google_storage.py --no_resume --extract --no_auth \ --bucket chromium-nodejs -s src/third_party/node/node_modules.tar.gz.sha1 mv src $pkgname-$pkgver for elf in $(scanelf -RA -F "%F" $pkgname-$pkgver); do rm -f "$elf" done msg "generating tarball.. (this takes a while)" tar -cf $pkgname-$pkgver.tar \ --exclude="ChangeLog*" \ --exclude="testdata/" \ --exclude="test_data/" \ --exclude="android_rust_toolchain/toolchain/" \ --exclude-backups \ --exclude-caches-all \ --exclude-vcs \ $pkgname-$pkgver xz -T0 -e -9 -vv -k $pkgname-$pkgver.tar } if [ -n "$CHECK" ]; then options="suid" fi _buildtype=Release if [ -n "$DEBUG" ]; then _symbol_level=2 subpackages="$subpackages $pkgname-dbg" else _symbol_level=0 fi upstream_version() { curl --silent https://omahaproxy.appspot.com/all \ | awk -F, '$1 == "linux" && $2 == "stable" {print $3}' } prepare() { default_prepare cd "$srcdir"/"chromium-$pkgver" mv ../test_fonts/ ./third_party/test_fonts/ # https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/9JX1N2nf4PU/discussion touch chrome/test/data/webui/i18n_process_css_test.html # Use the file at run time instead of effectively compiling it in sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \ -i services/device/public/cpp/usb/BUILD.gn mkdir -p third_party/node/linux/node-linux-x64/bin ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/ # reusable system library settings local use_system=" ffmpeg flac fontconfig freetype harfbuzz-ng icu libdrm libevent libjpeg libpng libwebp libxml libxslt opus re2 snappy zlib " for _lib in $use_system libjpeg_turbo; do msg "Removing buildscripts for system provided $_lib" find . -type f -path "*third_party/$_lib/*" \ \! -path "*third_party/$_lib/chromium/*" \ \! -path "*third_party/$_lib/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 msg "Replacing gn files" python3 build/linux/unbundle/replace_gn_files.py --system-libraries \ $use_system python3 third_party/libaddressinput/chromium/tools/update-strings.py # prevent annoying errors when regenerating gni sed -i 's,^update_readme$,#update_readme,' \ third_party/libvpx/generate_gni.sh # allow system dependencies in "official builds" sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ tools/generate_shim_headers/generate_shim_headers.py } _gn_flags() { echo "$@" } build() { ############################################################## # Please dont use these keys outside of Alpine Linux project # # You can create your own at: # # http://www.chromium.org/developers/how-tos/api-keys # ############################################################## local _google_api_key _google_default_client_id _google_default_client_secret eval "$(base64 -d < $srcdir/google-api.keys)" # silence really annoying warning on every compiler invocation, reproducible extras export CFLAGS="$CFLAGS -O2 -Wno-unknown-warning-option -Wno-builtin-macro-redefined" export CXXFLAGS="$CXXFLAGS -O2 -Wno-unknown-warning-option -Wno-builtin-macro-redefined" export CPPFLAGS="$CPPFLAGS -D__DATE__= -D__TIME__= -D__TIMESTAMP__=" msg "Configuring build" local _c _ca _c=$(_gn_flags \ blink_symbol_level=$_symbol_level \ build_with_tflite_lib=false \ chrome_pgo_phase=0 \ clang_use_chrome_plugins=false \ custom_toolchain=\"//build/toolchain/linux/unbundle:default\" \ disable_fieldtrial_testing_config=true \ enable_hangout_services_extension=true \ enable_nacl=false \ enable_precompiled_headers=false \ enable_vr=false \ fatal_linker_warnings=false \ ffmpeg_branding=\"Chrome\" \ gold_path=\"/usr/bin/ld.gold\" \ google_api_key=\"$_google_api_key\" \ google_default_client_id=\"$_google_default_client_id\" \ google_default_client_secret=\"$_google_default_client_secret\" \ host_toolchain=\"//build/toolchain/linux/unbundle:default\" \ icu_use_data_file=true \ is_cfi=false \ is_clang=true \ is_component_build=false \ if_component_ffmpeg=false \ is_debug=false \ is_official_build=true\ link_pulseaudio=true \ proprietary_codecs=true \ rtc_use_pipewire=true \ symbol_level=$_symbol_level \ treat_warnings_as_errors=false \ use_allocator=\"none\" \ use_allocator_shim=false \ use_cfi_icall=false \ use_cups=true \ use_custom_libcxx=false \ use_gnome_keyring=false \ use_gold=false \ use_lld=true \ use_pulseaudio=true \ use_sysroot=false \ use_system_freetype=true \ use_system_harfbuzz=true \ use_system_lcms2=true \ use_system_libdrm=true \ use_system_libjpeg=true \ use_system_libpng=true \ use_system_zlib=true \ use_thin_lto=false \ ) case $CARCH in x86*|aarch64) _ca="use_vaapi=true" ;; *) _ca="concurrent_links=1" ;; esac AR="ar" CC="clang" CXX="clang++" LD="clang++" NM=/usr/bin/nm \ gn gen out/$_buildtype --args="$_c $_ca" # Make xcbgen available to ui/gfx/x/gen_xproto.py running under Python 2 ln -sf /usr/lib/python3.*/site-packages/xcbgen . export PYTHONPATH="$PWD" msg "Ninja turtles GO!" # final link needs lots of file descriptors ulimit -n 4096 # finish rest of the build ninja -C out/$_buildtype chrome chrome_sandbox chromedriver chrome_crashpad_handler if [ -n "$CHECK" ]; then ninja -C out/$_buildtype \ base_unittests \ base_util_unittests \ sandbox_linux_unittests \ chromedriver_unittests \ crypto_unittests \ skia_unittests \ blink_common_unittests \ ozone_unittests \ ozone_x11_unittests \ ozone_gl_unittests \ absl_hardening_tests \ # angle_unittests \ blink_heap_unittests \ # blink_platform_unittests \ boringssl_crypto_tests \ boringssl_ssl_tests \ cast_unittests \ capture_unittests \ # components_browsertests \ # components_unittests \ # content_browsertests \ # content_unittests \ # crashpad_tests \ events_unittests \ gcm_unit_tests \ gin_unittests \ google_apis_unittests \ gpu_unittests \ gwp_asan_unittests \ ipc_tests \ jingle_unittests \ latency_unittests \ libjingle_xmpp_unittests \ liburlpattern_unittests \ media_blink_unittests \ media_unittests \ midi_unittests \ mojo_unittests \ net_unittests \ # cc_unittests \ # blink_unittests \ perfetto_unittests \ # services_unittests \ shell_dialogs_unittests \ sql_unittests \ storage_unittests \ ui_base_unittests \ ui_touch_selection_unittests \ url_unittests \ # webkit_unit_tests \ wtf_unittests \ zlib_unittests fi } check() { out/$_buildtype/base_unittests out/$_buildtype/base_util_unittests out/$_buildtype/sandbox_linux_unittests # broken + does not compile out/$_buildtype/chromedriver_unittests out/$_buildtype/crypto_unittests out/$_buildtype/skia_unittests out/$_buildtype/ozone_unittests out/$_buildtype/ozone_x11_unittests # ? out/$_buildtype/ozone_gl_unittests # broken out/$_buildtype/absl_hardening_tests # out/$_buildtype/angle_unittests # broken / does not compile out/$_buildtype/blink_common_unittests out/$_buildtype/blink_heap_unittests # out/$_buildtype/blink_platform_unittests # broken / does not compile out/$_buildtype/boringssl_crypto_tests out/$_buildtype/boringssl_ssl_tests out/$_buildtype/cast_unittests out/$_buildtype/capture_unittests --gtest_filter=-*UsingRealWebcam* # broken # out/$_buildtype/components_browsertests # broken / does not compile # out/$_buildtype/components_unittests # broken / does not compile # out/$_buildtype/content_browsertests # broken / does not compile # out/$_buildtype/content_unittests # broken / does not compile # out/$_buildtype/crashpad_tests # broken / does not compile out/$_buildtype/events_unittests out/$_buildtype/gcm_unit_tests out/$_buildtype/gin_unittests # ? out/$_buildtype/google_apis_unittests out/$_buildtype/gpu_unittests out/$_buildtype/gwp_asan_unittests # broken / required? out/$_buildtype/ipc_tests out/$_buildtype/jingle_unittests out/$_buildtype/latency_unittests out/$_buildtype/libjingle_xmpp_unittests out/$_buildtype/liburlpattern_unittests out/$_buildtype/media_blink_unittests # broken out/$_buildtype/media_unittests # broken out/$_buildtype/midi_unittests out/$_buildtype/mojo_unittests out/$_buildtype/net_unittests # broken # out/$_buildtype/cc_unittests # broken / does not compile # out/$_buildtype/blink_unittests # broken / does not compile out/$_buildtype/perfetto_unittests # ? # out/$_buildtype/services_unittests # broken / does not compile out/$_buildtype/shell_dialogs_unittests out/$_buildtype/sql_unittests out/$_buildtype/storage_unittests out/$_buildtype/ui_base_unittests # ok out/$_buildtype/ui_touch_selection_unittests out/$_buildtype/url_unittests # out/$_buildtype/webkit_unit_tests # broken / does not compile out/$_buildtype/wtf_unittests out/$_buildtype/zlib_unittests } package() { cd "$builddir"/out/$_buildtype # binaries install -Dm755 chrome "$pkgdir"/usr/lib/$pkgname/chrome install -Dm4755 chrome_sandbox "$pkgdir"/usr/lib/$pkgname/chrome-sandbox install -Dm755 chrome_crashpad_handler "$pkgdir"/usr/lib/$pkgname/chrome_crashpad_handler # resources install -Dm644 snapshot_blob.bin "$pkgdir"/usr/lib/$pkgname/ install -Dm644 v8_context_snapshot.bin "$pkgdir"/usr/lib/$pkgname/ if [ -f icudtl.dat ]; then install -Dm644 icudtl.dat -t "$pkgdir"/usr/lib/$pkgname/ fi install -Dm755 xdg-mime "$pkgdir"/usr/lib/$pkgname/xdg-mime install -Dm755 xdg-settings "$pkgdir"/usr/lib/$pkgname/xdg-settings # Vulkan install -Dm755 libvulkan.so.1 "$pkgdir"/usr/lib/$pkgname/libvulkan.so.1 # Angle install -Dm755 libEGL.so "$pkgdir"/usr/lib/$pkgname/libEGL.so install -Dm755 libGLESv2.so "$pkgdir"/usr/lib/$pkgname/libGLESv2.so local pak for pak in *.pak; do install -Dm644 $pak "$pkgdir"/usr/lib/$pkgname/$pak done install -Dm755 "$srcdir"/chromium-launcher.sh \ "$pkgdir"/usr/lib/$pkgname/chromium-launcher.sh cp -a MEIPreload "$pkgdir"/usr/lib/$pkgname/ # Default to en-us and provide everything else through the chromium-lang package install -Dm644 locales/en-US.pak "$pkgdir"/usr/lib/$pkgname/locales/en-US.pak # It is important that we name the target "chromium-browser", # xdg-utils expect it; bug https://bugs.gentoo.org/355517 mkdir -p "$pkgdir"/usr/bin ln -sf /usr/lib/$pkgname/chromium-launcher.sh "$pkgdir"/usr/bin/chromium-browser install -Dm644 "$srcdir"/chromium.conf \ "$pkgdir"/etc/chromium/chromium.conf cd "$builddir" for size in 24 48 64 128 256; do install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \ "$pkgdir/usr/share/icons/hicolor/${size}x$size/apps/chromium.png" done for size in 16 32; do install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \ "$pkgdir/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 sed -ni \ -e 's/chromium-browser\.desktop/chromium.desktop/' \ -e '//d' \ -e '/

/N;/

\n.*\(We invite\|Chromium supports Vorbis\)/,/<\/p>/d' \ -e '/^