forked from hasufell/hasufell-repository
632 lines
21 KiB
Bash
632 lines
21 KiB
Bash
# Copyright 2009, 2010 Elias Pipping <pipping@exherbo.org>
|
|
# Copyright 2009 Heiko Przybyl <zuxez@cs.tu-berlin.de>
|
|
# Copyright 2016-2017 Timo Gurr <tgurr@exherbo.org>
|
|
# Copyright 2016-2017 Julian Ospald <hasufell@posteo.de>
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
# You'll find new releases here:
|
|
# - http://omahaproxy.appspot.com/viewer
|
|
# - http://googlechromereleases.blogspot.com
|
|
|
|
CHROMIUM_CHANNEL=stable
|
|
|
|
MY_PN=chromium
|
|
MY_PNV=${MY_PN}-${PV}
|
|
|
|
require freedesktop-desktop gtk-icon-cache python [ has_lib=false ] toolchain-funcs flag-o-matic
|
|
|
|
myexparam patchset=
|
|
|
|
exparam -v PATCHSET patchset
|
|
|
|
if [[ -z $(exparam patchset) ]]; then
|
|
die "patchset exparam needs to be set!"
|
|
fi
|
|
|
|
export_exlib_phases pkg_setup src_prepare src_configure src_compile src_test src_install pkg_postinst pkg_postrm
|
|
|
|
SUMMARY="Privacy enhanced Google Chrome"
|
|
DESCRIPTION="Inox patchset tries to provide a minimal Chromium based browser
|
|
with focus on privacy by disabling data transmission to Google."
|
|
HOMEPAGE="https://www.chromium.org/Home https://github.com/gcarq/inox-patchset"
|
|
DOWNLOADS="
|
|
https://storage.googleapis.com/chromium-browser-official/${MY_PNV}.tar.xz
|
|
https://gsdview.appspot.com/chromium-browser-official/${MY_PNV}.tar.xz
|
|
https://github.com/gcarq/inox-patchset/archive/${PATCHSET}.tar.gz -> inox-patches-${PATCHSET}.tar.gz
|
|
"
|
|
|
|
LICENCES="
|
|
BSD-3 [[ note = [ chromium itself ] ]]
|
|
Apache-2.0 [[ note = [ skia ] ]]
|
|
BSD-2 [[ note = [ bsdiff, bspatch ] ]]
|
|
BSD-3 [[ note = [ dtoa, jscre, modp_b64, v8, webkit ] ]]
|
|
GPL-2 [[ note = [ hunspell, 'Mozilla interface to Java Plugin APIs', npapi, nspr, nss ] ]]
|
|
LGPL-2 [[ note = [ webkit ] ]]
|
|
LGPL-2.1 [[ note = [ ffmpeg, hunspell, 'Mozilla interface to Java Plugin APIs', npapi, nspr,
|
|
nss, webkit ] ]]
|
|
MPL-1.1 [[ note = [ hunspell, 'Mozilla interface to Java Plugin APIs', npapi, nspr, nss ] ]]
|
|
MIT [[ note = [ harfbuzz ] ]]
|
|
public-domain [[ note = [ lzma_sdk, sqlite ] ]]
|
|
GPL-3 [[ note = [ inox patchset ] ]]
|
|
"
|
|
SLOT="0"
|
|
MYOPTIONS="
|
|
bindist
|
|
cups
|
|
keyring [[ description = [ Store passwords using GNOME Keyring ] ]]
|
|
pulseaudio
|
|
suid-sandbox [[ description = [ Enable Chromium's SUID sandbox, only necessary for
|
|
kernels built without user namespaces ] ]]
|
|
platform:
|
|
amd64
|
|
x86
|
|
x86_cpu_features:
|
|
sse2
|
|
( providers: jpeg-turbo )
|
|
( providers: eudev systemd ) [[ number-selected = exactly-one ]]
|
|
"
|
|
|
|
# http://crbug.com/62803 tracks the addition of a use_openssl option. Once that bug is closed,
|
|
# use_openssl=1 can be passed; dev-libs/{nss,nspr} will no longer be needed. Note that that flag
|
|
# currently does not use system openssl but a bundled version from third_party/openssl!
|
|
# There is use_system_ssl for that
|
|
|
|
# TODO: GN build with system speech dispatcher and libevent
|
|
# app-speech/speechd[>=0.8]
|
|
# dev-libs/icu:=
|
|
# dev-libs/libevent[>=1.4.13]
|
|
# dev-libs/libxml2:2.0[>=2.6.32]
|
|
# media-libs/libvpx[>=1.6.0-r1]
|
|
# media-libs/openh264[>=1.6.0] ( once it's written )
|
|
DEPENDENCIES="
|
|
build:
|
|
dev-lang/node
|
|
dev-lang/python:*[>=2.5&<3]
|
|
dev-lang/yasm
|
|
dev-perl/Switch
|
|
dev-python/beautifulsoup4[python_abis:2.7]
|
|
dev-python/html5lib[python_abis:2.7]
|
|
dev-python/simplejson[python_abis:2.7]
|
|
dev-scm/git [[ note = [ https://bugs.gentoo.org/show_bug.cgi?id=593476 ] ]]
|
|
dev-util/gperf[>=3.0.4]
|
|
sys-devel/bison
|
|
sys-devel/ninja[>=1.7.2]
|
|
build+run:
|
|
app-arch/gzip[>=1.8]
|
|
app-arch/snappy
|
|
dev-libs/atk
|
|
dev-libs/dbus-glib:1[>=0.84]
|
|
dev-libs/expat
|
|
dev-libs/glib:2[>=2.26] [[ note = [ for gsettings ] ]]
|
|
dev-libs/libxslt[>=1.1.26]
|
|
dev-libs/nspr[>=4.0]
|
|
dev-libs/nss[>=3.12.3] [[ note = [ see base/nss_util.cc for the version requirement ] ]]
|
|
media-libs/flac
|
|
media-libs/fontconfig
|
|
media-libs/freetype:2
|
|
media-libs/libpng:=[>=1.2.37]
|
|
media-libs/libwebp:=[>=0.6.0-r1]
|
|
media-libs/opus[>=1.1-r1]
|
|
net-libs/libsrtp
|
|
sys-apps/dbus
|
|
sys-apps/pciutils
|
|
sys-libs/zlib[>=1.2.7-r1]
|
|
sys-sound/alsa-lib
|
|
virtual/usb:1
|
|
x11-dri/libdrm
|
|
x11-libs/cairo[X]
|
|
x11-libs/gdk-pixbuf:2.0
|
|
x11-libs/harfbuzz[>=1.4.2]
|
|
x11-libs/libva
|
|
x11-libs/libX11
|
|
x11-libs/libxcb
|
|
x11-libs/libXScrnSaver
|
|
x11-libs/libXcomposite
|
|
x11-libs/libXcursor
|
|
x11-libs/libXdamage
|
|
x11-libs/libXext
|
|
x11-libs/libXfixes
|
|
x11-libs/libXi
|
|
x11-libs/libXrandr
|
|
x11-libs/libXrender
|
|
x11-libs/libXtst
|
|
x11-libs/pango
|
|
cups? (
|
|
dev-libs/libgcrypt
|
|
net-print/cups
|
|
)
|
|
keyring? ( gnome-desktop/libgnome-keyring:1 )
|
|
providers:eudev? ( sys-apps/eudev )
|
|
providers:jpeg-turbo? ( media-libs/libjpeg-turbo )
|
|
providers:systemd? ( sys-apps/systemd )
|
|
pulseaudio? ( media-sound/pulseaudio )
|
|
run:
|
|
x11-libs/gtk+:3
|
|
cups? ( x11-libs/gtk+:3[cups] )
|
|
recommendation:
|
|
fonts/corefonts [[ description = [ Needed to display some websites ] ]]
|
|
x11-apps/xdg-utils [[ description = [ Set as default browser. Use application launchers for downloaded files (only for Gnome/KDE/Xfce) ] ]]
|
|
suggestion:
|
|
gnome-desktop/adwaita-icon-theme [[ description = [ For the downloads tab ] ]]
|
|
"
|
|
|
|
WORK=${WORKBASE}/${MY_PNV}
|
|
|
|
DEFAULT_SRC_COMPILE_PARAMS=( chrome chrome_sandbox )
|
|
|
|
cxx_is_gxx() {
|
|
[[ ${CXX} == *g++* ]] && [[ ${CXX} != *clang* ]]
|
|
}
|
|
|
|
eninja() {
|
|
edo ninja -j ${EXJOBS:-1} -v "$@"
|
|
}
|
|
|
|
inox_pkg_setup() {
|
|
export V=1
|
|
|
|
# For ffmpeg's linking
|
|
export LD="${CXX}"
|
|
|
|
exdirectory --allow /opt
|
|
}
|
|
|
|
inox_src_prepare() {
|
|
# these ones are unneded and don't apply cleanly
|
|
edo rm "${WORKBASE}"/inox-patchset-${PATCHSET}/*launcher-branding.patch \
|
|
"${WORKBASE}"/inox-patchset-${PATCHSET}/chromium-glibc2.26-r1.patch
|
|
# fire up the inox patches
|
|
expatch "${WORKBASE}"/inox-patchset-${PATCHSET}/
|
|
|
|
default
|
|
|
|
# setup nodejs
|
|
edo mkdir -p third_party/node/linux/node-linux-x64/bin
|
|
edo ln -s /usr/host/bin/node third_party/node/linux/node-linux-x64/bin/node
|
|
|
|
local keeplibs=(
|
|
base/third_party/dmg_fp
|
|
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
|
|
breakpad/src/third_party/curl
|
|
chrome/third_party/mozilla_security_manager
|
|
courgette/third_party
|
|
net/third_party/mozilla_security_manager
|
|
net/third_party/nss
|
|
third_party/WebKit
|
|
third_party/analytics
|
|
third_party/angle
|
|
third_party/angle/src/common/third_party/base
|
|
third_party/angle/src/common/third_party/murmurhash
|
|
third_party/angle/src/third_party/compiler
|
|
third_party/angle/src/third_party/libXNVCtrl
|
|
third_party/angle/src/third_party/trace_event
|
|
third_party/boringssl
|
|
third_party/brotli
|
|
third_party/cacheinvalidation
|
|
third_party/catapult
|
|
third_party/catapult/third_party/polymer
|
|
third_party/catapult/third_party/py_vulcanize
|
|
third_party/catapult/third_party/py_vulcanize/third_party/rcssmin
|
|
third_party/catapult/third_party/py_vulcanize/third_party/rjsmin
|
|
third_party/catapult/tracing/third_party/d3
|
|
third_party/catapult/tracing/third_party/gl-matrix
|
|
third_party/catapult/tracing/third_party/jszip
|
|
third_party/catapult/tracing/third_party/mannwhitneyu
|
|
third_party/catapult/tracing/third_party/oboe
|
|
third_party/ced
|
|
third_party/cld_2
|
|
third_party/cld_3
|
|
third_party/cros_system_api
|
|
third_party/devscripts
|
|
third_party/dom_distiller_js
|
|
third_party/fips181
|
|
third_party/flatbuffers
|
|
third_party/flot
|
|
third_party/freetype
|
|
third_party/glslang-angle
|
|
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
|
|
third_party/jstemplate
|
|
third_party/khronos
|
|
third_party/leveldatabase
|
|
third_party/libXNVCtrl
|
|
third_party/libaddressinput
|
|
third_party/libjingle
|
|
third_party/libphonenumber
|
|
third_party/libsecret
|
|
third_party/libsrtp
|
|
third_party/libudev
|
|
third_party/libusb
|
|
third_party/libwebm
|
|
third_party/libxml
|
|
third_party/libyuv
|
|
third_party/lss
|
|
third_party/lzma_sdk
|
|
third_party/markupsafe
|
|
third_party/mesa
|
|
third_party/modp_b64
|
|
third_party/mt19937ar
|
|
third_party/node
|
|
third_party/node/node_modules/vulcanize/third_party/UglifyJS2
|
|
third_party/openh264
|
|
third_party/openmax_dl
|
|
third_party/ots
|
|
third_party/pdfium
|
|
third_party/pdfium/third_party/agg23
|
|
third_party/pdfium/third_party/base
|
|
third_party/pdfium/third_party/build
|
|
third_party/pdfium/third_party/bigint
|
|
third_party/pdfium/third_party/freetype
|
|
third_party/pdfium/third_party/lcms2-2.6
|
|
third_party/pdfium/third_party/libopenjpeg20
|
|
third_party/pdfium/third_party/libpng16
|
|
third_party/pdfium/third_party/libtiff
|
|
third_party/ply
|
|
third_party/polymer
|
|
third_party/protobuf
|
|
third_party/protobuf/third_party/six
|
|
third_party/qcms
|
|
third_party/sfntly
|
|
third_party/skia
|
|
third_party/skia/third_party/vulkan
|
|
third_party/smhasher
|
|
third_party/spirv-headers
|
|
third_party/spirv-tools-angle
|
|
third_party/sqlite
|
|
third_party/swiftshader
|
|
third_party/swiftshader/third_party/llvm-subzero
|
|
third_party/swiftshader/third_party/subzero
|
|
third_party/tcmalloc
|
|
third_party/usrsctp
|
|
third_party/vulkan
|
|
third_party/vulkan-validation-layers
|
|
third_party/web-animations-js
|
|
third_party/webdriver
|
|
third_party/webrtc
|
|
third_party/widevine
|
|
third_party/woff2
|
|
third_party/zlib/google
|
|
url/third_party/mozilla
|
|
v8/src/third_party/valgrind
|
|
v8/third_party/inspector_protocol
|
|
)
|
|
|
|
# TODO: keep for GN builds
|
|
keeplibs+=(
|
|
base/third_party/libevent
|
|
third_party/adobe
|
|
third_party/speech-dispatcher
|
|
third_party/usb_ids
|
|
third_party/xdg-utils
|
|
third_party/yasm/run_yasm.py
|
|
)
|
|
|
|
# TODO: keep FFmpeg
|
|
keeplibs+=( third_party/ffmpeg )
|
|
|
|
# TODO: package re2
|
|
keeplibs+=( third_party/re2 )
|
|
|
|
# TODO: keep libvpx (58.0.3029.81 fails to compile with the current libvpx-1.6.1)
|
|
keeplibs+=( third_party/libvpx )
|
|
keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
|
|
|
|
# TODO: keep icu (59.0.3071.86 fails to compile with the current icu-59.1
|
|
keeplibs+=( third_party/icu/common )
|
|
keeplibs+=( third_party/icu/source )
|
|
|
|
# remove some of the bundled libraries
|
|
edo build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove
|
|
|
|
# TODO: Find out how to properly do this for GN and/or report upstream
|
|
edo sed \
|
|
-e "s:pkg_config = \"\":pkg_config = \"$(exhost --tool-prefix)pkg-config\":g" \
|
|
-i build/config/linux/pkg_config.gni
|
|
|
|
# TODO: Find out how to properly do this for GN and/or report upstream
|
|
# Fix this for multiarch by adding appropriate symlinks here and adding this directory to
|
|
# the PATH
|
|
local dir=${WORKBASE}/symlinked-build-tools
|
|
edo mkdir -p ${dir}
|
|
# Build error: FAILED: x64/obj/third_party/brotli/libbrotli.a
|
|
edo ln -s /usr/host/bin/$(exhost --target)-ar ${dir}/ar
|
|
# Build error: FAILED: x64/obj/third_party/brotli/brotli/decode.o
|
|
edo ln -s /usr/host/bin/$(exhost --target)-cc ${dir}/gcc
|
|
# Build error: FAILED: x64/obj/third_party/brotli/bro/encode_parallel.o
|
|
edo ln -s /usr/host/bin/$(exhost --target)-c++ ${dir}/g++
|
|
# Build error: strip is hardcoded somewhere
|
|
edo ln -s /usr/host/bin/$(exhost --target)-strip ${dir}/strip
|
|
# Build error: FAILED: libGLESv2.so libGLESv2.so.TOC
|
|
edo ln -s /usr/host/bin/$(exhost --target)-readelf ${dir}/readelf
|
|
|
|
# and, they assume python is python2!
|
|
edo ln -s /usr/host/bin/python2 ${dir}/python
|
|
export PATH="${dir}:${PATH}"
|
|
}
|
|
|
|
inox_src_configure() {
|
|
# icu: 59.0.3071.86 https://chromium-review.googlesource.com/c/505173/
|
|
# re2: not yet packaged
|
|
# libevent: https://bugs.gentoo.org/593458
|
|
# libvpx: 58.0.3029.81 fails to compile
|
|
# libxml: 59.0.3071.86 https://bugs.gentoo.org/616818
|
|
# ffmpeg: unknown
|
|
local gn_system_libraries="
|
|
flac
|
|
harfbuzz-ng
|
|
libdrm
|
|
libjpeg
|
|
libpng
|
|
libwebp
|
|
libxslt
|
|
opus
|
|
snappy
|
|
yasm
|
|
zlib
|
|
"
|
|
|
|
edo build/linux/unbundle/replace_gn_files.py --system-libraries ${gn_system_libraries}
|
|
|
|
local myconf_gn=""
|
|
|
|
export AR="${AR}"
|
|
export CC="${CC}"
|
|
export CXX="${CXX}"
|
|
export NM="${NM}"
|
|
|
|
# Define a custom toolchain for GN
|
|
myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
|
|
myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
|
|
|
|
# GN needs explicit config for Debug/Release as opposed to inferring it from build directory
|
|
myconf_gn+=" is_debug=false"
|
|
|
|
# Use tcmalloc
|
|
myconf_gn+=" use_allocator=\"tcmalloc\""
|
|
|
|
# Disable nacl, we can't build without pnacl (http://crbug.com/269560)
|
|
myconf_gn+=" enable_nacl=false"
|
|
|
|
# Trying to use gold results in linker crash
|
|
myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
|
|
|
|
# Don't try to build with Clang for now
|
|
myconf_gn+=" is_clang=false"
|
|
|
|
# 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, Gentoo bug 506268
|
|
myconf_gn+=" fatal_linker_warnings=false"
|
|
|
|
# Follow upstream advice on the chromium-packagers group
|
|
myconf_gn+=" fieldtrial_testing_like_official_build=true"
|
|
|
|
# FFmpeg handling
|
|
ffmpeg_branding="$(option bindist Chromium Chrome)"
|
|
myconf_gn+=" proprietary_codecs=$(option bindist false true)"
|
|
myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
|
|
|
|
# Options
|
|
myconf_gn+=" enable_widevine=true"
|
|
myconf_gn+=" link_pulseaudio=$(option pulseaudio true false)"
|
|
myconf_gn+=" use_cups=$(option cups true false)"
|
|
myconf_gn+=" use_gnome_keyring=$(option keyring true false)"
|
|
myconf_gn+=" use_pulseaudio=$(option pulseaudio true false)"
|
|
|
|
# hard disable kerberos support (requires heimdal)
|
|
myconf_gn+=" use_kerberos=false"
|
|
|
|
# GTK3 build
|
|
myconf_gn+=" use_gtk3=true"
|
|
|
|
# Disable deprecated
|
|
myconf_gn+=" use_gconf=false"
|
|
|
|
# inox specific
|
|
myconf_gn+=" enable_hangout_services_extension=false"
|
|
myconf_gn+=" enable_remoting=false"
|
|
myconf_gn+=" enable_google_now=false"
|
|
myconf_gn+=" safe_browsing_mode=0"
|
|
myconf_gn+=" enable_webrtc=true" # prevents frequent crashes
|
|
myconf_gn+=" enable_hotwording=false"
|
|
myconf_gn+=" enable_print_preview=false"
|
|
myconf_gn+=" use_vaapi=true"
|
|
|
|
# Update strings
|
|
edo third_party/libaddressinput/chromium/tools/update-strings.py
|
|
|
|
# 46.0.2490.86 fails with Exception: Failed to open test/data/webui/i18n_process_css_test.html while
|
|
# trying to flatten test/data/webui/i18n_process_css_test.html
|
|
edo touch chrome/test/data/webui/i18n_process_css_test.html
|
|
|
|
# GN configure
|
|
edo tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args "${myconf_gn}"
|
|
edo out/Release/gn gen --args="${myconf_gn}" out/Release
|
|
}
|
|
|
|
inox_src_compile() {
|
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68853
|
|
if cc-is-gcc && [[ "$(gcc-major-version)" > 5 ]]; then
|
|
append-flags -fno-delete-null-pointer-checks
|
|
fi
|
|
|
|
if optionq suid-sandbox; then
|
|
eninja -C out/Release chrome chrome_sandbox
|
|
else
|
|
eninja -C out/Release chrome
|
|
fi
|
|
}
|
|
|
|
inox_src_test() {
|
|
local disabled_base_tests=(
|
|
FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe # Needs a utf8 locale
|
|
LoggingTest.CheckStreamsAreLazy # does not like to be sandboxed
|
|
OutOfMemoryDeathTest.ViaSharedLibraries
|
|
ProcessMetricsTest.GetNumberOfThreads
|
|
RTLTest.WrapPathWithLTRFormatting
|
|
StatsTableTest.MultipleThreads # Flaky
|
|
# Need access to a running X11 server (and potentially more)
|
|
'MessageLoopTestTypeUI.*'
|
|
MessageLoopTest.IsType
|
|
'WaitableEventWatcherTest.*'
|
|
'MessagePumpGLibTest.*'
|
|
'MessagePumpLibeventTest.*'
|
|
'TimerTest.*'
|
|
# fails with "out of memory" even with plenty free mem
|
|
SecurityTest.MemoryAllocationRestrictionsNew
|
|
SecurityTest.MemoryAllocationRestrictionsNewArray
|
|
SecurityTest.NewOverflow
|
|
# Fails randomly on different systems
|
|
SysInfoTest.MaxSharedMemorySize
|
|
TraceEventTestFixture.TraceSampling
|
|
# 42.0.2311.135
|
|
ProcessUtilTest.CurrentDirectory
|
|
)
|
|
local disabled_crypto_tests=(
|
|
# 39.0.2171.95
|
|
SignatureVerifierTest.VerifyRSAPSS
|
|
)
|
|
local disabled_gn_tests=(
|
|
BuilderTest.BasicDeps
|
|
# 41.0.2272.76
|
|
Label.Resolve
|
|
)
|
|
local disabled_ui_base_tests=(
|
|
# Needs fonts/corefonts
|
|
FontTest.LoadArial
|
|
|
|
FontTest.GetActualFontNameForTesting
|
|
|
|
# Need access to a running X11 server (and potentially more)
|
|
'CanvasTest.*'
|
|
'ClipboardTest.*'
|
|
'ClipboardTest/0.*'
|
|
'FontTest.AvgCharWidth'
|
|
'FontTest.AvgWidths'
|
|
'FontTest.Widths'
|
|
'GtkExpandedContainerTest.*'
|
|
'RenderTextTest.*'
|
|
'ResourceBundleTest.DelegateGetFontList'
|
|
'ScreenTest.*'
|
|
'TextEliderTest.*'
|
|
'TextUtilsTest.GetStringWidth'
|
|
'AnimationContainerTest.*'
|
|
'AnimationTest.*'
|
|
'SlideAnimationTest.*'
|
|
'OSExchangeDataProviderAuraX11Test.*'
|
|
'InputMethodBaseTest.*'
|
|
'OSExchangeDataTest.*'
|
|
|
|
# These have been failing for a long time but are not critical. http://crbug.com/110711
|
|
FontListTest.FontDescString_FromFontVector
|
|
FontListTest.Fonts_DescStringWithStyleInFlexibleFormat_RoundTrip
|
|
FontListTest.Fonts_FontVector_RoundTrip
|
|
FontListTest.Fonts_FromDescString
|
|
FontListTest.Fonts_FromDescStringInFlexibleFormat
|
|
FontListTest.Fonts_FromDescStringWithStyleInFlexibleFormat
|
|
FontListTest.Fonts_FromFontVector
|
|
FontListTest.Fonts_GetHeight_GetBaseline
|
|
FontListTest.Fonts_Derive
|
|
FontListTest.Fonts_DeriveWithSizeDelta
|
|
|
|
# 38.0.2125.101
|
|
SelectionRequestorTest.NestedRequests
|
|
)
|
|
|
|
local disabled_media_tests=(
|
|
# http://crbug.com/160384
|
|
'YUVConvertTest.*'
|
|
)
|
|
|
|
local t suites=( base cacheinvalidation crypto gn gpu printing ui_base url ) HOME="${TEMP}"
|
|
|
|
for t in ${suites[@]}; do
|
|
tv=disabled_${t}_tests[*]
|
|
eninja -C out/Release ${t}_unittests
|
|
edo out/Release/${t}_unittests --gtest_filter=$(IFS=:; echo "-${!tv}")
|
|
done
|
|
}
|
|
|
|
inox_src_install() {
|
|
# Install into /opt
|
|
local dest=/opt/inox
|
|
edo cd out/Release
|
|
|
|
exeinto ${dest}
|
|
newexe chrome inox
|
|
if optionq suid-sandbox; then
|
|
newexe chrome_sandbox inox-sandbox # the name is hardcoded
|
|
edo chmod 4755 "${IMAGE}"${dest}/inox-sandbox
|
|
fi
|
|
doexe "${FILES}"/inox-launcher.sh
|
|
|
|
insinto ${dest}
|
|
doins -r *.pak locales resources
|
|
doins -r *.bin
|
|
|
|
# TODO: Required by bundled icu
|
|
doins icudtl.dat
|
|
|
|
doins libwidevinecdmadapter.so
|
|
|
|
newman chrome.1 inox.1
|
|
|
|
dodir /usr/$(exhost --target)/bin
|
|
dosym ${dest}/inox-launcher.sh /usr/$(exhost --target)/bin/inox-browser
|
|
|
|
insinto ${dest}/swiftshader
|
|
doins swiftshader/*.so
|
|
|
|
for size in 22 24 48 64 128 256 ; do
|
|
insinto /usr/share/icons/hicolor/${size}x${size}/apps
|
|
newins "${WORK}"/chrome/app/theme/chromium/product_logo_${size}.png inox-browser.png
|
|
done
|
|
|
|
insinto /usr/share/applications/
|
|
hereins inox-browser.desktop <<EOF
|
|
[Desktop Entry]
|
|
Version=1.0
|
|
Name=Inox
|
|
GenericName=Web Browser
|
|
Exec=inox-browser %U
|
|
Terminal=false
|
|
Icon=inox-browser
|
|
Type=Application
|
|
Categories=Network;WebBrowser;
|
|
MimeType=text/html;text/xml;application/xhtml_xml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/mailto;x-scheme-handler/webcal;
|
|
StartupWMClass=Inox-browser
|
|
EOF
|
|
|
|
insinto /etc/revdep-rebuild
|
|
hereins ${PN} <<EOF
|
|
SEARCH_DIRS=${dest}
|
|
EOF
|
|
}
|
|
|
|
inox_pkg_postinst() {
|
|
freedesktop-desktop_pkg_postinst
|
|
gtk-icon-cache_pkg_postinst
|
|
}
|
|
|
|
inox_pkg_postrm() {
|
|
freedesktop-desktop_pkg_postrm
|
|
gtk-icon-cache_pkg_postrm
|
|
}
|
|
|