# Description: Open source version of Google Chrome web browser. # URL: http://chromium.org/ # Maintainer: CRUX System Team, core-ports at crux dot nu # Depends on: dbus-glib gperf gtk gtk3 libevent libexif libgcrypt ninja nodejs nss pciutils speech-dispatcher xorg-libxscrnsaver xorg-libxt yasm name=chromium version=64.0.3282.140 release=1 source=(https://commondatastorage.googleapis.com/$name-browser-official/$name-$version.tar.xz last-commit-position.patch $name.sh chromium-64.0.3282.119-constexpr-1.patch chromium-use-fromUTF8-for-UnicodeString-construction.patch chromium-omnibox-unescape-fragment.patch chromium-skia-harmony.patch chromium-memcpy-r0.patch chromium-clang-r2.patch chromium-cups-r0.patch) build() { cd $name-$version if [ -n "$(pkginfo -i | grep '^ccache ')" ]; then # Avoid falling back to preprocessor mode when sources contain time macros export CCACHE_SLOPPINESS=time_macros fi export CFLAGS="$CFLAGS $(pkg-config --cflags nspr)" export LDFLAGS="$LDFLAGS $(pkg-config --libs nspr)" # we don't use git sources patch -p1 -i $SRC/last-commit-position.patch # Corrects error call to non-constexpr function patch -p1 -i $SRC/chromium-64.0.3282.119-constexpr-1.patch wget https://chromium.googlesource.com/chromium/src.git/+/$version?format=TEXT -O ../chromium-$version.txt # https://crbug.com/710701 local _chrome_build_hash=$(base64 -d ../chromium-$version.txt | grep -Po '^parent \K[0-9a-f]{40}$') if [[ -z $_chrome_build_hash ]]; then error "Unable to find Chrome build hash." return 1 fi echo "LASTCHANGE=$_chrome_build_hash-" >build/util/LASTCHANGE # https://chromium-review.googlesource.com/c/chromium/src/+/712575 # _flags+=('exclude_unwind_tables=true') CFLAGS+=' -fno-unwind-tables -fno-asynchronous-unwind-tables' CXXFLAGS+=' -fno-unwind-tables -fno-asynchronous-unwind-tables' CPPFLAGS+=' -DNO_UNWIND_TABLES' # https://crbug.com/772655 patch -p1 -i $SRC/chromium-use-fromUTF8-for-UnicodeString-construction.patch # https://crbug.com/789163 patch -p1 -i $SRC/chromium-omnibox-unescape-fragment.patch # https://crbug.com/skia/6663#c10 patch -p4 -i $SRC/chromium-skia-harmony.patch # Fixes from Gentoo patch -p1 -i $SRC/chromium-memcpy-r0.patch patch -p1 -i $SRC/chromium-clang-r2.patch patch -p1 -i $SRC/chromium-cups-r0.patch mkdir -p third_party/node/linux/node-linux-x64/bin ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/ local LIB for LIB in libjpeg libjpeg_turbo yasm; do 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/yasm/run_yasm.py' \ \! -regex '.*\.\(gn\|gni\|isolate\)' \ \! -path './third_party/freetype/src/src/psnames/pstables.h' \ -delete done /usr/bin/python2 build/linux/unbundle/replace_gn_files.py \ --system-libraries libjpeg libxml libevent yasm /usr/bin/python2 third_party/libaddressinput/chromium/tools/update-strings.py _gn_args=( 'blink_gc_plugin=false' 'clang_use_chrome_plugins=false' 'enable_hangout_services_extension=true' 'enable_nacl=false' 'enable_swiftshader=false' 'fatal_linker_warnings=false' 'ffmpeg_branding="Chrome"' 'is_clang=false' 'is_debug=false' 'linux_use_bundled_binutils=false' 'use_custom_libcxx=false' 'proprietary_codecs=true' 'remove_webcore_debug_symbols=true' 'symbol_level=0' 'treat_warnings_as_errors=false' 'use_allocator="none"' 'use_cups=false' 'use_gconf=false' 'use_gnome_keyring=false' 'use_gold=false' 'use_kerberos=false' 'use_pulseaudio=false' 'use_sysroot=false' ) /usr/bin/python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args="${_gn_args[*]}" out/Release/gn gen out/Release --args="${_gn_args[*]}" --script-executable=/usr/bin/python2 ninja -j ${JOBS-1} -C out/Release chrome chrome_sandbox install -m 0755 -D out/Release/chrome $PKG/usr/lib/$name/$name install -m 4755 -o root -g root -D out/Release/chrome_sandbox $PKG/usr/lib/$name/chrome-sandbox install -m 0644 -D out/Release/*.pak $PKG/usr/lib/$name install -d $PKG/usr/lib/$name/locales install -m 0644 out/Release/locales/en-US.pak $PKG/usr/lib/$name/locales cp -a out/Release/resources $PKG/usr/lib/$name install -m 0644 -D chrome/installer/linux/common/desktop.template $PKG/usr/share/applications/$name.desktop install -m 0644 -D chrome/app/resources/manpage.1.in $PKG/usr/share/man/man1/$name.1 sed -i \ -e "s/@@MENUNAME@@/Chromium/g" \ -e "s/@@PACKAGE@@/chromium/g" \ -e "s/@@USR_BIN_SYMLINK_NAME@@/chromium/g" \ $PKG/usr/share/applications/$name.desktop \ $PKG/usr/share/man/man1/$name.1 # fix v8 natives cp -a out/Release/{natives,snapshot}_blob.bin $PKG/usr/lib/$name for size in 16 32; do install -m 0644 -D chrome/app/theme/default_100_percent/$name/product_logo_${size}.png \ $PKG/usr/share/icons/hicolor/${size}x${size}/apps/$name.png done for size in 22 24 48 64 128 256; do install -m 0644 -D chrome/app/theme/$name/product_logo_${size}.png \ $PKG/usr/share/icons/hicolor/${size}x${size}/apps/$name.png done # fix icu installation install -m 0644 -D out/Release/icudtl.dat $PKG/usr/lib/$name/icudtl.dat install -m 0755 -D $SRC/$name.sh $PKG/usr/bin/$name }